/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.client; /** * This exception is thrown to indicate a problem with a accessing a property of an {@link com.espertech.esper.client.EventBean}. */ public final class PropertyAccessException extends RuntimeException { private String expression; private static final long serialVersionUID = 6935348296074757184L; /** * Constructor. * * @param message is the error message * @param propertyExpression property expression */ public PropertyAccessException(final String message, String propertyExpression) { super(message); this.expression = propertyExpression; } /** * Constructor for an inner exception and message. * * @param message is the error message * @param cause is the inner exception */ public PropertyAccessException(final String message, final Throwable cause) { super(message, cause); } /** * Constructor for an inner exception and message. * * @param message is the error message */ public PropertyAccessException(final String message) { super(message); } /** * Constructor. * * @param cause is the inner exception */ public PropertyAccessException(final Throwable cause) { super(cause); } public String getMessage() { StringBuilder msg; if (super.getMessage() != null) { msg = new StringBuilder(super.getMessage()); } else { msg = new StringBuilder("Unexpected exception"); } if (expression != null) { msg.append(" ["); msg.append(expression); msg.append(']'); } return msg.toString(); } /** * Generates the Not-A-Valid-Property exception * @param propertyExpression property expression * @return exception exception */ public static PropertyAccessException notAValidProperty(String propertyExpression) { return new PropertyAccessException("Property named '" + propertyExpression + "' is not a valid property name for this type"); } }