001    package railo.runtime.type.cfc;
002    
003    import java.util.Iterator;
004    import java.util.Set;
005    
006    import railo.runtime.ComponentPro;
007    import railo.runtime.PageContext;
008    import railo.runtime.component.Member;
009    import railo.runtime.dump.DumpData;
010    import railo.runtime.dump.DumpProperties;
011    import railo.runtime.exp.PageException;
012    import railo.runtime.type.Collection;
013    import railo.runtime.type.Struct;
014    
015    public interface ComponentAccess extends ComponentPro {
016            
017            public boolean isPersistent();
018            public Object getMetaStructItem(Collection.Key name);
019            
020            Set<Key> keySet(int access);
021            Object call(PageContext pc, int access, Collection.Key name, Object[] args) throws PageException;
022            Object callWithNamedValues(PageContext pc, int access, Collection.Key name, Struct args) throws PageException;
023            int size(int access);
024            Collection.Key[] keys(int access);
025    
026            Iterator<Collection.Key> keyIterator(int access);
027            Iterator<String> keysAsStringIterator(int access);
028            
029    
030            Iterator<Entry<Key, Object>> entryIterator(int access);
031            Iterator<Object> valueIterator(int access);
032            
033            Object get(int access, Collection.Key key) throws PageException;
034            Object get(int access, Collection.Key key, Object defaultValue);
035            DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp, int access);
036            boolean contains(int access,Key name);
037            Member getMember(int access,Collection.Key key, boolean dataMember,boolean superAccess);
038            public ComponentAccess _base();// TODO do better impl
039            //public boolean isRest();
040            
041            
042            
043    }