{
final DatasourceModelNode newRoot = new DatasourceModelNode(DATASOURCES_ROOT_NODE_NAME, null, DATASOURCE_TYPE.ROOT);
for (int i = 0; i < cdf.size(); i++)
{
final DataFactory df = cdf.getReference(i);
final DataFactoryMetaData dfmd = getMetaForDataFactory(df, dataFactoryMetas);
if (dfmd == null)
{
continue;
}
DatasourceModelNode dfmdNode = findUserObjectInTree(dfmd, newRoot);
if (dfmdNode == null)
{
dfmdNode = new DatasourceModelNode(dfmd.getDisplayName(Locale.getDefault()), dfmd, DATASOURCE_TYPE.DATAFACTORY);
newRoot.add(dfmdNode);
}
DatasourceModelNode dataSourceNode = null;
final String connectionName = dfmd.getDisplayConnectionName(df);
if (connectionName != null)
{
dataSourceNode = new DatasourceModelNode(connectionName, df, DATASOURCE_TYPE.CONNECTION);
}
if (dataSourceNode != null)
{
dfmdNode.add(dataSourceNode);
}
for (final String queryName : df.getQueryNames())
{
final DatasourceModelNode queryNode = new DatasourceModelNode(queryName, null, DATASOURCE_TYPE.QUERY);
if (dataSourceNode != null)
{
dataSourceNode.add(queryNode);