import eu.etaxonomy.cdm.model.common.ISourceable;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;\r
-import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;\r
+import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;\r
import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;\r
import eu.etaxonomy.cdm.persistence.dao.common.IOriginalSourceDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
\r
@Override\r
- public CdmBase findWithUpdate(Class<? extends CdmBase> clazz, int id){\r
+ public <T extends CdmBase> T findWithUpdate(Class<T> clazz, int id){\r
return genericDao.find(clazz, id);\r
}\r
\r
@Override\r
- public CdmBase find(Class<? extends CdmBase> clazz, int id){\r
+ public <T extends CdmBase> T find(Class<T> clazz, int id){\r
return genericDao.find(clazz, id);\r
}\r
\r
@Override\r
- public CdmBase find(Class<? extends CdmBase> clazz, int id, List<String> propertyPaths){\r
+ public <T extends CdmBase> T find(Class<T> clazz, int id, List<String> propertyPaths){\r
return genericDao.find(clazz, id, propertyPaths);\r
}\r
\r
//\r
// referencedCdmBase = (CdmBase)HibernateProxyHelper.deproxy(referencedCdmBase);\r
// Class referencedClass = referencedCdmBase.getClass();\r
- // Set<CdmBase> result = new HashSet<CdmBase>();\r
+ // Set<CdmBase> result = new HashSet<>();\r
// logger.debug("Referenced Class: " + referencedClass.getName());\r
//\r
// for (Class<? extends CdmBase> cdmClass : allCdmClasses){\r
// }\r
//\r
// private Set<Field> getFields(Class clazz){\r
- // Set<Field> result = new HashSet<Field>();\r
+ // Set<Field> result = new HashSet<>();\r
// for (Field field: clazz.getDeclaredFields()){\r
// if (!Modifier.isStatic(field.getModifiers())){\r
// result.add(field);\r
// }\r
//\r
// private Set<CdmBase> getCdmBasesByFieldAndClass(Field field, Class itemClass, Class otherClazz, CdmBase item, boolean isCollection){\r
- // Set<CdmBase> result = new HashSet<CdmBase>();\r
+ // Set<CdmBase> result = new HashSet<>();\r
// if (isCollection){\r
// result.addAll(genericDao.getCdmBasesWithItemInCollection(itemClass, otherClazz, field.getName(), item));\r
// }else{\r
IMergeStrategy mergeStrategy;\r
T mergeFirst = (T) genericDao.find(clazz, mergeFirstUuid);\r
T mergeSecond = (T) genericDao.find(clazz, mergeSecondUuid);\r
+ if (mergeFirst == null){\r
+ throw new MergeException("The merge target is not available anymore.");\r
+ }\r
+ if (mergeSecond == null){\r
+ throw new MergeException("The merge candidate is not available anymore.");\r
+ }\r
mergeStrategy = DefaultMergeStrategy.NewInstance(clazz);\r
merge(mergeFirst, mergeSecond, mergeStrategy);\r
}\r
}\r
\r
@Override\r
- public Map<MetaDataPropertyName, CdmMetaData> getCdmMetaData() {\r
- Map<MetaDataPropertyName, CdmMetaData> result = new HashMap<MetaDataPropertyName, CdmMetaData>();\r
+ public Map<CdmMetaDataPropertyName, CdmMetaData> getCdmMetaData() {\r
+ Map<CdmMetaDataPropertyName, CdmMetaData> result = new HashMap<>();\r
List<CdmMetaData> metaDataList = genericDao.getMetaData();\r
for (CdmMetaData metaData : metaDataList){\r
- MetaDataPropertyName propertyName = metaData.getPropertyName();\r
+ CdmMetaDataPropertyName propertyName = metaData.getPropertyName();\r
result.put(propertyName, metaData);\r
}\r
return result;\r
return genericDao.save(newInstance);\r
}\r
\r
+ @Override\r
+ @Transactional(readOnly = false)\r
+ public UUID delete(CdmBase instance) {\r
+ return genericDao.delete(instance);\r
+ }\r
+\r
@Override\r
@Transactional(readOnly = false)\r
public UUID saveOrUpdate(CdmBase newInstance) {\r