clean up Endnote import
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / reference / endnote / in / EndNoteImportBase.java
index 6313bdeb3e3ccc482901d25627d0c90e246ff9ab..b8dff8d204a41ba4c0875a529a01ab4954bb0034 100644 (file)
@@ -9,38 +9,11 @@
 \r
 package eu.etaxonomy.cdm.io.reference.endnote.in;\r
 \r
-import static eu.etaxonomy.cdm.io.common.ImportHelper.OBLIGATORY;\r
-import static eu.etaxonomy.cdm.io.common.ImportHelper.OVERWRITE;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import java.util.HashSet;\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.jdom.Content;\r
 import org.jdom.Element;\r
 import org.jdom.Namespace;\r
-import org.jdom.Text;\r
 \r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
-import eu.etaxonomy.cdm.common.ResultWrapper;\r
-import eu.etaxonomy.cdm.common.XmlHelp;\r
 import eu.etaxonomy.cdm.io.common.CdmImportBase;\r
-import eu.etaxonomy.cdm.io.common.CdmIoBase;\r
-import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
-import eu.etaxonomy.cdm.io.common.ImportHelper;\r
-import eu.etaxonomy.cdm.io.common.MapWrapper;\r
-import eu.etaxonomy.cdm.io.tcsrdf.CdmSingleAttributeXmlMapperBase;\r
-import eu.etaxonomy.cdm.model.agent.Team;\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.reference.IGeneric;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceType;\r
 \r
 /**\r
  * @author a.mueller\r
@@ -50,98 +23,8 @@ import eu.etaxonomy.cdm.model.reference.ReferenceType;
 public abstract class EndNoteImportBase  extends CdmImportBase<EndnoteImportConfigurator, EndnoteImportState> {\r
        private static final Logger logger = Logger.getLogger(EndNoteImportBase.class);\r
 \r
-       protected static Namespace nsTcom = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/Common#");\r
-       protected static Namespace nsTn = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/TaxonName#");\r
-       protected static Namespace nsTgeo = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/GeographicRegion#");\r
-       protected static Namespace nsTc = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/TaxonConcept#");\r
-       protected static Namespace nsTpub = Namespace.getNamespace("http://rs.tdwg.org/ontology/voc/PublicationCitation#");\r
-       protected static Namespace nsTpalm = Namespace.getNamespace("http://wp5.e-taxonomy.eu/import/palmae/common");\r
-       \r
-       protected abstract void doInvoke(EndnoteImportState state);\r
+//     protected abstract void doInvoke(EndnoteImportState state);\r
 \r
-       \r
-//     /* (non-Javadoc)\r
-//      * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)\r
-//      */\r
-//     @Override\r
-//     protected boolean doInvoke(IImportConfigurator config, \r
-//                     Map<String, MapWrapper<? extends CdmBase>> stores){ \r
-//             TcsXmlImportState state = ((TcsXmlImportConfigurator)config).getState();\r
-//             state.setConfig((TcsXmlImportConfigurator)config);\r
-//             return doInvoke(state);\r
-//     }\r
-       \r
-       \r
-       protected boolean makeStandardMapper(Element parentElement, CdmBase ref, Set<String> omitAttributes, CdmSingleAttributeXmlMapperBase[] classMappers){\r
-               if (omitAttributes == null){\r
-                       omitAttributes = new HashSet<String>();\r
-               }\r
-               boolean result = true;  \r
-               for (CdmSingleAttributeXmlMapperBase mapper : classMappers){\r
-                       Object value = getValue(mapper, parentElement);\r
-                       //write to destination\r
-                       if (value != null){\r
-                               String destinationAttribute = mapper.getDestinationAttribute();\r
-                               if (! omitAttributes.contains(destinationAttribute)){\r
-                                       result &= ImportHelper.addValue(value, ref, destinationAttribute, mapper.getTypeClass(), OVERWRITE, OBLIGATORY);\r
-                               }\r
-                       }\r
-               }\r
-               return true;\r
-       }\r
-       \r
-       private Object getValue(CdmSingleAttributeXmlMapperBase mapper, Element parentElement){\r
-               String sourceAttribute = mapper.getSourceAttribute();\r
-               Namespace sourceNamespace = mapper.getSourceNamespace(parentElement);\r
-               Element child = parentElement.getChild(sourceAttribute, sourceNamespace);\r
-               if (child == null){\r
-                       return null;\r
-               }\r
-               if (child.getContentSize() > 1){\r
-                       logger.warn("Element is not String");\r
-               }\r
-               Object value = child.getTextTrim();\r
-               return value;\r
-       }\r
-       \r
-       protected boolean checkAdditionalContents(Element parentElement, CdmSingleAttributeXmlMapperBase[] classMappers, CdmSingleAttributeXmlMapperBase[] operationalMappers, CdmSingleAttributeXmlMapperBase[] unclearMappers){\r
-               List<Content> additionalContentList = new ArrayList<Content>();\r
-               List<Content> contentList = parentElement.getContent();\r
-               List<CdmSingleAttributeXmlMapperBase> mapperList = new ArrayList<CdmSingleAttributeXmlMapperBase>();\r
-               \r
-               mapperList.addAll(Arrays.asList(classMappers));\r
-               mapperList.addAll(Arrays.asList(operationalMappers));\r
-               mapperList.addAll(Arrays.asList(unclearMappers));\r
-               \r
-               for(Content content: contentList){\r
-                       boolean contentExists = false;\r
-                       if (content instanceof Element){\r
-                               for (CdmSingleAttributeXmlMapperBase mapper : mapperList){\r
-                                       if (mapper.mapsSource(content, parentElement)){\r
-                                               contentExists = true;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               \r
-                       }else if (content instanceof Text){\r
-                               //empty Text\r
-                               if (((Text)content).getTextNormalize().equals("")){\r
-                                       contentExists = true;\r
-                               }else{\r
-                                       //\r
-                               }\r
-                       }\r
-                       \r
-                       if (contentExists == false){\r
-                               additionalContentList.add(content);\r
-                       }\r
-               }\r
-               for (Content additionalContent : additionalContentList){\r
-                       logger.warn("Additional content: " +  additionalContent);\r
-               }\r
-               return (additionalContentList.size() == 0);\r
-       }\r
-       \r
        protected Element getXmlElement(EndnoteImportConfigurator tcsConfig){\r
                Element root = tcsConfig.getSourceRoot();\r
                \r
@@ -161,126 +44,4 @@ public abstract class EndNoteImportBase  extends CdmImportBase<EndnoteImportConf
                \r
                return root;\r
        }\r
-       \r
-//     static public boolean checkFirstTwoFunctionElements(List<Object> objList){\r
-//             if (! (objList.get(0) instanceof TcsXmlImportConfigurator)){\r
-//                     logger.error("first method object has wrong type. Must be " + TcsXmlImportConfigurator.class.getSimpleName() + " but is " + (objList.get(0) == null ? "null": objList.get(0).getClass().getSimpleName()));\r
-//                     return false;\r
-//             }\r
-//             if (! (objList.get(1) == null) && ! (objList.get(1) instanceof Element)){\r
-//                     logger.error("first method object has wrong type. Must be " + Element.class.getSimpleName() + " but is " + (objList.get(1) == null ? "null": objList.get(1).getClass().getSimpleName()));\r
-//                     return false;\r
-//             }\r
-//             return true;\r
-//     }\r
-       \r
-       \r
-       protected boolean testAdditionalElements(Element parentElement, List<String> excludeList){\r
-               boolean result = true;\r
-               List<Element> list = parentElement.getChildren();\r
-               for (Element element : list){\r
-                       if (! excludeList.contains(element.getName())){\r
-                               logger.warn("Unknown element (" + element.getName() + ") in parent element (" + parentElement.getName() + ")");\r
-                               result = false;\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       \r
-       protected <T extends IdentifiableEntity> T makeReferenceType(Element element, ReferenceType refType, MapWrapper<? extends T> objectMap, ResultWrapper<Boolean> success){\r
-               T result = null;\r
-               \r
-               String linkType = element.getAttributeValue("linkType");\r
-               String ref = element.getAttributeValue("ref");\r
-               if(ref == null && linkType == null){\r
-                       result = (T) ReferenceFactory.newReference(refType);\r
-                               \r
-                       if (result != null){\r
-                               String title = element.getTextNormalize();\r
-                               result.setTitleCache(title, true);\r
-                       }\r
-               }else if (linkType == null || linkType.equals("local")){\r
-                       //TODO\r
-                       result = objectMap.get(ref);\r
-                       if (result == null){\r
-                               logger.warn("Object (ref = " + ref + ")could not be found in WrapperMap");\r
-                       }\r
-               }else if(linkType.equals("external")){\r
-                       logger.warn("External link types not yet implemented");\r
-               }else if(linkType.equals("other")){\r
-                       logger.warn("Other link types not yet implemented");\r
-               }else{\r
-                       logger.warn("Unknown link type or missing ref");\r
-               }\r
-               if (result == null){\r
-                       success.setValue(false);\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       \r
-       protected Reference makeAccordingTo(Element elAccordingTo, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){\r
-               Reference result = null;\r
-               if (elAccordingTo != null){\r
-                       String childName = "AccordingToDetailed";\r
-                       boolean obligatory = false;\r
-                       Element elAccordingToDetailed = XmlHelp.getSingleChildElement(success, elAccordingTo, childName, elAccordingTo.getNamespace(), obligatory);\r
-\r
-                       childName = "Simple";\r
-                       obligatory = true;\r
-                       Element elSimple = XmlHelp.getSingleChildElement(success, elAccordingTo, childName, elAccordingTo.getNamespace(), obligatory);\r
-                       \r
-                       if (elAccordingToDetailed != null){\r
-                               result = makeAccordingToDetailed(elAccordingToDetailed, referenceMap, success);\r
-                       }else{\r
-                               result = ReferenceFactory.newGeneric();\r
-                               String title = elSimple.getTextNormalize();\r
-                               result.setTitleCache(title, true);\r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-       \r
-       \r
-       private Reference makeAccordingToDetailed(Element elAccordingToDetailed, MapWrapper<Reference> referenceMap, ResultWrapper<Boolean> success){\r
-               Reference result = null;\r
-               Namespace tcsNamespace = elAccordingToDetailed.getNamespace();\r
-               if (elAccordingToDetailed != null){\r
-                       //AuthorTeam\r
-                       String childName = "AuthorTeam";\r
-                       boolean obligatory = false;\r
-                       Element elAuthorTeam = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
-                       makeAccordingToAuthorTeam(elAuthorTeam, success);\r
-                       \r
-                       //PublishedIn\r
-                       childName = "PublishedIn";\r
-                       obligatory = false;\r
-                       Element elPublishedIn = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
-                       result = makeReferenceType(elPublishedIn, ReferenceType.Generic, referenceMap, success);\r
-                       \r
-                       //MicroReference\r
-                       childName = "MicroReference";\r
-                       obligatory = false;\r
-                       Element elMicroReference = XmlHelp.getSingleChildElement(success, elAccordingToDetailed, childName, tcsNamespace, obligatory);\r
-                       String microReference = elMicroReference.getTextNormalize();\r
-                       if (CdmUtils.Nz(microReference).equals("")){\r
-                               //TODO\r
-                               logger.warn("MicroReference not yet implemented for AccordingToDetailed");      \r
-                       }\r
-               }\r
-               return result;\r
-       }\r
-\r
-       private Team makeAccordingToAuthorTeam(Element elAuthorTeam, ResultWrapper<Boolean> succes){\r
-               Team result = null;\r
-               if (elAuthorTeam != null){\r
-                       //TODO\r
-                       logger.warn("AuthorTeam not yet implemented for AccordingToDetailed");\r
-               }\r
-               return result;\r
-       }\r
-\r
-\r
-\r
 }\r