package php.runtime.memory.support.operation;
import php.runtime.Memory;
import php.runtime.env.Environment;
import php.runtime.env.TraceInfo;
import php.runtime.ext.core.classes.time.WrapTimeZone;
import php.runtime.memory.ObjectMemory;
import php.runtime.memory.support.MemoryOperation;
import php.runtime.reflection.ParameterEntity;
import java.util.TimeZone;
public class TimeZoneMemoryOperation extends MemoryOperation<TimeZone> {
@Override
public Class<?>[] getOperationClasses() {
return new Class<?>[] { TimeZone.class };
}
@Override
public TimeZone convert(Environment env, TraceInfo trace, Memory arg) throws Throwable {
if (arg.isNull()) {
return null;
}
return arg.toObject(WrapTimeZone.class).getTimeZone();
}
@Override
public Memory unconvert(Environment env, TraceInfo trace, TimeZone arg) throws Throwable {
if (arg == null) {
return Memory.NULL;
}
return ObjectMemory.valueOf(new WrapTimeZone(env, arg));
}
@Override
public void applyTypeHinting(ParameterEntity parameter) {
parameter.setTypeNativeClass(WrapTimeZone.class);
}
}