code: private GeometryIndex parseRecursive(String id) throws GeometryIndexNotFoundException {
  		int position = id.indexOf("geometry");
  		if (position >= 0) {
  			String temp = id.substring(position + 8);
  			int value = readInteger(temp);
  			if (value < 0) {
  				throw new GeometryIndexNotFoundException("Could not read value from " + temp);
  			}
  			GeometryIndex childIndex = parseRecursive(temp);
  			return new GeometryIndex(GeometryIndexType.TYPE_GEOMETRY, value, childIndex);
  		} else {
  			GeometryIndex index = parseSingle(id, "vertex", GeometryIndexType.TYPE_VERTEX);
  			if (index == null) {
  				index = parseSingle(id, "edge", GeometryIndexType.TYPE_EDGE);
  			}
  			return index;
  		}
  	}
docs: ------------------------------------------------------------------------