remove deprecated method
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / CommonServiceImpl.java
index eaad3a9e7f0f803ff91392689155f4976d9bfe53..c407b9fd3cfe4acaeb466caf0ad5ed61e2d41570 100644 (file)
 \r
 package eu.etaxonomy.cdm.api.service;\r
 \r
+import java.util.Collection;\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
 import java.util.List;\r
+import java.util.Map;\r
 import java.util.Set;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.hibernate.collection.spi.PersistentCollection;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.stereotype.Service;\r
+//import org.springframework.transaction.annotation.Propagation;\r
 import org.springframework.transaction.annotation.Transactional;\r
 \r
-import eu.etaxonomy.cdm.api.service.pager.Pager;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.ISourceable;\r
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.common.OriginalSource;\r
+import eu.etaxonomy.cdm.model.common.OriginalSourceBase;\r
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData;\r
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;\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
+import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;\r
+import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;\r
+import eu.etaxonomy.cdm.strategy.match.IMatchable;\r
+import eu.etaxonomy.cdm.strategy.match.MatchException;\r
 import eu.etaxonomy.cdm.strategy.merge.DefaultMergeStrategy;\r
 import eu.etaxonomy.cdm.strategy.merge.IMergable;\r
 import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;\r
@@ -34,7 +44,7 @@ import eu.etaxonomy.cdm.strategy.merge.MergeException;
 \r
 @Service\r
 @Transactional(readOnly = true)\r
-public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourceDao> implements ICommonService {\r
+public class CommonServiceImpl extends ServiceBase<OriginalSourceBase,IOriginalSourceDao> implements ICommonService {\r
        @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CommonServiceImpl.class);\r
        \r
@@ -50,15 +60,21 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
                this.dao = dao;\r
        }\r
        \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.api.service.ICommonService#getSourcedObjectById(java.lang.String, java.lang.String)\r
