public <K extends NativeObject, V extends NativeObject> Map<K, V> asMap(Class<K> keyType, Class<V> valueType) { Map<K, V> map = new HashMap<>(); VoidPtr.VoidPtrPtr keys = new VoidPtr.VoidPtrPtr(); VoidPtr.VoidPtrPtr values = new VoidPtr.VoidPtrPtr(); getKeysAndValues(keys, values); VoidPtr kp = keys.get(); VoidPtr vp = values.get(); map.put(kp.as(keyType), vp.as(valueType)); for (long i = 1, n = size(); i < n; i++) { VoidPtr k = kp.next(); VoidPtr v = vp.next(); map.put(k.as(keyType), v.as(valueType)); } return map; } public <V extends NativeObject> Map<String, V> asStringMap(Class<V> valueType) {
static Object toMachineSizedFloatArray(Object array) { if (array == null) { throw new NullPointerException(); } if (VoidPtr.sizeOf() == 4 && array instanceof double[]) { return CoreGraphics.doublesToFloats((double[]) array); } else if (VoidPtr.sizeOf() == 8 && array instanceof float[]) { return CoreGraphics.floatsToDoubles((float[]) array); } else { return array; } }
public <T extends Struct<T>> T getEventData(Class<T> type) { T data = Struct.allocate(type); data.update(eventData.as(type)); return data; } public int getEventDataSize() {
public VoidPtr getValue() { VoidPtr ptr = new VoidPtr(); getValue(ptr); return ptr; }
public <T extends NativeObject> T get(NativeObject key, Class<T> type) { return getValue(key.as(VoidPtr.class)).as(type); } public boolean containsKey(NativeObject key) {
public boolean isNull() { return getValue(CGPDFObjectType.Null, new VoidPtr()); } public boolean booleanValue() {
public <T extends NativeObject> T get(@MachineSizedSInt long index, Class<T> type) { return getValueAtIndex(index).as(type); } public @MachineSizedSInt long size() {
public <K extends NativeObject, V extends NativeObject> Map<K, V> asMap(Class<K> keyType, Class<V> valueType) { Map<K, V> map = new HashMap<>(); VoidPtr.VoidPtrPtr keys = new VoidPtr.VoidPtrPtr(); VoidPtr.VoidPtrPtr values = new VoidPtr.VoidPtrPtr(); getKeysAndValues(keys, values); VoidPtr kp = keys.get(); VoidPtr vp = values.get(); map.put(kp.as(keyType), vp.as(valueType)); for (long i = 1, n = size(); i < n; i++) { VoidPtr k = kp.next(); VoidPtr v = vp.next(); map.put(k.as(keyType), v.as(valueType)); } return map; } public <V extends NativeObject> Map<String, V> asStringMap(Class<V> valueType) {
public VoidPtr getValue() { VoidPtr ptr = new VoidPtr(); getValue(ptr); return ptr; }
static Object toMachineSizedFloatArray(Object array) { if (array == null) { throw new NullPointerException(); } if (VoidPtr.sizeOf() == 4 && array instanceof double[]) { return CoreGraphics.doublesToFloats((double[]) array); } else if (VoidPtr.sizeOf() == 8 && array instanceof float[]) { return CoreGraphics.floatsToDoubles((float[]) array); } else { return array; } }
@SuppressWarnings("unchecked") public <T extends Buffer> T getOutputDataAsBuffer(Class<T> bufferType) { VoidPtr ptr = getOutputDataPointer(); if (bufferType == ByteBuffer.class) { return (T) ptr.as(BytePtr.class).asByteBuffer(getOutputDataSize()); } else if (bufferType == CharBuffer.class) { return (T) ptr.as(CharPtr.class).asCharBuffer(getOutputDataSize()); } else if (bufferType == ShortBuffer.class) { return (T) ptr.as(ShortPtr.class).asShortBuffer(getOutputDataSize()); } else if (bufferType == IntBuffer.class) { return (T) ptr.as(IntPtr.class).asIntBuffer(getOutputDataSize()); } else if (bufferType == LongBuffer.class) { return (T) ptr.as(LongPtr.class).asLongBuffer(getOutputDataSize()); } else if (bufferType == FloatBuffer.class) { return (T) ptr.as(FloatPtr.class).asFloatBuffer(getOutputDataSize()); } else if (bufferType == DoubleBuffer.class) { return (T) ptr.as(DoublePtr.class).asDoubleBuffer(getOutputDataSize()); } else { throw new UnsupportedOperationException("Buffer type not supported: " + bufferType); } }
public <K extends NativeObject, V extends NativeObject> Map<K, V> asMap(Class<K> keyType, Class<V> valueType) { Map<K, V> map = new HashMap<>(); VoidPtr.VoidPtrPtr keys = new VoidPtr.VoidPtrPtr(); VoidPtr.VoidPtrPtr values = new VoidPtr.VoidPtrPtr(); getKeysAndValues(keys, values); VoidPtr kp = keys.get(); VoidPtr vp = values.get(); map.put(kp.as(keyType), vp.as(valueType)); for (long i = 1, n = size(); i < n; i++) { VoidPtr k = kp.next(); VoidPtr v = vp.next(); map.put(k.as(keyType), v.as(valueType)); } return map; } public <V extends NativeObject> Map<String, V> asStringMap(Class<V> valueType) {
public VoidPtr getValue() { VoidPtr ptr = new VoidPtr(); getValue(ptr); return ptr; }
static Object toMachineSizedFloatArray(Object array) { if (array == null) { throw new NullPointerException(); } if (VoidPtr.sizeOf() == 4 && array instanceof double[]) { return CoreGraphics.doublesToFloats((double[]) array); } else if (VoidPtr.sizeOf() == 8 && array instanceof float[]) { return CoreGraphics.floatsToDoubles((float[]) array); } else { return array; } }
public char[] getOutputDataAsCharArray() { CharPtr ptr = getOutputDataPointer().as(CharPtr.class); return ptr.toCharArray(getOutputDataSize()); } public int[] getOutputDataAsIntArray() {
public boolean isNull() { return getValue(CGPDFObjectType.Null, new VoidPtr()); } public boolean booleanValue() {