package lucee.runtime.type.scope.util;
import java.util.Iterator;
import lucee.runtime.exp.PageException;
import lucee.runtime.type.Collection;
import lucee.runtime.type.Struct;
import lucee.runtime.type.StructImpl;
import lucee.runtime.type.it.EntryIterator;
import lucee.runtime.type.it.KeyIterator;
import lucee.runtime.type.it.ValueIterator;
import lucee.runtime.type.util.StructSupport;
public abstract class AbsSystemStruct extends StructSupport {
@Override
public final Object remove(Key key) throws PageException {
return removeEL(key);
}
@Override
public final Collection duplicate(boolean deepCopy) {
Struct sct=new StructImpl();
StructImpl.copy(this,sct,deepCopy);
return sct;
}
@Override
public final Iterator<Key> keyIterator() {
return new KeyIterator(keys());
}
@Override
public final Iterator<Object> valueIterator() {
return new ValueIterator(this, keys());
}
@Override
public final Iterator<Entry<Key, Object>> entryIterator() {
return new EntryIterator(this, keys());
}
}