package php.runtime.memory.support.operation; import php.runtime.Memory; import php.runtime.env.Environment; import php.runtime.env.TraceInfo; import php.runtime.memory.StringMemory; import php.runtime.memory.support.MemoryOperation; import java.net.MalformedURLException; import java.net.URL; public class UrlMemoryOperation extends MemoryOperation<URL> { @Override public Class<?>[] getOperationClasses() { return new Class<?>[] { URL.class }; } @Override public URL convert(Environment env, TraceInfo trace, Memory arg) throws Throwable { try { return new URL(arg.toString()); } catch (MalformedURLException e) { throw new IllegalArgumentException(e); } } @Override public Memory unconvert(Environment env, TraceInfo trace, URL arg) throws Throwable { return StringMemory.valueOf(arg.toString()); } }