private EmbeddedNodesTree createEmbeddedTree(String collectionRole, String[] embeddedColumnNames, Object[] embeddedColumnValues, int offset) {
		EmbeddedNodesTree tree = new EmbeddedNodesTree();
		for ( int i = 0; i < embeddedColumnNames.length; i++ ) {
			String embeddedColumnName;
			if ( embeddedColumnNames[i].startsWith( collectionRole ) ) {
				embeddedColumnName = embeddedColumnNames[i].substring( collectionRole.length() + 1 );
			}
			else {
				embeddedColumnName = embeddedColumnNames[i];
			}

			if ( embeddedColumnValues[i] != null ) {
				if ( embeddedColumnName.contains( "." ) ) {
					int firstDot = embeddedColumnName.indexOf( "." );
					String relationshipType = embeddedColumnName.substring( 0, firstDot );
					String currentProperty = embeddedColumnName.substring( firstDot + 1 );
					appendSubTree( tree, currentProperty, relationshipType, offset + i );
				}
				else {
					EmbeddedNodeProperty property = new EmbeddedNodeProperty();
					property.setParam( offset + i );
					property.setColumn( embeddedColumnName );
					tree.addProperty( property );
				}
			}
		}
		return tree;
	}
private EmbeddedNodesTree createEmbeddedTree ( String collectionRole , String [ ] embeddedColumnNames , Object [ ] embeddedColumnValues , int offset ) { EmbeddedNodesTree tree = new EmbeddedNodesTree ( ) ; for ( int i = 0 ; i < embeddedColumnNames . length ; i ++ ) { String embeddedColumnName ; if ( embeddedColumnNames [ i ] . startsWith ( collectionRole ) ) { embeddedColumnName = embeddedColumnNames [ i ] . substring ( collectionRole . length ( ) + 1 ) ; } else { embeddedColumnName = embeddedColumnNames [ i ] ; } if ( embeddedColumnValues [ i ] != null ) { if ( embeddedColumnName . contains ( "." ) ) { int firstDot = embeddedColumnName . indexOf ( "." ) ; String relationshipType = embeddedColumnName . substring ( 0 , firstDot ) ; String currentProperty = embeddedColumnName . substring ( firstDot + 1 ) ; appendSubTree ( tree , currentProperty , relationshipType , offset + i ) ; } else { EmbeddedNodeProperty property = new EmbeddedNodeProperty ( ) ; property . setParam ( offset + i ) ; property . setColumn ( embeddedColumnName ) ; tree . addProperty ( property ) ; } } } return tree ; }
/*
If the association is connected to embedded elements we also need to create the embedded relationships for this
elements. This method will create an tree containing the information about the path to the embedded in a more
managabel way.