package com.linkedin.thirdeye.datalayer.bao.jdbc;
import com.google.inject.Singleton;
import com.linkedin.thirdeye.datalayer.bao.EntityToEntityMappingManager;
import com.linkedin.thirdeye.datalayer.dto.EntityToEntityMappingDTO;
import com.linkedin.thirdeye.datalayer.pojo.EntityToEntityMappingBean;
import com.linkedin.thirdeye.datalayer.util.Predicate;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
@Singleton
public class EntityToEntityMappingManagerImpl extends AbstractManagerImpl<EntityToEntityMappingDTO> implements EntityToEntityMappingManager {
protected EntityToEntityMappingManagerImpl() {
super(EntityToEntityMappingDTO.class, EntityToEntityMappingBean.class);
}
@Override
public List<EntityToEntityMappingDTO> findByFromURN(String fromURN) {
Predicate predicate = Predicate.EQ("fromURN", fromURN);
return findByPredicate(predicate);
}
@Override
public List<EntityToEntityMappingDTO> findByToURN(String toURN) {
Predicate predicate = Predicate.EQ("toURN", toURN);
return findByPredicate(predicate);
}
@Override
public EntityToEntityMappingDTO findByFromAndToURN(String fromURN, String toURN) {
EntityToEntityMappingDTO dto = null;
Predicate predicate = Predicate.AND(Predicate.EQ("fromURN", fromURN), Predicate.EQ("toURN", toURN));
List<EntityToEntityMappingDTO> findByPredicate = findByPredicate(predicate);
if (CollectionUtils.isNotEmpty(findByPredicate)) {
dto = findByPredicate.get(0);
}
return dto;
}
@Override
public List<EntityToEntityMappingDTO> findByMappingType(String mappingType) {
Predicate predicate = Predicate.EQ("mappingType", mappingType.toString());
return findByPredicate(predicate);
}
@Override
public List<EntityToEntityMappingDTO> findByFromURNAndMappingType(String fromURN, String mappingType) {
Predicate predicate = Predicate.AND(Predicate.EQ("fromURN", fromURN), Predicate.EQ("mappingType", mappingType.toString()));
return findByPredicate(predicate);
}
@Override
public List<EntityToEntityMappingDTO> findByToURNAndMappingType(String toURN, String mappingType) {
Predicate predicate = Predicate.AND(Predicate.EQ("toURN", toURN), Predicate.EQ("mappingType", mappingType.toString()));
return findByPredicate(predicate);
}
}