class PropertyIterator {

	public void split() {

		if ( tail == null ) {
			return;
		}

		String[] tokens = tail.split( "\\.", 2 ); // split the property at the first .

		head = tokens[0];
		index = null;

		if ( head.contains( "[" ) ) {
			head = tokens[0].substring( 0, tokens[0].indexOf( "[" ) );
			index = tokens[0].substring( tokens[0].indexOf( "[" ) + 1, tokens[0].indexOf( "]" ) );
		}

		if ( tokens.length > 1 ) {
			tail = tokens[1];
		}
		else {
			tail = null;
		}
	}

	public  PropertyIterator(String property);

}