org.hibernate.PropertyAccessException.java Source code

Java tutorial

Introduction

Here is the source code for org.hibernate.PropertyAccessException.java

Source

/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate;

import org.hibernate.internal.util.StringHelper;

/**
 * A problem occurred accessing a property of an instance of a
 * persistent class by reflection, or via enhanced entities.
 * There are a number of possible underlying causes, including
 * <ul>
 * <li>failure of a security check
 * <li>an exception occurring inside the getter or setter method
 * <li>a nullable database column was mapped to a primitive-type property
 * <li>the Hibernate type was not castable to the property type (or vice-versa)
 * </ul>
 * @author Gavin King
 */
public class PropertyAccessException extends HibernateException {
    private final Class persistentClass;
    private final String propertyName;
    private final boolean wasSetter;

    /**
     * Constructs a PropertyAccessException using the specified information.
     *
     * @param cause The underlying cause
     * @param message A message explaining the exception condition
     * @param wasSetter Was the attempting to access the setter the cause of the exception?
     * @param persistentClass The class which is supposed to contain the property in question
     * @param propertyName The name of the property.
     */
    public PropertyAccessException(Throwable cause, String message, boolean wasSetter, Class persistentClass,
            String propertyName) {
        super(message, cause);
        this.persistentClass = persistentClass;
        this.wasSetter = wasSetter;
        this.propertyName = propertyName;
    }

    public Class getPersistentClass() {
        return persistentClass;
    }

    public String getPropertyName() {
        return propertyName;
    }

    protected String originalMessage() {
        return super.getMessage();
    }

    @Override
    public String getMessage() {
        return originalMessage() + (wasSetter ? " setter of " : " getter of ")
                + StringHelper.qualify(persistentClass.getName(), propertyName);
    }
}