code: public GeometryIndex create(GeometryIndexType type, int... values) {
  		GeometryIndex index;
  		if (values.length > 0) {
  			index = new GeometryIndex(type, values[values.length - 1], null);
  		} else {
  			throw new IllegalArgumentException("Cannot create a GeometryIndex since no values where given.");
  		}
  		if (values.length > 1) {
  			for (int i = values.length - 2; i >= 0; i--) {
  				index = new GeometryIndex(GeometryIndexType.TYPE_GEOMETRY, values[i], index);
  			}
  		}
  		return index;
  	}
docs: Create a new index given a type and a list of values. This index will be built recursively and will have a depth
  equal to the number of values given.
  
  @param type
  The type of index applied on the deepest child index. Note that all parent index nodes will be of the
  type <code>GeometryIndexType.TYPE_GEOMETRY</code>. Only the deepest child will use this given type.
  @param values
  A list of integer values that determine the indices on each level in the index.
  @return The recursive geometry index resulting from the given parameters.