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;
		}
	}
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 ; } }
------------------------------------------------------------------------