rdonkin 2004/05/10 12:58:15 Added: beanutils/optional/bean-collections/src/java/org/apache/commons/beanutils BeanPredicate.java Log: Added new directory for bean collection components Revision Changes Path 1.1 jakarta-commons/beanutils/optional/bean-collections/src/java/org/apache/commons/beanutils/BeanPredicate.java Index: BeanPredicate.java =================================================================== /* * Copyright 2004 The Apache Software Foundation. * * 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.apache.commons.beanutils; import org.apache.commons.collections.Predicate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.lang.reflect.InvocationTargetException; public class BeanPredicate implements Predicate { private final Log log = LogFactory.getLog(this.getClass()); private String propertyName; private Predicate predicate; public BeanPredicate(String propertyName, Predicate predicate) { this.propertyName = propertyName; this.predicate = predicate; } public boolean evaluate(Object object) { boolean evaluation = false; try { Object propValue = PropertyUtils.getProperty( object, propertyName ); evaluation = predicate.evaluate(propValue); } catch (IllegalArgumentException e) { final String errorMsg = "Problem during evaluation."; log.error("ERROR: " + errorMsg, e); throw e; } catch (IllegalAccessException e) { final String errorMsg = "Unable to access the property provided."; log.error(errorMsg, e); throw new IllegalArgumentException(errorMsg); } catch (InvocationTargetException e) { final String errorMsg = "Exception occurred in property's getter"; log.error(errorMsg, e); throw new IllegalArgumentException(errorMsg); } catch (NoSuchMethodException e) { final String errorMsg = "Property not found."; log.error(errorMsg, e); throw new IllegalArgumentException(errorMsg); } return evaluation; } public String getPropertyName() { return propertyName; } public void setPropertyName(String propertyName) { this.propertyName = propertyName; } public Predicate getPredicate() { return predicate; } public void setPredicate(Predicate predicate) { this.predicate = predicate; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]