package php.runtime.memory.helper; import php.runtime.Memory; import php.runtime.memory.ArrayMemory; import php.runtime.memory.LongMemory; import php.runtime.memory.ReferenceMemory; import php.runtime.memory.StringMemory; public class ArrayKeyMemory extends ReferenceMemory { private ArrayMemory array; public ArrayKeyMemory(ArrayMemory array, Memory key) { super(key); this.array = array; } @Override public Memory assign(Memory memory) { array.renameKey(value, memory); return super.assign(memory); } @Override public Memory assign(long memory) { array.renameKey(value, LongMemory.valueOf(memory)); return super.assign(memory); } @Override public Memory assign(String memory) { array.renameKey(value, new StringMemory(memory)); return super.assign(memory); } @Override public Memory assign(boolean memory) { return assign(memory ? 1 : 0); } @Override public Memory assign(double memory) { return assign((long)memory); } }