/* * Copyright 2004-2006 IDCA. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the * following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and * the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions * and the following disclaimer in the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the authors and * should not be interpreted as representing official policies, either expressed or implied, of IDCA. */ package com.idcanet.foei.components.lang; import org.apache.commons.beanutils.BeanUtils; import com.idcanet.foei.core.FoeiProcessFactory; import com.idcanet.foei.event.AbstractEventObject; import com.idcanet.foei.event.EventInput; import com.idcanet.foei.event.EventPort; import com.idcanet.foei.event.IllegalEventPortNameException; /** * Gets the property of an Bean * * @author Willem Cazander * @version 1.0 Jun 5, 2006 * */ public class GetBeanProperty extends AbstractEventObject { /** v1.0 */ static final long serialVersionUID = 10l; /** The Property name */ //static final public String PROPERTY = "property"; private String property = null; private Object propertyValue = null; /** * Creates an SetBeanProperty */ public GetBeanProperty() { addInputPort(EventPort.INPUT,Object.class); //addInputPort(PROPERTY,Object.class); addOutputPort(EventPort.OUTPUT); } /** * Filters the object with EventSteps * @see EventInput#doEvent(EventPort, Object) */ public void doEvent(EventPort eventPort,Object object) throws IllegalEventPortNameException { //if(PROPERTY.equals(eventPort.getName())) { // propertyValue=object; // return; //} if(EventPort.INPUT.equals(eventPort.getName())) { if(property==null) { return; } try { object = BeanUtils.getProperty(object,property); // todo: fix error this wil only return String !!!!!!!!!!!!!!!!! } catch (Exception e) { e.printStackTrace(); return; } FoeiProcessFactory.getFoeiProcess().executeEvent(getOutputPort(EventPort.OUTPUT),object); return; } throw new IllegalEventPortNameException("Not excisting input EventPort: "+eventPort.getName()); } /** * @return Returns the property. */ public String getProperty() { return property; } /** * @param property The property to set. */ public void setProperty(String property) { this.property = property; } }