-        */\r
+       @Override\r
+       public CdmBase find(Class<? extends CdmBase> clazz, int id){\r
+               return genericDao.find(clazz, id);\r
+       }\r
+       \r
+\r
+       @Override\r
+       public Map<String, ? extends ISourceable> getSourcedObjectsByIdInSource(Class clazz, Set<String> idInSourceSet, String idNamespace) {\r
+               Map<String, ? extends ISourceable> list = originalSourceDao.findOriginalSourcesByIdInSource(clazz, idInSourceSet, idNamespace);\r
+               return list;\r
+       }\r
+       \r
+       @Override\r
        public ISourceable getSourcedObjectByIdInSource(Class clazz, String idInSource, String idNamespace) {\r
                ISourceable result = null;\r
-//             List<OriginalSource> originalSource = originalSourceDao.findOriginalSourceByIdInSource(idInSource, idNamespace);\r
-//             if (! originalSource.isEmpty()){\r
-//                     result = originalSource.get(0).getSourcedObj();\r
-//             }\r
                List<IdentifiableEntity> list = originalSourceDao.findOriginalSourceByIdInSource(clazz, idInSource, idNamespace);\r
                if (! list.isEmpty()){\r
                        result = list.get(0);\r
@@ -66,9 +82,7 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
        }\r
        \r
        \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.api.service.ICommonService#getReferencingObjects(eu.etaxonomy.cdm.model.common.CdmBase)\r
-        */\r
+       @Override\r
        public Set<CdmBase> getReferencingObjects(CdmBase referencedCdmBase){\r
                return this.genericDao.getReferencingObjects(referencedCdmBase);\r
        }       \r
@@ -78,7 +92,7 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
 //                     referencedCdmBase = (CdmBase)HibernateProxyHelper.deproxy(referencedCdmBase);\r
 //                     Class referencedClass = referencedCdmBase.getClass();\r
 //                     Set<CdmBase> result = new HashSet<CdmBase>();\r
-//                     System.out.println("Referenced Class: " + referencedClass.getName());\r
+//                     logger.debug("Referenced Class: " + referencedClass.getName());\r
 //                     \r
 //                     for (Class<? extends CdmBase> cdmClass : allCdmClasses){\r
 //                             Set<Field> fields = getFields(cdmClass);\r
@@ -122,7 +136,7 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
 //                     ParameterizedTypeImpl paraType = (ParameterizedTypeImpl)genericType;\r
 //                     paraType.getRawType();\r
 //                     Type[] arguments = paraType.getActualTypeArguments();\r
-//                     //System.out.println(arguments.length);\r
+//                     //logger.debug(arguments.length);\r
 //                     if (arguments.length == 1){\r
 //                             Class collectionClass;\r
 //                             try {\r
@@ -160,7 +174,7 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
 //                     String className = StringUtils.rightPad(cdmClass.getSimpleName(), 30);\r
 //                     String returnTypeName = StringUtils.rightPad(type.getSimpleName(), 30);\r
 //                     \r
-//                     System.out.println(methodName +   "\t\t" + className + "\t\t" + returnTypeName);\r
+//                     logger.debug(methodName +   "\t\t" + className + "\t\t" + returnTypeName);\r
 ////                   result_old.add(method);\r
 //                     result.addAll(getCdmBasesByFieldAndClass(field, itemClass, cdmClass, value, isCollection));\r
 //             }\r
@@ -191,13 +205,12 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
 //             return result;\r
 //     }\r
        \r
+       @Override\r
        public List getHqlResult(String hqlQuery){\r
                return genericDao.getHqlResult(hqlQuery);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.api.service.ICommonService#merge(eu.etaxonomy.cdm.strategy.merge.IMergable, eu.etaxonomy.cdm.strategy.merge.IMergable, eu.etaxonomy.cdm.strategy.merge.IMergeStragegy)\r
-        */\r
+       @Override\r
        public <T extends IMergable> void merge(T mergeFirst, T mergeSecond, IMergeStrategy mergeStrategy) throws MergeException {\r
                if (mergeStrategy == null){\r
                        mergeStrategy = DefaultMergeStrategy.NewInstance(((CdmBase)mergeFirst).getClass());\r
@@ -205,15 +218,84 @@ public class CommonServiceImpl extends ServiceBase<OriginalSource,IOriginalSourc
                genericDao.merge((CdmBase)mergeFirst, (CdmBase)mergeSecond, mergeStrategy);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
-        */\r
-       public <TYPE extends OriginalSource> Pager<TYPE> list(Class<TYPE> type,\r
-                       Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,\r
-                       List<String> propertyPaths) {\r
-               // TODO Auto-generated method stub\r
-               return null;\r
-       }\r
 \r
+       @Override\r
+       public <T extends IMatchable> List<T> findMatching(T objectToMatch, IMatchStrategy matchStrategy) throws MatchException {\r
+               if (matchStrategy == null){\r
+                       matchStrategy = DefaultMatchStrategy.NewInstance(((objectToMatch).getClass()));\r
+               }\r
+               return genericDao.findMatching(objectToMatch, matchStrategy);\r
+       }\r
+       \r
+       \r
        \r
+//     /* (non-Javadoc)\r
+//      * @see eu.etaxonomy.cdm.api.service.IService#list(java.lang.Class, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
+//      */\r
+//     @Override\r
+//     public <TYPE extends OriginalSourceBase> Pager<TYPE> list(Class<TYPE> type,\r
+//                     Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,\r
+//                     List<String> propertyPaths) {\r
+//             logger.warn("Not yet implemented");\r
+//             return null;\r
+//     }\r
+\r
+       @Transactional(readOnly = false)\r
+       @Override\r
+       public void saveAllMetaData(Collection<CdmMetaData> metaData) {\r
+               Iterator<CdmMetaData> iterator = metaData.iterator();\r
+               while(iterator.hasNext()){\r
+                       CdmMetaData cdmMetaData = iterator.next();\r
+                       genericDao.saveMetaData(cdmMetaData);\r
+               }\r
+       }\r
+\r
+       @Override\r
+       public Map<MetaDataPropertyName, CdmMetaData> getCdmMetaData() {\r
+               Map<MetaDataPropertyName, CdmMetaData> result = new HashMap<MetaDataPropertyName, CdmMetaData>();\r
+               List<CdmMetaData> metaDataList = genericDao.getMetaData();\r
+               for (CdmMetaData metaData : metaDataList){\r
+                       MetaDataPropertyName propertyName = metaData.getPropertyName();\r
+                       result.put(propertyName, metaData);\r
+               }\r
+               return result;\r
+       }\r
+\r
+    @Override\r
+    public PersistentCollection initializeCollection(PersistentCollection col) {\r
+            return genericDao.initializeCollection(col);\r
+\r
+    }\r
+    \r
+    @Override\r
+    public boolean isEmpty(PersistentCollection col) {\r
+            return genericDao.isEmpty(col);\r
+\r
+    }\r
+    \r
+    @Override\r
+       public int size(PersistentCollection col) {\r
+       return genericDao.size(col);\r
+    }\r
+    \r
+    @Override\r
+    public Object get(PersistentCollection col, int index) {\r
+       return genericDao.get(col, index);\r
+    }\r
+    \r
+    @Override\r
+    public boolean contains(PersistentCollection col, Object element) {\r
+       return genericDao.contains(col, element);\r
+    }\r
+    \r
+    @Override    \r
+    public boolean containsKey(PersistentCollection col, Object key) {\r
+       return genericDao.containsKey(col, key);\r
+    }\r
+    \r
+    @Override\r
+    public boolean containsValue(PersistentCollection col, Object element) {\r
+       return genericDao.containsValue(col, element);\r
+    }\r
+\r
 }\r