/* * Copyright (C) 2013 Omry Yadan <omry@yadan.net> * All rights reserved. * * See https://github.com/omry/banana/blob/master/BSD-LICENSE for licensing information */ package net.yadan.banana.memory; public class OffsetPrimitiveAccess implements IPrimitiveAccess { private IPrimitiveAccess m_parent; private int m_baseOffset; public OffsetPrimitiveAccess(IPrimitiveAccess parent, int baseOffset) { m_parent = parent; m_baseOffset = baseOffset; } @Override public short getLowerShort(int pointer, int offset) { return m_parent.getLowerShort(pointer, m_baseOffset + offset); } @Override public void setLowerShort(int pointer, int offset, int s) { m_parent.setLowerShort(pointer, m_baseOffset + offset, s); } @Override public short getUpperShort(int pointer, int offset) { return m_parent.getUpperShort(pointer, m_baseOffset + offset); } @Override public void setUpperShort(int pointer, int offset, int s) { m_parent.setUpperShort(pointer, m_baseOffset + offset, s); } @Override public float getFloat(int pointer, int offset) { return m_parent.getFloat(pointer, m_baseOffset + offset); } @Override public void setFloat(int pointer, int offset, float f) { m_parent.setFloat(pointer, m_baseOffset + offset, f); } @Override public int getInt(int pointer, int offset_in_data) { return m_parent.getInt(pointer, m_baseOffset + offset_in_data); } @Override public void setInt(int pointer, int offset_in_data, int data) { m_parent.setInt(pointer, m_baseOffset + offset_in_data, data); } @Override public long getLong(int pointer, int offset_in_data) { return m_parent.getLong(pointer, m_baseOffset + offset_in_data); } @Override public void setLong(int pointer, int offset_in_data, long data) { m_parent.setLong(pointer, m_baseOffset + offset_in_data, data); } @Override public double getDouble(int pointer, int offset_in_data) { return m_parent.getDouble(pointer, m_baseOffset + offset_in_data); } @Override public void setDouble(int pointer, int offset_in_data, double data) { m_parent.setDouble(pointer, m_baseOffset + offset_in_data, data); } @Override public void setInts(int pointer, int dst_offset_in_record, int[] src_data, int src_pos, int length) { m_parent.setInts(pointer, m_baseOffset + dst_offset_in_record, src_data, src_pos, length); } @Override public void getInts(int pointer, int src_offset_in_record, int[] dst_data, int dst_pos, int length) { m_parent.getInts(pointer, m_baseOffset + src_offset_in_record, dst_data, dst_pos, length); } @Override public void setChars(int pointer, int dst_offset, char[] src_data, int src_pos, int num_chars) { m_parent.setChars(pointer, m_baseOffset + dst_offset, src_data, src_pos, num_chars); } @Override public void getChars(int pointer, int src_offset, char[] dst_data, int dst_pos, int num_chars) { m_parent.getChars(pointer, m_baseOffset + src_offset, dst_data, dst_pos, num_chars); } @Override public void getBuffer(int pointer, int src_offset_in_record, IBuffer dst, int length) { m_parent.getBuffer(pointer, m_baseOffset + src_offset_in_record, dst, length); } @Override public int maximumCapacityFor(int pointer) { return m_parent.maximumCapacityFor(pointer) - m_baseOffset; } }