package org.jboss.windup.rules.apps.javaee.service;
import org.jboss.windup.graph.GraphContext;
import org.jboss.windup.graph.model.ProjectModel;
import org.jboss.windup.graph.service.GraphService;
import org.jboss.windup.rules.apps.javaee.model.DataSourceModel;
import org.jboss.windup.rules.apps.javaee.model.JNDIResourceModel;
import java.util.Set;
/**
* Contains methods for querying, updating, and deleting {@link DataSourceModel}
*
* @author <a href="mailto:bradsdavis@gmail.com">Brad Davis</a>
*
*/
public class DataSourceService extends GraphService<DataSourceModel>
{
public DataSourceService(GraphContext context)
{
super(context, DataSourceModel.class);
}
/**
* Create unique; if existing convert an existing {@link DataSourceModel} if one exists.
*/
public synchronized DataSourceModel createUnique(Set<ProjectModel> applications, String dataSourceName, String jndiName)
{
JNDIResourceModel jndiResourceModel = new JNDIResourceService(getGraphContext()).createUnique(applications, jndiName);
final DataSourceModel dataSource;
if (jndiResourceModel instanceof DataSourceModel)
{
dataSource = (DataSourceModel) jndiResourceModel;
dataSource.setName(dataSourceName);
}
else
{
dataSource = addTypeToModel(jndiResourceModel);
dataSource.setName(dataSourceName);
}
return dataSource;
}
}