/**
*
* Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
**/
package lucee.runtime;
import java.io.Serializable;
import java.util.Map;
import lucee.runtime.component.Property;
import lucee.runtime.exp.ExpressionException;
import lucee.runtime.type.Collection;
import lucee.runtime.type.KeyImpl;
import lucee.runtime.type.Struct;
public class ComponentProperties implements Serializable {
private static final Collection.Key WSDL_FILE = KeyImpl.intern("wsdlfile");
final String dspName;
final String extend;
final String hint;
final Boolean output;
final String callPath;
final boolean realPath;
final boolean _synchronized;
Class javaAccessClass;
Map<String,Property> properties;
Struct meta;
final String implement;
final boolean persistent;
final boolean accessors;
final int modifier;
public ComponentProperties(String dspName,String extend,String implement,String hint, Boolean output, String callPath,
boolean realPath,boolean _synchronized,Class javaAccessClass,boolean persistent,boolean accessors,int modifier,Struct meta) {
this.dspName=dspName;
this.extend=extend;
this.implement=implement;
this.hint=hint;
this.output=output;
this.callPath=callPath;
this.realPath=realPath;
this._synchronized=_synchronized;
this.javaAccessClass=javaAccessClass;
this.meta=meta;
this.persistent=persistent;
this.accessors=accessors;
this.modifier=modifier;
}
public ComponentProperties duplicate() {
ComponentProperties cp= new ComponentProperties(dspName,extend,implement,hint,output,callPath,realPath,_synchronized,javaAccessClass,persistent,accessors,modifier,meta);
cp.properties=properties;
return cp;
}
/**
* returns null if there is no wsdlFile defined
* @return the wsdlFile
* @throws ExpressionException
*/
public String getWsdlFile() {
if(meta==null) return null;
return (String) meta.get(WSDL_FILE,null);
}
}