Package anvil.script

Source Code of anvil.script.ParameterList

/*
* $Id: ParameterList.java,v 1.12 2002/09/16 08:05:03 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.script;

import anvil.core.Any;
import anvil.core.Array;
import java.util.Enumeration;

/**
* class ParameterList
*
* @author: Jani Lehtim�ki
*/
public class ParameterList
{

  protected Any[] _parameters;
  protected int _size = 0;

  public ParameterList(int length)
  {
    _parameters = new Any[length];
  }
 

  protected void ensureSpace(int forSize)
  {
    int length = _parameters.length;
    int size = _size;
    if (size + forSize > length) {
      Any[] parameters = new Any[_size + forSize];
      if (size > 0) {
        System.arraycopy(_parameters, 0, parameters, 0, size);
      }
      _parameters = parameters;
    }
  }


  public ParameterList add(Any value)
  {
    ensureSpace(1);
    _parameters[_size++] = value;
    return this;
  }



  public ParameterList splice(Any value)
  {
    int length;
    switch(value.typeOf()) {
    case Any.IS_ARRAY:
      {
        Array array = value.toArray();
        ensureSpace(array.sizeOf());
        Enumeration e = array.elements();
        while(e.hasMoreElements()) {
          add((Any)e.nextElement());
        }
      }
      break;
   
    case Any.IS_TUPLE:
    case Any.IS_LIST:
      length = value.sizeOf();
      ensureSpace(length);
      Any[] list = value.toTuple();
      System.arraycopy(list, 0, _parameters, _size, length);
      _size += length;
      break;
     
    case Any.IS_STRING:
      add(value);
      break;
     
    default:
      {
        Enumeration e = value.enumeration();
        while(e.hasMoreElements()) {
          add(Any.create(e.nextElement()));
        }
      }
    }
    return this;
  }


  public Any[] toArray()
  {
    int length = _parameters.length;
    int size = _size;
    if (size == length) {
      return _parameters;
    } else {
      Any[] parameters = new Any[size];
      System.arraycopy(_parameters, 0, parameters, 0, size);
      return parameters;
    }
  }
 
 
}
TOP

Related Classes of anvil.script.ParameterList

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.