/* * Copyright 2004-2008 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.vasc.impl.x4o; import java.util.logging.Logger; import com.idcanet.vasc.core.VascController; import com.idcanet.vasc.core.VascEntry; import com.idcanet.x4o.element.AbstractElement; import com.idcanet.x4o.element.ElementException; /** * * * @author Willem Cazander * @version 1.0 Mar 24, 2009 */ public class SetParameterElement extends AbstractElement { private Logger logger = Logger.getLogger(SetParameterElement.class.getName()); /** * @see com.idcanet.x4o.element.AbstractElement#doElementRun() */ @Override public void doElementRun() throws ElementException { String name = getAttributes().get("name"); String value = getAttributes().get("value"); String type = getAttributes().get("type"); VascEntry entry = (VascEntry)getParent().getElementObject(); VascController cont = VascParser.getVascController(getElementContext()); logger.fine("Setting parameter name: "+name+" value: "+value+" type: "+type); if ("setUserParameter".equals(getElementClass().getTag())) { if (value==null) { value="id"; } if ("id".equals(value)) { if ("int".equals(type)) { Long userId = cont.getVascUserRoleControllerResolver().getVascUserRoleController().getUserId(); entry.setEntryParameter(name, userId.intValue()); } else { Long userId = cont.getVascUserRoleControllerResolver().getVascUserRoleController().getUserId(); entry.setEntryParameter(name, userId); } } else { String userName = cont.getVascUserRoleControllerResolver().getVascUserRoleController().getUserName(); entry.setEntryParameter(name, userName); } return; } if (type==null) { entry.setEntryParameter(name, value); return; } if ("long".equalsIgnoreCase(type)) { entry.setEntryParameter(name, new Long(value)); return; } if ("int".equalsIgnoreCase(type)) { entry.setEntryParameter(name, new Integer(value)); return; } throw new ElementException("Could not set dataParameter: "+name+" with type: "+type); } }