actions
[jcryptoboard.git] / jcryptoboard-api / src / main / java / jcryptoboard / api / types / ByteArray.java
blob783c89b90e1053026cb5f1d5c45b49ff8f0958e1
1 package jcryptoboard.api.types;
3 import org.apache.commons.lang.ArrayUtils;
4 import org.apache.commons.lang.mutable.Mutable;
6 public class ByteArray implements Mutable {
8 private byte[] array;
10 public ByteArray() {
11 this.array = ArrayUtils.EMPTY_BYTE_ARRAY;
14 public ByteArray(int length) {
15 this.array = new byte[length];
18 public void setCapacity(int capacity) {
19 if (array == null) {
20 array = new byte[capacity];
21 } else if (array.length < capacity) {
22 byte[] newArray = new byte[capacity];
23 System.arraycopy(array, 0, newArray, 0, array.length);
24 array = newArray;
28 public void setSize(int size) {
29 if (array == null) {
30 array = new byte[size];
31 } else if (array.length != size) {
32 byte[] newArray = new byte[size];
33 System.arraycopy(array, 0, newArray, 0, Math.min(array.length, size));
34 array = newArray;
38 public byte[] getArray() {
39 return array;
42 public byte[] getCopy() {
43 return ArrayUtils.clone(array);
46 public byte getFirst() {
47 if ((array != null) && array.length > 0)
48 return array[0];
50 return 0;
53 public byte getLast() {
54 if ((array != null) && array.length > 0)
55 return array[array.length-1];
57 return 0;
60 public int getLength() {
61 return array.length;
64 public byte[] getValue() {
65 return array;
68 public void setValue(Object value) {
69 array = (byte[]) value;