All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.beanio.BeanReaderException Maven / Gradle / Ivy

There is a newer version: 2.1.0
Show newest version
/*
 * Copyright 2010-2012 Kevin Seim
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.beanio;

/**
 * Exception thrown by a {@link BeanReader} or {@link Unmarshaller}.
 * 
 * 

In most cases, a subclass of this exception is thrown. In a few (but rare) fatal cases, * this exception may be thrown directly. * * @author Kevin Seim * @since 1.0 * @see BeanReader */ public class BeanReaderException extends BeanIOException { private static final long serialVersionUID = 2L; private RecordContext[] recordContext; /** * Constructs a new BeanReaderException. * @param message the error message */ public BeanReaderException(String message) { super(message); } /** * Constructs a new BeanReaderException. * @param message the error message * @param cause the root cause */ public BeanReaderException(String message, Throwable cause) { super(message, cause); } /** * Returns the number of unmarshalled records with context information * available if {@link #getRecordContext(int)} is called. * @return the unmarshalled record count */ public int getRecordCount() { return recordContext == null ? 0 : recordContext.length; } /** * Returns the record context that caused the error. May be null if there is no * context information associated with the exception. If there is more than one * record context, this method returns the context of the first record and is * equivalent to calling getRecordContext(0). * @return the {@link RecordContext} * @since 2.0 * @deprecated use {@link #getRecordContext()} */ public RecordContext getContext() { return getRecordContext(); } /** * Returns the record context that caused the error. May be null if there is no * context information associated with the exception. If there is more than one * record context, this method returns the context of the first record and is * equivalent to calling getRecordContext(0). * @return the {@link RecordContext} * @since 2.0 * @see #getRecordContext(int) */ public RecordContext getRecordContext() { return getRecordCount() > 0 ? getRecordContext(0) : null; } /** * Returns the record context for a given record index. The first record uses index 0. * @param index the record index * @return the {@link RecordContext} * @throws IndexOutOfBoundsException if there is no record for the given index * @since 2.0 * @see #getRecordCount() */ public RecordContext getRecordContext(int index) throws IndexOutOfBoundsException { return recordContext[index]; } /** * Sets the record context that caused the exception. This method simply wraps * the supplied context in an array and invokes {@link #setRecordContext(RecordContext[])}. * @param recordContext the {@link RecordContext} * @since 2.0 */ protected void setRecordContext(RecordContext recordContext) { setRecordContext(new RecordContext[] { recordContext }); } /** * Sets the record context(s) that caused the exception. * @param recordContext the array of {@link RecordContext} * @since 2.0 */ protected void setRecordContext(RecordContext[] recordContext) { this.recordContext = recordContext; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy