package php.runtime.memory.support.operation; import php.runtime.Memory; import php.runtime.common.HintType; import php.runtime.env.Environment; import php.runtime.env.TraceInfo; import php.runtime.memory.ArrayMemory; import php.runtime.memory.support.MemoryOperation; import php.runtime.reflection.ParameterEntity; public class ArrayMemoryMemoryOperation extends MemoryOperation<ArrayMemory> { @Override public Class<?>[] getOperationClasses() { return new Class<?>[] { ArrayMemory.class }; } @Override public ArrayMemory convert(Environment env, TraceInfo trace, Memory arg) throws Throwable { if (arg.isNull()) { return null; } return arg.toValue(ArrayMemory.class); } @Override public Memory unconvert(Environment env, TraceInfo trace, ArrayMemory arg) throws Throwable { return arg == null ? Memory.NULL : arg; } @Override public void applyTypeHinting(ParameterEntity parameter) { parameter.setType(HintType.ARRAY); } }