001    package railo.runtime;
002    
003    import java.io.Serializable;
004    import java.util.Map;
005    
006    import railo.runtime.component.Property;
007    import railo.runtime.exp.ExpressionException;
008    import railo.runtime.type.Collection;
009    import railo.runtime.type.KeyImpl;
010    import railo.runtime.type.Struct;
011    
012    
013    public class ComponentProperties implements Serializable {
014            
015            private static final Collection.Key WSDL_FILE = KeyImpl.intern("wsdlfile");
016            final String dspName;
017            final String extend;
018            final String hint;
019            final Boolean output;
020            final String callPath;
021            final boolean realPath;
022            final boolean _synchronized;
023            Class javaAccessClass;
024            Map<String,Property> properties;
025            Struct meta;
026            String implement;
027            boolean persistent;
028            boolean accessors;
029    
030            public ComponentProperties(String dspName,String extend,String implement,String hint, Boolean output, String callPath, 
031                            boolean realPath,boolean _synchronized,Class javaAccessClass,boolean persistent,boolean accessors,Struct meta) {
032                    this.dspName=dspName;
033                    this.extend=extend;
034                    this.implement=implement;
035                    this.hint=hint;
036                    this.output=output;
037                    this.callPath=callPath;
038                    this.realPath=realPath;
039                    this._synchronized=_synchronized;
040                    this.javaAccessClass=javaAccessClass;
041                    this.meta=meta;
042                    this.persistent=persistent;
043                    this.accessors=accessors;
044            }
045    
046            public ComponentProperties duplicate() {
047                    ComponentProperties cp= new ComponentProperties(dspName,extend,implement,hint,output,callPath,realPath,_synchronized,javaAccessClass,persistent,accessors,meta);
048                    cp.properties=properties;
049                    return cp;
050            }
051    
052        
053            /**
054             * returns null if there is no wsdlFile defined
055             * @return the wsdlFile
056             * @throws ExpressionException 
057             */
058            public String getWsdlFile() {
059                    if(meta==null) return null;
060                    return (String) meta.get(WSDL_FILE,null);
061            }
062    
063    
064    }