
org.ikasan.mapping.dao.HibernateMappingConfigurationDao Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ikasan-mapping Show documentation
Show all versions of ikasan-mapping Show documentation
A library for managing mapping configurations for the Ikasan platform
The newest version!
/*
* $Id$
* $URL$
*
* ====================================================================
* Ikasan Enterprise Integration Platform
*
* Distributed under the Modified BSD License.
* Copyright notice: The copyright for this software and a full listing
* of individual contributors are as shown in the packaged copyright.txt
* file.
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* - Neither the name of the ORGANIZATION nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
package org.ikasan.mapping.dao;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.*;
import org.ikasan.mapping.dao.constants.MappingConfigurationDaoConstants;
import org.ikasan.mapping.model.*;
import org.ikasan.spec.mapping.NamedResult;
import org.ikasan.spec.mapping.QueryParameter;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.support.DataAccessUtils;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
/**
* @author Ikasan Development Team
*
*/
public class HibernateMappingConfigurationDao extends HibernateDaoSupport implements MappingConfigurationDao
{
private static final Long ID = new Long(1);
/* (non-Javadoc)
* @see com.mizuho.cmi2.stateModel.dao.MappingConfigurationDao#getTargetConfigurationValue(java.lang.String, java.lang.String, java.lang.String, java.util.List)
*/
@SuppressWarnings("unchecked")
@Override
public String getTargetConfigurationValueWithIgnores(final String clientName, final String configurationType, final String sourceSystem
, final String targetSystem, final List sourceSystemValues, final int numParams)
{
// We don't want to search on an empty string if we have a mapping with more than 1 source value
if(sourceSystemValues == null || (sourceSystemValues.size() == 1 && numParams > 1 && sourceSystemValues.get(0).equals("")))
{
return null;
}
return (String)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(buildWithIgnoresQueryString(sourceSystemValues));
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, configurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceSystem);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetSystem);
query.setParameter(MappingConfigurationDaoConstants.NUMBER_OF_PARAMS, numParams);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
query.setParameter(MappingConfigurationDaoConstants.SIZE, new Long(sourceSystemValues.size()));
int i=0;
for(String sourceSystemValue: sourceSystemValues)
{
if(sourceSystemValue == null || sourceSystemValue.equals(""))
{
sourceSystemValue = "ignore";
}
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE + i, sourceSystemValue);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE_SIZE_CONFIRM + i, sourceSystemValue);
i++;
}
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else if(results.size() > 1)
{
StringBuffer sourceSystemValuesSB = new StringBuffer();
sourceSystemValuesSB.append("[SourceSystemValues = ");
for(String sourceSystemValue: sourceSystemValues)
{
sourceSystemValuesSB.append(sourceSystemValue).append(" ");
}
sourceSystemValuesSB.append("]");
String errorMessage = "Multiple results returned from the mapping configuration service. " +
"[Client = " + clientName + "] [MappingConfigurationType = " + configurationType + "] [SourceContext = " + sourceSystem + "] " +
"[TargetContext = " + targetSystem + "] " + sourceSystemValuesSB.toString();
logger.error(errorMessage);
throw new RuntimeException(errorMessage);
}
else
{
return results.get(0);
}
}
});
}
@Override
public String getTargetConfigurationValueWithIgnoresWithOrdinality(final String clientName, final String configurationType, final String sourceSystem, final String targetSystem, final List sourceSystemValues, final int numParams)
{
// We don't want to search on an empty string if we have a mapping with more than 1 source value
if(sourceSystemValues == null || (sourceSystemValues.size() == 1 && numParams > 1 && sourceSystemValues.get(0).getValue().equals("")))
{
return null;
}
return (String)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(buildWithIgnoresQueryStringWithNamedParams(sourceSystemValues));
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, configurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceSystem);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetSystem);
query.setParameter(MappingConfigurationDaoConstants.NUMBER_OF_PARAMS, numParams);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
query.setParameter(MappingConfigurationDaoConstants.SIZE, new Long(sourceSystemValues.size()));
int i=0;
for(QueryParameter sourceSystemValue: sourceSystemValues)
{
if(sourceSystemValue.getValue() == null || sourceSystemValue.getValue().equals(""))
{
sourceSystemValue.setValue("ignore");
}
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE + i, sourceSystemValue.getValue());
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE_NAME + i, sourceSystemValue.getName());
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE_SIZE_CONFIRM + i, sourceSystemValue.getValue());
i++;
}
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else if(results.size() > 1)
{
StringBuffer sourceSystemValuesSB = new StringBuffer();
sourceSystemValuesSB.append("[SourceSystemValues = ");
for(QueryParameter sourceSystemValue: sourceSystemValues)
{
sourceSystemValuesSB.append(sourceSystemValue).append(" ");
}
sourceSystemValuesSB.append("]");
String errorMessage = "Multiple results returned from the mapping configuration service. " +
"[Client = " + clientName + "] [MappingConfigurationType = " + configurationType + "] [SourceContext = " + sourceSystem + "] " +
"[TargetContext = " + targetSystem + "] " + sourceSystemValuesSB.toString();
logger.error(errorMessage);
throw new RuntimeException(errorMessage);
}
else
{
return results.get(0);
}
}
});
}
@SuppressWarnings("unchecked")
@Override
public String getReverseMapping(final String clientName, final String configurationType, final String sourceSystem
, final String targetSystem, final String targetSystemValue)
{
return (String)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.REVERSE_MAPPING_CONFIGURATION_QUERY);
query.setParameter(MappingConfigurationDaoConstants.TARGET_SYSTEM_VALUE, targetSystemValue);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, configurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceSystem);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetSystem);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else if(results.size() > 1)
{
String errorMessage = "Multiple results returned from the mapping configuration service. " +
"[Client = " + clientName + "] [MappingConfigurationType = " + configurationType + "] [SourceContext = " + sourceSystem + "] " +
"[TargetContext = " + targetSystem + "] " + "[TargetSystemValue = " + targetSystemValue + "]";
logger.error(errorMessage);
throw new RuntimeException(errorMessage);
}
else
{
return results.get(0);
}
}
});
}
/*
* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getTargetConfigurationValue(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.List)
*/
@Override
public String getTargetConfigurationValue(final String clientName, final String configurationType, final String sourceSystem
, final String targetSystem, final List sourceSystemValues)
{
return (String)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(buildQueryString(sourceSystemValues));
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, configurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceSystem);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetSystem);
query.setParameter(MappingConfigurationDaoConstants.NUMBER_OF_PARAMS, sourceSystemValues.size());
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
int i=0;
for(String sourceSystemValue: sourceSystemValues)
{
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE + i, sourceSystemValue);
i++;
}
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else if(results.size() > 1)
{
String errorMessage = "Multiple results returned from the mapping configuration service. " +
"[Client = " + clientName + "] [MappingConfigurationType = " + configurationType + "] [SourceContext = " + sourceSystem
+ "] [SourceSystemValues = ";
for(String sourceSystemValue: sourceSystemValues)
{
errorMessage += sourceSystemValue + " ";
}
errorMessage += "]";
errorMessage += "[TargetContext = " + targetSystem + "] " + "[TargetSystemValues = ";
for(String targetSystemValue:results)
{
errorMessage += targetSystemValue + " ";
}
errorMessage += "]";
logger.error(errorMessage);
throw new RuntimeException(errorMessage);
}
else
{
return results.get(0);
}
}
});
}
@Override
public String getTargetConfigurationValueWithOrdinality(final String clientName, final String configurationType, final String sourceContext, final String targetContext, final List sourceSystemValues)
{
return (String)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(buildQueryStringWithNamedParams(sourceSystemValues));
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, configurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceContext);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetContext);
query.setParameter(MappingConfigurationDaoConstants.NUMBER_OF_PARAMS, sourceSystemValues.size());
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
int i=0;
for(QueryParameter sourceSystemValue: sourceSystemValues)
{
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE + i, sourceSystemValue.getValue());
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE_NAME + i, sourceSystemValue.getName());
i++;
}
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else if(results.size() > 1)
{
String errorMessage = "Multiple results returned from the mapping configuration service. " +
"[Client = " + clientName + "] [MappingConfigurationType = " + configurationType + "] [SourceContext = " + sourceContext
+ "] [SourceSystemValues = ";
for (QueryParameter sourceSystemValue : sourceSystemValues)
{
errorMessage += "{" + sourceSystemValue.getName() + ", " + sourceSystemValue.getValue() + "}";
}
errorMessage += "]";
errorMessage += "[TargetContext = " + targetContext + "] " + "[TargetSystemValues = ";
for (String targetSystemValue : results)
{
errorMessage += targetSystemValue + " ";
}
errorMessage += "]";
logger.error(errorMessage);
throw new RuntimeException(errorMessage);
}
else
{
return results.get(0);
}
}
});
}
/*
* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getTargetConfigurationValue(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.List)
*/
@Override
public List getTargetConfigurationValues(final String clientName, final String configurationType, final String sourceSystem
, final String targetSystem, final List sourceSystemValues)
{
MappingConfiguration mappingConfiguration = this.getMappingConfiguration(clientName, configurationType, sourceSystem, targetSystem);
if(mappingConfiguration == null)
{
return new ArrayList();
}
final List manyToManySourceConfigurationValues
= this.getSourceConfigurationValues(mappingConfiguration.getId(), sourceSystemValues);
if(manyToManySourceConfigurationValues.size() == 0)
{
return new ArrayList();
}
Long groupingId = -1l;
HashMap> groups = new HashMap>();
for(SourceConfigurationValue value: manyToManySourceConfigurationValues)
{
List sourceValues = groups.get(value.getSourceConfigGroupId());
if(sourceValues == null)
{
sourceValues = new ArrayList();
sourceValues.add(value);
groups.put(value.getSourceConfigGroupId(), sourceValues);
}
else
{
groups.get(value.getSourceConfigGroupId()).add(value);
}
}
for(Long groupId: groups.keySet())
{
Long expectedSourceValues = getNumberOfSourceValuesForGroupId(groupId);
if(groups.get(groupId).size() == expectedSourceValues)
{
groupingId = groupId;
}
}
if(groupingId == -1l)
{
return new ArrayList();
}
final Long groupingIdParam = groupingId;
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.MANY_TO_MAPPING_CONFIGURATION_QUERY);
query.setParameter(MappingConfigurationDaoConstants.GROUPING_ID, groupingIdParam);
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else
{
ArrayList resultList = new ArrayList();
for(ManyToManyTargetConfigurationValue result: results)
{
resultList.add(result.getTargetSystemValue());
}
return resultList;
}
}
});
}
@Override
public List getTargetConfigurationValuesWithOrdinality(String clientName, String configurationType, String sourceContext, String targetContext, List sourceSystemValues)
{
MappingConfiguration mappingConfiguration = this.getMappingConfiguration(clientName, configurationType, sourceContext, targetContext);
if(mappingConfiguration == null)
{
return new ArrayList();
}
final List manyToManySourceConfigurationValues
= this.getSourceConfigurationValuesWithName(mappingConfiguration.getId(), sourceSystemValues);
if(manyToManySourceConfigurationValues.size() == 0)
{
return new ArrayList();
}
Long groupingId = -1l;
HashMap> groups = new HashMap>();
for(SourceConfigurationValue value: manyToManySourceConfigurationValues)
{
List sourceValues = groups.get(value.getSourceConfigGroupId());
if(sourceValues == null)
{
sourceValues = new ArrayList();
sourceValues.add(value);
groups.put(value.getSourceConfigGroupId(), sourceValues);
}
else
{
groups.get(value.getSourceConfigGroupId()).add(value);
}
}
for(Long groupId: groups.keySet())
{
Long expectedSourceValues = getNumberOfSourceValuesForGroupId(groupId);
if(groups.get(groupId).size() == expectedSourceValues)
{
groupingId = groupId;
}
}
if(groupingId == -1l)
{
return new ArrayList();
}
final Long groupingIdParam = groupingId;
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.MANY_TO_MAPPING_CONFIGURATION_QUERY);
query.setParameter(MappingConfigurationDaoConstants.GROUPING_ID, groupingIdParam);
List results = (List)query.list();
if(results.size() == 0)
{
return null;
}
else
{
ArrayList resultList = new ArrayList();
for(ManyToManyTargetConfigurationValue result: results)
{
NamedResultImpl namedResult = new NamedResultImpl(result.getName(), result.getTargetSystemValue());
resultList.add(namedResult);
}
return resultList;
}
}
});
}
/**
* Helper method to build the query string used to query the mapping
* configuration data.
*
* @param sourceSystemValues
* @return
*/
private String buildQueryString(List sourceSystemValues)
{
StringBuffer query = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_QUERY);
for(int i=0; i sourceSystemValues)
{
StringBuffer query = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_QUERY);
for(int i=0; i sourceSystemValues)
{
StringBuffer query = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_QUERY);
for(int i=0; i sourceSystemValues)
{
StringBuffer query = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_QUERY);
for(int i=0; i getSourceConfigurationValues(Long mappingConfigurationId, List values)
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationValue.class);
criteria.add(Restrictions.in("sourceSystemValue", values));
criteria.add(Restrictions.eq("mappingConfigurationId", mappingConfigurationId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
protected List getSourceConfigurationValuesWithName(Long mappingConfigurationId, List values)
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationValue.class);
criteria.add(Restrictions.eq("mappingConfigurationId", mappingConfigurationId));
Disjunction or = Restrictions.disjunction();
for(QueryParameter param: values)
{
Conjunction and = Restrictions.conjunction();
and.add(Restrictions.eq("sourceSystemValue", param.getValue()));
and.add(Restrictions.eq("name", param.getName()));
or.add(and);
}
criteria.add(or);
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/*
* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#storeConfigurationServiceClient(org.ikasan.mapping.window.ConfigurationServiceClient)
*/
@Override
public Long storeConfigurationServiceClient(ConfigurationServiceClient configurationServiceClient)
{
configurationServiceClient.setUpdatedDateTime(new Date());
this.getHibernateTemplate().saveOrUpdate(configurationServiceClient);
return configurationServiceClient.getId();
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#storeParameterName(org.ikasan.mapping.window.KeyLocationQuery)
*/
@Override
public Long storeParameterName(ParameterName parameterName)
{
parameterName.setUpdatedDateTime(new Date());
this.getHibernateTemplate().saveOrUpdate(parameterName);
return parameterName.getId();
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#storeConfigurationContext(org.ikasan.mapping.window.ConfigurationContext)
*/
@Override
public Long storeConfigurationContext(ConfigurationContext configurationContext)
{
configurationContext.setUpdatedDateTime(new Date());
this.getHibernateTemplate().saveOrUpdate(configurationContext);
return configurationContext.getId();
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getAllConfigurationTypes()
*/
@SuppressWarnings("unchecked")
@Override
public List getAllConfigurationTypes()
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationType.class);
return (List) this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getAllConfigurationContexts()
*/
@SuppressWarnings("unchecked")
@Override
public List getAllConfigurationContexts()
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationContext.class);
return (List) this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getAllConfigurationServiceClients()
*/
@SuppressWarnings("unchecked")
@Override
public List getAllConfigurationServiceClients()
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationServiceClient.class);
return (List) this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfigurationById(java.lang.Long)
*/
@Override
public MappingConfiguration getMappingConfigurationById(Long id)
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
criteria.add(Restrictions.eq("id", id));
return (MappingConfiguration)DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfiguration(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public MappingConfiguration getMappingConfiguration(final String clientName, final String mappingConfigurationType,
final String sourceContextName, final String targetContextName)
{
return (MappingConfiguration)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_BY_CLIENT_TYPE_AND_CONTEXT_QUERY);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, mappingConfigurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceContextName);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetContextName);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
List mappingConfigurations = (List)query.list();
if(mappingConfigurations.size() == 0)
{
return null;
}
else
{
return mappingConfigurations.get(0);
}
}
});
}
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurations(final String clientName, final String mappingConfigurationType,
final String sourceContextName, final String targetContextName)
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
StringBuffer queryString = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_BASE_QUERY);
if(clientName != null && clientName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_CLIENT_PREDICATE);
}
if(mappingConfigurationType != null && mappingConfigurationType.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_TYPE_PREDICATE);
}
if(sourceContextName != null && sourceContextName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.SOURCE_CONTEXT_PREDICATE);
}
if(targetContextName != null && targetContextName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.TARGET_CONTEXT_PREDICATE);
}
Query query = session.createQuery(queryString.toString());
if(clientName != null && clientName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
}
if(mappingConfigurationType != null && mappingConfigurationType.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, mappingConfigurationType);
}
if(sourceContextName != null && sourceContextName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceContextName);
}
if(targetContextName != null && targetContextName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetContextName);
}
return (List)query.list();
}
});
}
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurationLites(final String clientName, final String mappingConfigurationType,
final String sourceContextName, final String targetContextName)
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
StringBuffer queryString = new StringBuffer(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_LITE_BASE_QUERY);
if(clientName != null && clientName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_CLIENT_PREDICATE);
}
if(mappingConfigurationType != null && mappingConfigurationType.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_TYPE_PREDICATE);
}
if(sourceContextName != null && sourceContextName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.SOURCE_CONTEXT_PREDICATE);
}
if(targetContextName != null && targetContextName.trim().length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.TARGET_CONTEXT_PREDICATE);
}
Query query = session.createQuery(queryString.toString());
if(clientName != null && clientName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
}
if(mappingConfigurationType != null && mappingConfigurationType.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, mappingConfigurationType);
}
if(sourceContextName != null && sourceContextName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceContextName);
}
if(targetContextName != null && targetContextName.trim().length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetContextName);
}
return (List)query.list();
}
});
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfigurationsByConfigurationServiceClientId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurationsByConfigurationServiceClientId(
Long configurationServiceClientId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
criteria.add(Restrictions.eq("configurationServiceClient.id", configurationServiceClientId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfigurationsByConfigurationTypeId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurationsByConfigurationTypeId(Long configurationTypeId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
criteria.add(Restrictions.eq("configurationType.id", configurationTypeId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfigurationsBySourceContextId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurationsBySourceContextId(Long sourceContextId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
criteria.add(Restrictions.eq("sourceContext.id", sourceContextId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getMappingConfigurationsByTargetContextId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getMappingConfigurationsByTargetContextId(Long targetContextId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
criteria.add(Restrictions.eq("targetContext.id", targetContextId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationContextById(java.lang.Long)
*/
@Override
public ConfigurationContext getConfigurationContextById(Long id)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationContext.class);
criteria.add(Restrictions.eq("id", id));
return (ConfigurationContext)DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationServiceClientById(java.lang.Long)
*/
@Override
public ConfigurationServiceClient getConfigurationServiceClientById(Long id)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationServiceClient.class);
criteria.add(Restrictions.eq("id", id));
return (ConfigurationServiceClient)DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationTypeById(java.lang.Long)
*/
@Override
public ConfigurationType getConfigurationTypeById(Long id)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationType.class);
criteria.add(Restrictions.eq("id", id));
return (ConfigurationType)DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getParameterNameByMappingConfigurationId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getParameterNameByMappingConfigurationId(Long mappingConfigurationId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ParameterName.class);
criteria.add(Restrictions.eq("mappingConfigurationId", mappingConfigurationId));
criteria.addOrder(Order.asc("ordinal"));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getSourceConfigurationValueByMappingConfigurationId(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
public List getSourceConfigurationValueByMappingConfigurationId(
Long mappingConfigurationId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationValue.class);
criteria.add(Restrictions.eq("mappingConfigurationId", mappingConfigurationId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getTargetConfigurationValueById(java.lang.Long)
*/
@Override
public TargetConfigurationValue getTargetConfigurationValueById(Long id)
{
DetachedCriteria criteria = DetachedCriteria.forClass(TargetConfigurationValue.class);
criteria.add(Restrictions.eq("id", id));
return (TargetConfigurationValue)DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getAllMappingCongigurations()
*/
@SuppressWarnings("unchecked")
@Override
public List getAllMappingConfigurations()
{
DetachedCriteria criteria = DetachedCriteria.forClass(MappingConfiguration.class);
return (List) this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getTargetConfigurationValueByMappingConfigurationId(java.lang.Long)
*/
@Override
public List getSourceConfigurationValuesByTargetConfigurationValueId(
Long targetConfigurationValueId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationValue.class);
criteria.add(Restrictions.eq("targetConfigurationValue.id", targetConfigurationValueId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#deleteSourceConfigurationValue(org.ikasan.mapping.window.SourceConfigurationValue)
*/
@Override
public void deleteSourceConfigurationValue(SourceConfigurationValue sourceConfigurationValue)
{
this.getHibernateTemplate().delete(sourceConfigurationValue);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#deleteTargetConfigurationValue(org.ikasan.mapping.window.TargetConfigurationValue)
*/
@Override
public void deleteTargetConfigurationValue(TargetConfigurationValue targetConfigurationValue)
{
this.getHibernateTemplate().delete(targetConfigurationValue);
}
/*
* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getSourceConfigurationGroupSequence()
*/
@Override
public SourceConfigurationGroupSequence getSourceConfigurationGroupSequence()
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationGroupSequence.class);
criteria.add(Restrictions.eq("id", ID));
return (SourceConfigurationGroupSequence) DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/*
* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#saveSourceConfigurationGroupSequence(org.ikasan.mapping.window.SourceConfigurationGroupSequence)
*/
@Override
public void saveSourceConfigurationGroupSequence(SourceConfigurationGroupSequence sequence)
{
sequence.setId(ID);
this.getHibernateTemplate().saveOrUpdate(sequence);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getNumberOfSourceConfigurationValuesReferencingTargetConfigurationValue(org.ikasan.mapping.window.TargetConfigurationValue)
*/
@Override
public Long getNumberOfSourceConfigurationValuesReferencingTargetConfigurationValue(
final TargetConfigurationValue targetConfigurationValue)
{
if(targetConfigurationValue == null)
{
return 0l;
}
return (Long)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.NUMBER_OF_SOURCE_CONFIGURATION_VALUES_REFERENCING_TARGET_CONFIGURATION_VALUE);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONFIGURATION_VALUE_ID, targetConfigurationValue.getId());
return (Long)query.uniqueResult();
}
});
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#mappingConfigurationExists(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public Long getNumberOfMappingConfigurations(final String clientName, final String mappingConfigurationType,
final String sourceContextName, final String targetContextName)
{
return (Long)this.getHibernateTemplate().execute(new HibernateCallback()
{
@SuppressWarnings("unchecked")
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.MAPPING_CONFIGURATION_EXISTS_QUERY);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, mappingConfigurationType);
query.setParameter(MappingConfigurationDaoConstants.SOURCE_CONTEXT, sourceContextName);
query.setParameter(MappingConfigurationDaoConstants.TARGET_CONTEXT, targetContextName);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
return (Long)query.uniqueResult();
}
});
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#deleteMappingConfiguration(org.ikasan.mapping.window.MappingConfiguration)
*/
@Override
public void deleteMappingConfiguration(MappingConfiguration mappingConfiguration)
{
List parameterNames = this.getParameterNameByMappingConfigurationId(mappingConfiguration.getId());
for(ParameterName query: parameterNames)
{
this.getHibernateTemplate().delete(query);
}
this.getHibernateTemplate().delete(mappingConfiguration);
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationTypeByName(java.lang.String)
*/
@Override
public ConfigurationType getConfigurationTypeByName(String name)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationType.class);
criteria.add(Restrictions.eq("name", name));
return (ConfigurationType) DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationContextByName(java.lang.String)
*/
@Override
public ConfigurationContext getConfigurationContextByName(String name)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ConfigurationContext.class);
criteria.add(Restrictions.eq("name", name));
return (ConfigurationContext) DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getConfigurationTypesByClientName(java.lang.String)
*/
@SuppressWarnings("unchecked")
@Override
public List getConfigurationTypesByClientName(final String clientName)
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.createQuery(MappingConfigurationDaoConstants.NARROW_CONFIGURATION_TYPE_BASE_QUERY
+ MappingConfigurationDaoConstants.CONFIGURATION_CLIENT_PREDICATE);
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
return (List)query.list();
}
});
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getSourceConfigurationContextByClientNameAndType(java.lang.String, java.lang.String)
*/
@SuppressWarnings("unchecked")
@Override
public List getSourceConfigurationContextByClientNameAndType(final String clientName, final String type)
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
public Object doInHibernate(Session session) throws HibernateException
{
StringBuffer queryString = new StringBuffer(MappingConfigurationDaoConstants.NARROW_SOURCE_CONFIGURATION_BASE_QUERY);
if(clientName != null && clientName.length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_CLIENT_PREDICATE);
}
if(type != null && type.length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_TYPE_PREDICATE);
}
Query query = session.createQuery(queryString.toString());
if(clientName != null && clientName.length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
}
if(type != null && type.length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, type);
}
return (List)query.list();
}
});
}
/* (non-Javadoc)
* @see org.ikasan.mapping.dao.MappingConfigurationDao#getTargetConfigurationContextByClientNameTypeAndSourceContext(java.lang.String, java.lang.String, java.lang.String)
*/
@SuppressWarnings("unchecked")
@Override
public List getTargetConfigurationContextByClientNameTypeAndSourceContext(final String clientName,
final String type, final String sourceContext)
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback()
{
public Object doInHibernate(Session session) throws HibernateException
{
StringBuffer queryString = new StringBuffer(MappingConfigurationDaoConstants.NARROW_TARGET_CONFIGURATION_BASE_QUERY);
if(clientName != null && clientName.length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_CLIENT_PREDICATE);
}
if(type != null && type.length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.CONFIGURATION_TYPE_PREDICATE);
}
if(sourceContext != null && sourceContext.length() > 0)
{
queryString.append(MappingConfigurationDaoConstants.SOURCE_SYSTEM_PREDICATE);
}
Query query = session.createQuery(queryString.toString());
if(clientName != null && clientName.length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_SERVICE_CLIENT_NAME, clientName);
}
if(type != null && type.length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.CONFIGURATION_TYPE, type);
}
if(sourceContext != null && sourceContext.length() > 0)
{
query.setParameter(MappingConfigurationDaoConstants.SOURCE_SYSTEM_VALUE, sourceContext);
}
return (List)query.list();
}
});
}
@Override
public List getManyToManyTargetConfigurationValues(Long groupId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(ManyToManyTargetConfigurationValue.class);
criteria.add(Restrictions.eq("groupId", groupId));
return (List)this.getHibernateTemplate().findByCriteria(criteria);
}
@Override
public void deleteManyToManyTargetConfigurationValue(ManyToManyTargetConfigurationValue targetConfigurationValue)
{
this.getHibernateTemplate().delete(targetConfigurationValue);
}
@Override
public Long getNumberOfSourceValuesForGroupId(Long groupId)
{
DetachedCriteria criteria = DetachedCriteria.forClass(SourceConfigurationValue.class);
criteria.add(Restrictions.eq("sourceConfigGroupId", groupId));
criteria.setProjection(Projections.rowCount());
criteria.setProjection(Projections.projectionList()
.add(Projections.count("sourceConfigGroupId")));
return (Long) DataAccessUtils.uniqueResult(this.getHibernateTemplate().findByCriteria(criteria));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy