package php.runtime.lang.spl.iterator;
import php.runtime.Memory;
import php.runtime.env.Environment;
import php.runtime.lang.BaseObject;
import php.runtime.lang.ForeachIterator;
import php.runtime.memory.ObjectMemory;
import php.runtime.reflection.ClassEntity;
import static php.runtime.annotation.Reflection.Name;
import static php.runtime.annotation.Reflection.Signature;
@Name("EmptyIterator")
public class EmptyIterator extends BaseObject implements Iterator {
public EmptyIterator(Environment env) {
super(env);
}
public EmptyIterator(Environment env, ClassEntity clazz) {
super(env, clazz);
}
@Override
@Signature
public Memory current(Environment env, Memory... args) {
return Memory.NULL;
}
@Override
@Signature
public Memory key(Environment env, Memory... args) {
return Memory.NULL;
}
@Override
@Signature
public Memory next(Environment env, Memory... args) {
return Memory.NULL;
}
@Override
@Signature
public Memory rewind(Environment env, Memory... args) {
return Memory.NULL;
}
@Override
@Signature
public Memory valid(Environment env, Memory... args) {
return Memory.FALSE;
}
@Override
public ForeachIterator getNewIterator(Environment env, boolean getReferences, boolean getKeyReferences) {
return ObjectMemory.valueOf(this).getNewIterator(env, getReferences, getKeyReferences);
}
@Override
public ForeachIterator getNewIterator(Environment env) {
return ObjectMemory.valueOf(this).getNewIterator(env);
}
}