org.joe_e.array
Class ImmutableArray.Builder<E>

java.lang.Object
  extended by org.joe_e.array.ConstArray.Builder<E>
      extended by org.joe_e.array.ImmutableArray.Builder<E>
All Implemented Interfaces:
ArrayBuilder<E>
Direct Known Subclasses:
PowerlessArray.Builder
Enclosing class:
ImmutableArray<E>

public static class ImmutableArray.Builder<E>
extends ConstArray.Builder<E>

An ImmutableArray factory.


Method Summary
 void append(E newE)
          Appends an element to the Array
 void append(E[] newEs)
          Appends all elements from a Java array to the Array
 void append(E[] newEs, int off, int len)
          Appends a range of elements from a Java array to the Array
 ImmutableArray<E> snapshot()
          Create a snapshot of the current content.
 
Methods inherited from class org.joe_e.array.ConstArray.Builder
length
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

append

public void append(E newE)
Appends an element to the Array

Specified by:
append in interface ArrayBuilder<E>
Overrides:
append in class ConstArray.Builder<E>
Parameters:
newE - the element to append
Throws:
ClassCastException - if the newE is not immutable
NegativeArraySizeException - if the resulting internal array would exceed the maximum length of a Java array. The builder is unmodified.

append

public void append(E[] newEs)
Appends all elements from a Java array to the Array

Specified by:
append in interface ArrayBuilder<E>
Overrides:
append in class ConstArray.Builder<E>
Parameters:
newEs - the element to append
Throws:
ClassCastException - if the newEs is not immutable
IndexOutOfBoundsException - if the resulting internal array would exceed the maximum length of a Java array. The builder is unmodified.

append

public void append(E[] newEs,
                   int off,
                   int len)
Appends a range of elements from a Java array to the Array

Specified by:
append in interface ArrayBuilder<E>
Overrides:
append in class ConstArray.Builder<E>
Parameters:
newEs - the source array
off - the index of the first element to append
len - the number of elements to append
Throws:
ClassCastException - if the newEs is not immutable
IndexOutOfBoundsException - if an out-of-bounds index would be referenced or the resulting internal array would exceed the maximum length of a Java array. The builder is unmodified.

snapshot

public ImmutableArray<E> snapshot()
Create a snapshot of the current content.

Specified by:
snapshot in interface ArrayBuilder<E>
Overrides:
snapshot in class ConstArray.Builder<E>
Returns:
an ImmutableArray containing the elements so far