private static Object getValue(final Object value, final int valueType, final V8Map<Object> cache, final TypeAdapter adapter) { Object adapterResult = adapter.adapt(valueType, value); if (TypeAdapter.DEFAULT != adapterResult) { return adapterResult; } switch (valueType) { case V8Value.INTEGER: case V8Value.DOUBLE: case V8Value.BOOLEAN: case V8Value.STRING: return value; case V8Value.V8_FUNCTION: return IGNORE; case V8Value.V8_ARRAY_BUFFER: return new ArrayBuffer((V8ArrayBuffer) value); case V8Value.V8_TYPED_ARRAY: return new TypedArray((V8TypedArray) value); case V8Value.V8_ARRAY: return toList((V8Array) value, cache, adapter); case V8Value.V8_OBJECT: return toMap((V8Object) value, cache, adapter); case V8Value.NULL: return null; case V8Value.UNDEFINED: return V8.getUndefined(); default: throw new IllegalStateException("Cannot convert type " + V8Value.getStringRepresentation(valueType)); } }
private static Object getValue(final Object value, final int valueType, final V8Map<Object> cache, final TypeAdapter adapter) { Object adapterResult = adapter.adapt(valueType, value); if (TypeAdapter.DEFAULT != adapterResult) { return adapterResult; } switch (valueType) { case V8Value.INTEGER: case V8Value.DOUBLE: case V8Value.BOOLEAN: case V8Value.STRING: return value; case V8Value.V8_FUNCTION: return IGNORE; case V8Value.V8_ARRAY_BUFFER: return new ArrayBuffer((V8ArrayBuffer) value); case V8Value.V8_TYPED_ARRAY: return new TypedArray((V8TypedArray) value); case V8Value.V8_ARRAY: return toList((V8Array) value, cache, adapter); case V8Value.V8_OBJECT: return toMap((V8Object) value, cache, adapter); case V8Value.NULL: return null; case V8Value.UNDEFINED: return V8.getUndefined(); default: throw new IllegalStateException("Cannot convert type " + V8Value.getStringRepresentation(valueType)); } }