001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.runtime; 020 021import java.util.Iterator; 022import java.util.Set; 023 024import lucee.runtime.component.Member; 025import lucee.runtime.component.Property; 026import lucee.runtime.dump.DumpData; 027import lucee.runtime.dump.DumpProperties; 028import lucee.runtime.exp.PageException; 029import lucee.runtime.type.Collection; 030import lucee.runtime.type.Struct; 031 032public interface ComponentPro extends Component { 033 public Property[] getProperties(boolean onlyPeristent, boolean includeBaseProperties, boolean preferBaseProperties, boolean inheritedMappedSuperClassOnly); 034 035 public boolean isPersistent(); 036 public boolean isAccessors(); 037 public void setEntity(boolean entity); 038 public boolean isEntity(); 039 public Component getBaseComponent(); 040 public Object getMetaStructItem(Collection.Key name); 041 042 // access 043 Set<Key> keySet(int access); 044 Object call(PageContext pc, int access, Collection.Key name, Object[] args) throws PageException; 045 Object callWithNamedValues(PageContext pc, int access, Collection.Key name, Struct args) throws PageException; 046 int size(int access); 047 Collection.Key[] keys(int access); 048 049 Iterator<Collection.Key> keyIterator(int access); 050 Iterator<String> keysAsStringIterator(int access); 051 052 053 Iterator<Entry<Key, Object>> entryIterator(int access); 054 Iterator<Object> valueIterator(int access); 055 056 Object get(int access, Collection.Key key) throws PageException; 057 Object get(int access, Collection.Key key, Object defaultValue); 058 DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp, int access); 059 boolean contains(int access,Key name); 060 Member getMember(int access,Collection.Key key, boolean dataMember,boolean superAccess); 061}