/** @see railo.runtime.type.Array#prepend(java.lang.Object) */
  public Object prepend(Object value) throws PageException {
    Element element = XMLCaster.toElement(struct.getOwnerDocument(), value);
    Object obj = struct.getInnerArray().get(1, null);

    if (obj instanceof Element) {
      Element el = ((Element) obj);
      el.getParentNode().insertBefore(XMLCaster.toRawNode(element), el);
    } else {
      struct.getParentNode().appendChild(XMLCaster.toRawNode(element));
    }
    return struct.getInnerArray().prepend(element);
  }
  /** @see railo.runtime.type.Array#sort(java.lang.String, java.lang.String) */
  public void sort(String sortType, String sortOrder) throws PageException {
    if (size() <= 1) return;

    struct.getInnerArray().sort(sortType, sortOrder);

    Object[] nodes = struct.getInnerArray().toArray();
    Node last = (Node) nodes[nodes.length - 1], current;
    Node parent = last.getParentNode();
    for (int i = nodes.length - 2; i >= 0; i--) {
      current = (Node) nodes[i];
      parent.insertBefore(current, last);
      last = current;
    } // MUST testen
  }
 /** @see railo.runtime.type.Collection#get(java.lang.String) */
 public Object get(String key) throws PageException {
   return struct.get(key);
 }
 /** @see railo.runtime.type.Array#getDimension() */
 public int getDimension() {
   return struct.getInnerArray().getDimension();
 }
 /** @see railo.runtime.type.Array#get(int, java.lang.Object) */
 public Object get(int key, Object defaultValue) {
   return struct.get(key, defaultValue);
 }
 /** @see railo.runtime.op.Castable#compareTo(double) */
 public int compareTo(double d) throws PageException {
   return struct.compareTo(d);
 }
 /** @see railo.runtime.op.Castable#compareTo(java.lang.String) */
 public int compareTo(String str) throws PageException {
   return struct.compareTo(str);
 }
 /** @see railo.runtime.op.Castable#castToString() */
 public String castToString() throws PageException {
   return struct.castToString();
 }
 /**
  * @see railo.runtime.type.Collection#setEL(railo.runtime.type.Collection.Key, java.lang.Object)
  */
 public Object setEL(Key key, Object value) {
   return struct.setEL(key, value);
 }
 /** @see railo.runtime.type.Collection#setEL(java.lang.String, java.lang.Object) */
 public Object setEL(String key, Object value) {
   return struct.setEL(key, value);
 }
 /** @see railo.runtime.type.Collection#set(railo.runtime.type.Collection.Key, java.lang.Object) */
 public Object set(Key key, Object value) throws PageException {
   return struct.set(key, value);
 }
 /** @see railo.runtime.type.Collection#removeEL(railo.runtime.type.Collection.Key) */
 public Object removeEL(Key key) {
   return struct.removeEL(key);
 }
 /** @see railo.runtime.type.Collection#remove(java.lang.String) */
 public Object remove(String key) throws PageException {
   return struct.remove(key);
 }
 /** @see railo.runtime.type.Collection#keysAsString() */
 public String[] keysAsString() {
   return struct.getInnerArray().keysAsString();
 }
 /** @see railo.runtime.type.Collection#keys() */
 public Key[] keys() {
   return struct.getInnerArray().keys();
 }
 /** @see railo.runtime.op.Castable#castToDoubleValue() */
 public double castToDoubleValue() throws PageException {
   return struct.castToDoubleValue();
 }
 /** @see railo.runtime.op.Castable#castToDoubleValue(double) */
 public double castToDoubleValue(double defaultValue) {
   return struct.castToDoubleValue(defaultValue);
 }
 /** @see railo.runtime.type.Collection#size() */
 public int size() {
   return struct.getInnerArray().size();
 }
 /** @see railo.runtime.type.util.StructSupport#castToString(java.lang.String) */
 public String castToString(String defaultValue) {
   return struct.castToString(defaultValue);
 }
 /** @see railo.runtime.dump.Dumpable#toDumpData(railo.runtime.PageContext, int) */
 public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp) {
   return struct.toDumpData(pageContext, maxlevel, dp);
 }
 /** @see railo.runtime.op.Castable#compareTo(boolean) */
 public int compareTo(boolean b) throws PageException {
   return struct.compareTo(b);
 }
 /** @see railo.runtime.type.Iteratorable#iterator() */
 public Iterator iterator() {
   return struct.getInnerArray().iterator();
 }
 /** @see railo.runtime.op.Castable#compareTo(railo.runtime.type.dt.DateTime) */
 public int compareTo(DateTime dt) throws PageException {
   return struct.compareTo(dt);
 }
 /** @see railo.runtime.op.Castable#castToBooleanValue() */
 public boolean castToBooleanValue() throws PageException {
   return struct.castToBooleanValue();
 }
 /** @see railo.runtime.type.Array#getE(int) */
 public Object getE(int key) throws PageException {
   return struct.get(key);
 }
 /** @see railo.runtime.op.Castable#castToBoolean(java.lang.Boolean) */
 public Boolean castToBoolean(Boolean defaultValue) {
   return struct.castToBoolean(defaultValue);
 }
 /** @see railo.runtime.type.Array#intKeys() */
 public int[] intKeys() {
   return struct.getInnerArray().intKeys();
 }
 /** @see railo.runtime.op.Castable#castToDateTime() */
 public DateTime castToDateTime() throws PageException {
   return struct.castToDateTime();
 }
 /** @see railo.runtime.type.Array#removeE(int) */
 public Object removeE(int key) throws PageException {
   return struct.remove(key);
 }
 /** @see railo.runtime.op.Castable#castToDateTime(railo.runtime.type.dt.DateTime) */
 public DateTime castToDateTime(DateTime defaultValue) {
   return struct.castToDateTime(defaultValue);
 }