package php.runtime.memory.support.operation;
import php.runtime.Memory;
import php.runtime.env.Environment;
import php.runtime.env.TraceInfo;
import php.runtime.memory.*;
import php.runtime.memory.helper.CharArrayMemory;
import php.runtime.memory.helper.UndefinedMemory;
import php.runtime.memory.support.MemoryOperation;
public class MemoryMemoryOperation extends MemoryOperation<Memory> {
@Override
public Class<?>[] getOperationClasses() {
return new Class<?>[] {
Memory.class,
NullMemory.class,
UndefinedMemory.class,
StringMemory.class,
LongMemory.class,
DoubleMemory.class,
TrueMemory.class,
FalseMemory.class,
KeyValueMemory.class,
BinaryMemory.class,
StringBuilderMemory.class,
CharArrayMemory.class,
CharMemory.class,
ObjectMemory.class,
ReferenceMemory.class
};
}
@Override
public Memory convert(Environment env, TraceInfo trace, Memory arg) throws Throwable {
return arg == null ? Memory.NULL : arg;
}
@Override
public Memory unconvert(Environment env, TraceInfo trace, Memory arg) throws Throwable {
return arg == null ? Memory.NULL : arg;
}
}