/**
* Copyright (c) 2015, Lucee Assosication Switzerland. 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.type.cfc;
import java.util.Iterator;
import java.util.Set;
import lucee.runtime.Component;
import lucee.runtime.PageContext;
import lucee.runtime.component.Member;
import lucee.runtime.dump.DumpData;
import lucee.runtime.dump.DumpProperties;
import lucee.runtime.exp.PageException;
import lucee.runtime.type.Collection;
import lucee.runtime.type.Struct;
public interface ComponentAccess extends Component {
@Override
public boolean isPersistent();
@Override
public Object getMetaStructItem(Collection.Key name);
@Override
Set<Key> keySet(int access);
@Override
Object call(PageContext pc, int access, Collection.Key name, Object[] args) throws PageException;
@Override
Object callWithNamedValues(PageContext pc, int access, Collection.Key name, Struct args) throws PageException;
@Override
int size(int access);
@Override
Collection.Key[] keys(int access);
@Override
Iterator<Collection.Key> keyIterator(int access);
@Override
Iterator<String> keysAsStringIterator(int access);
@Override
Iterator<Entry<Key, Object>> entryIterator(int access);
@Override
Iterator<Object> valueIterator(int access);
@Override
Object get(int access, Collection.Key key) throws PageException;
@Override
Object get(int access, Collection.Key key, Object defaultValue);
@Override
DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp, int access);
@Override
boolean contains(int access,Key name);
@Override
Member getMember(int access,Collection.Key key, boolean dataMember,boolean superAccess);
public ComponentAccess _base();// TODO do better impl
//public boolean isRest();
@Override
public void setEntity(boolean entity);
@Override
public boolean isEntity();
}