AbstractBufferedByteWriter.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package com.l2jserver.communityserver.util.buffer;
  16. import java.util.Arrays;
  17. /**
  18. * @author Forsaiken
  19. */
  20. public abstract class AbstractBufferedByteWriter
  21. {
  22. protected byte[] buf;
  23. protected int wIndex;
  24. protected AbstractBufferedByteWriter(final int size)
  25. {
  26. buf = new byte[size];
  27. }
  28. public abstract void writeC(final int value);
  29. public abstract void writeH(final int value);
  30. public abstract void writeD(final int value);
  31. public abstract void writeF(final double value);
  32. public abstract void writeQ(final long value);
  33. public abstract void writeS(final String text);
  34. public abstract void writeB(final byte[] data);
  35. public final int length()
  36. {
  37. return wIndex;
  38. }
  39. public final byte[] toByteArray()
  40. {
  41. return Arrays.copyOf(buf, wIndex);
  42. }
  43. }