package org.basex.util.list; import static org.basex.util.Token.*; import java.util.Arrays; /** * This is a simple container for byte values. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public class ByteList extends ElementList { /** Element container. */ protected byte[] list; /** * Default constructor. */ public ByteList() { this(CAP); } /** * Constructor, specifying an initial array capacity. * @param c array capacity */ public ByteList(final int c) { list = new byte[c]; } /** * Adds an entry to the array. * @param e entry to be added * @return self reference */ public ByteList add(final int e) { if(size == list.length) list = Arrays.copyOf(list, newSize()); list[size++] = (byte) e; return this; } /** * Adds a byte array to the container. * @param b the entries to be added * @return self reference */ public ByteList add(final byte[] b) { return add(b, 0, b.length); } /** * Adds a partial byte array to the container. * @param b the entries to be added * @param s start position * @param e end position * @return self reference */ public ByteList add(final byte[] b, final int s, final int e) { final int l = e - s; if(size + l > list.length) list = Arrays.copyOf(list, newSize(size + l)); System.arraycopy(b, s, list, size, l); size += l; return this; } /** * Returns the byte at the specified position. * @param p position * @return byte */ public byte get(final int p) { return list[p]; } /** * Returns an array with all elements. * @return array */ public byte[] toArray() { return Arrays.copyOf(list, size); } @Override public String toString() { return string(list, 0, size); } }