specimen import/search changes
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / specimen / abcd206 / in / SpecimenImportReport.java
old mode 100755 (executable)
new mode 100644 (file)
index cf6e19c..ee830b4
-// $Id$
-/**
-* Copyright (C) 2015 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.cdm.io.specimen.abcd206.in;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-
-/**
- * Gathers information about the ABCD import and presents them in a suitable way.
- * @author pplitzner
- * @date Jan 23, 2015
- *
- */
-public class SpecimenImportReport {
-
-    static private final Logger logger = Logger.getLogger(SpecimenImportReport.class);
-
-
-    private final List<Taxon> createdTaxa = new ArrayList<Taxon>();
-    private final Map<Taxon, List<UnitIdSpecimen>> taxonToAssociatedSpecimens =  new HashMap<Taxon, List<UnitIdSpecimen>>();
-    private final Map<UnitIdSpecimen, List<UnitIdSpecimen>> derivateMap = new HashMap<UnitIdSpecimen, List<UnitIdSpecimen>>();
-    private final List<UnitIdSpecimen> alreadyExistingSpecimens = new ArrayList<UnitIdSpecimen>();
-    private final List<TaxonNameBase<?, ?>> createdNames = new ArrayList<TaxonNameBase<?,?>>();
-    private final List<TaxonNode> createdTaxonNodes = new ArrayList<TaxonNode>();
-    private final List<String> infoMessages = new ArrayList<String>();
-
-    public void addTaxon(Taxon taxon){
-        createdTaxa.add(taxon);
-    }
-
-    public void addName(TaxonNameBase<?, ?> taxonName){
-        createdNames.add(taxonName);
-    }
-
-    public void addTaxonNode(TaxonNode taxonNode){
-        createdTaxonNodes.add(taxonNode);
-    }
-
-    public void addDerivate(DerivedUnit parent, SpecimenImportConfiguratorBase config){
-        addDerivate(parent, null, config);
-    }
-
-    public void addDerivate(DerivedUnit parent, DerivedUnit child, SpecimenImportConfiguratorBase config){
-        UnitIdSpecimen parentUnitIdSpecimen = new UnitIdSpecimen(SpecimenImportUtility.getUnitID(parent, config), parent);
-        List<UnitIdSpecimen> children = derivateMap.get(parentUnitIdSpecimen);
-        if(children==null){
-            children = new ArrayList<UnitIdSpecimen>();
-        }
-        if(child!=null){
-            children.add(new UnitIdSpecimen(SpecimenImportUtility.getUnitID(child, config), child));
-        }
-        derivateMap.put(parentUnitIdSpecimen, children);
-    }
-
-    public void addIndividualAssociation(Taxon taxon, String derivedUnitId, DerivedUnit derivedUnitBase) {
-        UnitIdSpecimen derivedUnitIdSpecimen = new UnitIdSpecimen(derivedUnitId, derivedUnitBase);
-        List<UnitIdSpecimen> associatedSpecimens = taxonToAssociatedSpecimens.get(taxon);
-        if(associatedSpecimens==null){
-            associatedSpecimens = new ArrayList<UnitIdSpecimen>();
-        }
-        associatedSpecimens.add(derivedUnitIdSpecimen);
-        taxonToAssociatedSpecimens.put(taxon, associatedSpecimens);
-    }
-
-    public void addAlreadyExistingSpecimen(String unitId, DerivedUnit derivedUnit){
-        alreadyExistingSpecimens.add(new UnitIdSpecimen(unitId, derivedUnit));
-    }
-
-    public void addException(String message, Exception e) {
-        StringWriter errors = new StringWriter();
-        e.printStackTrace(new PrintWriter(errors));
-        infoMessages.add(message+"\n"+e.getMessage()+"\n"+errors.toString());
-    }
-
-    public void addInfoMessage(String message) {
-        infoMessages.add(message);
-    }
-
-    public void printReport(URI reportUri) {
-        PrintStream out;
-        if(reportUri != null){
-            try {
-                out = new PrintStream(new File(reportUri));
-            } catch (FileNotFoundException e) {
-                logger.warn("Report file could not be found.");
-                out = System.out;
-            }
-        }
-        else{
-            out = System.out;
-        }
-        printReport(out);
-    }
-
-
-    public void printReport(PrintStream out) {
-
-        out.println("++++++++Import Report+++++++++");
-      //all specimens
-        Set<UnitIdSpecimen> allSpecimens = new HashSet<UnitIdSpecimen>();
-        for (Entry<UnitIdSpecimen, List<UnitIdSpecimen>> entry : derivateMap.entrySet()) {
-            UnitIdSpecimen parentSpecimen = entry.getKey();
-            allSpecimens.add(parentSpecimen);
-            for (UnitIdSpecimen childSpecimen : entry.getValue()) {
-                allSpecimens.add(childSpecimen);
-            }
-        }
-        out.println("Specimens created: "+allSpecimens.size());
-        Map<SpecimenOrObservationType, Integer> specimenTypeToCount = new HashMap<SpecimenOrObservationType, Integer>();
-        for (UnitIdSpecimen unitIdSpecimen : allSpecimens) {
-            incrementSpecimenTypeCount(specimenTypeToCount, unitIdSpecimen);
-        }
-        for(Entry<SpecimenOrObservationType, Integer> entry:specimenTypeToCount.entrySet()){
-            SpecimenOrObservationType type = entry.getKey();
-            out.println(type+": "+entry.getValue());
-        }
-        //not imported
-        out.println("Skipped/not imported: "+alreadyExistingSpecimens.size());
-        out.println("\n");
-
-        out.println("Imported unit ids");
-        for (UnitIdSpecimen unitIdSpecimen : allSpecimens) {
-                       out.print(unitIdSpecimen.unitId+", ");
-               }
-        out.println("\n");
-
-        out.println("Ignored unit ids");
-        for (UnitIdSpecimen unitIdSpecimen : alreadyExistingSpecimens) {
-               out.print(unitIdSpecimen.unitId+", ");
-        }
-        out.println("\n");
-
-        //taxon name
-        out.println("---Created Taxon Names ("+createdNames.size()+")---");
-        for (TaxonNameBase<?, ?> taxonName : createdNames) {
-            out.println(taxonName.getTitleCache());
-        }
-        out.println("\n");
-
-        //taxa
-        out.println("---Created Taxa ("+createdTaxa.size()+")---");
-        for (Taxon taxon : createdTaxa) {
-            out.println(taxon.getTitleCache());
-        }
-        out.println("\n");
-
-        //taxon nodes
-        out.println("---Created Taxon Nodes ("+createdTaxonNodes.size()+")---");
-        for (TaxonNode taxonNode : createdTaxonNodes) {
-            String nodeString = taxonNode.toString();
-            if(taxonNode.getTaxon()!=null){
-                nodeString += " ("+taxonNode.getTaxon().getTitleCache()+")";
-            }
-            if(taxonNode.getParent()!=null){
-                nodeString += " with parent "+taxonNode.getParent();
-                if(taxonNode.getParent().getTaxon()!=null){
-                    nodeString += " ("+taxonNode.getParent().getTaxon().getTitleCache()+")";
-                }
-            }
-            out.println(nodeString);
-        }
-        out.println("\n");
-
-        //not imported
-        out.println("---Already existing specimen/not imported ("+alreadyExistingSpecimens.size()+")---");
-        for(UnitIdSpecimen specimen:alreadyExistingSpecimens){
-            out.println(formatSpecimen(specimen));
-        }
-        out.println("\n");
-
-        //taxa with associated specimens
-        out.println("---Taxa with associated specimens ("+taxonToAssociatedSpecimens.size()+")---");
-        for(Entry<Taxon, List<UnitIdSpecimen>> entry:taxonToAssociatedSpecimens.entrySet()){
-            Taxon taxon = entry.getKey();
-            List<UnitIdSpecimen> specimens = entry.getValue();
-            out.println(taxon.getTitleCache() + " ("+specimens.size()+")");
-            for (UnitIdSpecimen derivedUnit : specimens) {
-                out.println("\t- "+formatSpecimen(derivedUnit));
-                //check for derivatives
-                List<UnitIdSpecimen> list = derivateMap.get(derivedUnit);
-                for (UnitIdSpecimen derivate : list) {
-                    out.println("\t\t- "+formatSpecimen(derivate));
-                }
-            }
-        }
-        out.println("\n");
-        out.println("\n");
-        //info messages
-        out.println("---Info messages---");
-        for(String message:infoMessages){
-            out.println(message);
-            out.println("---");
-        }
-        if(out!=System.out){
-            out.close();
-        }
-    }
-
-    private void incrementSpecimenTypeCount(Map<SpecimenOrObservationType, Integer> specimenTypeToCount,
-            UnitIdSpecimen specimen) {
-        SpecimenOrObservationType specimenType = specimen.getSpecimen().getRecordBasis();
-        Integer count = specimenTypeToCount.get(specimenType);
-        if(count==null){
-            count = 1;
-        }
-        else{
-            count++;
-        }
-        specimenTypeToCount.put(specimenType, count);
-    }
-
-    private String formatSpecimen(UnitIdSpecimen specimen){
-        return "("+specimen.getUnitId()+") ["+specimen.getSpecimen().getRecordBasis()+"] "+specimen.getSpecimen().getTitleCache();
-    }
-
-    private class UnitIdSpecimen{
-        private final String unitId;
-        private final SpecimenOrObservationBase<?> specimen;
-
-
-        public UnitIdSpecimen(String unitId, SpecimenOrObservationBase<?> specimen) {
-            super();
-            this.unitId = unitId;
-            this.specimen = specimen;
-        }
-        public String getUnitId() {
-            return unitId;
-        }
-        public SpecimenOrObservationBase<?> getSpecimen() {
-            return specimen;
-        }
-        @Override
-        public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + ((specimen == null) ? 0 : specimen.hashCode());
-            result = prime * result + ((unitId == null) ? 0 : unitId.hashCode());
-            return result;
-        }
-        @Override
-        public boolean equals(Object obj) {
-            if (this == obj) {
-                return true;
-            }
-            if (obj == null) {
-                return false;
-            }
-            if (getClass() != obj.getClass()) {
-                return false;
-            }
-            UnitIdSpecimen other = (UnitIdSpecimen) obj;
-            if (specimen == null) {
-                if (other.specimen != null) {
-                    return false;
-                }
-            } else if (!specimen.equals(other.specimen)) {
-                return false;
-            }
-            if (unitId == null) {
-                if (other.unitId != null) {
-                    return false;
-                }
-            } else if (!unitId.equals(other.unitId)) {
-                return false;
-            }
-            return true;
-        }
-
-    }
-
-}
+// $Id$\r
+/**\r
+* Copyright (C) 2015 EDIT\r
+* European Distributed Institute of Taxonomy\r
+* http://www.e-taxonomy.eu\r
+*\r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.io.specimen.abcd206.in;\r
+\r
+import java.io.File;\r
+import java.io.FileNotFoundException;\r
+import java.io.PrintStream;\r
+import java.io.PrintWriter;\r
+import java.io.StringWriter;\r
+import java.net.URI;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.Map.Entry;\r
+import java.util.Set;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+\r
+/**\r
+ * Gathers information about the ABCD import and presents them in a suitable way.\r
+ * @author pplitzner\r
+ * @date Jan 23, 2015\r
+ *\r
+ */\r
+public class SpecimenImportReport {\r
+\r
+    static private final Logger logger = Logger.getLogger(SpecimenImportReport.class);\r
+\r
+\r
+    private final List<Taxon> createdTaxa = new ArrayList<Taxon>();\r
+    private final Map<Taxon, List<UnitIdSpecimen>> taxonToAssociatedSpecimens =  new HashMap<Taxon, List<UnitIdSpecimen>>();\r
+    private final Map<UnitIdSpecimen, List<UnitIdSpecimen>> derivateMap = new HashMap<UnitIdSpecimen, List<UnitIdSpecimen>>();\r
+    private final List<UnitIdSpecimen> alreadyExistingSpecimens = new ArrayList<UnitIdSpecimen>();\r
+    private final List<TaxonNameBase<?, ?>> createdNames = new ArrayList<TaxonNameBase<?,?>>();\r
+    private final List<TaxonNode> createdTaxonNodes = new ArrayList<TaxonNode>();\r
+    private final List<String> infoMessages = new ArrayList<String>();\r
+\r
+    public void addTaxon(Taxon taxon){\r
+        createdTaxa.add(taxon);\r
+    }\r
+\r
+    public void addName(TaxonNameBase<?, ?> taxonName){\r
+        createdNames.add(taxonName);\r
+    }\r
+\r
+    public void addTaxonNode(TaxonNode taxonNode){\r
+        createdTaxonNodes.add(taxonNode);\r
+    }\r
+\r
+    public void addDerivate(DerivedUnit parent, SpecimenImportConfiguratorBase config){\r
+        addDerivate(parent, null, config);\r
+    }\r
+\r
+    public void addDerivate(DerivedUnit parent, DerivedUnit child, SpecimenImportConfiguratorBase config){\r
+        UnitIdSpecimen parentUnitIdSpecimen = new UnitIdSpecimen(SpecimenImportUtility.getUnitID(parent, config), parent);\r
+        List<UnitIdSpecimen> children = derivateMap.get(parentUnitIdSpecimen);\r
+        if(children==null){\r
+            children = new ArrayList<UnitIdSpecimen>();\r
+        }\r
+        if(child!=null){\r
+            children.add(new UnitIdSpecimen(SpecimenImportUtility.getUnitID(child, config), child));\r
+        }\r
+        derivateMap.put(parentUnitIdSpecimen, children);\r
+    }\r
+\r
+    public void addIndividualAssociation(Taxon taxon, String derivedUnitId, DerivedUnit derivedUnitBase) {\r
+        UnitIdSpecimen derivedUnitIdSpecimen = new UnitIdSpecimen(derivedUnitId, derivedUnitBase);\r
+        List<UnitIdSpecimen> associatedSpecimens = taxonToAssociatedSpecimens.get(taxon);\r
+        if(associatedSpecimens==null){\r
+            associatedSpecimens = new ArrayList<UnitIdSpecimen>();\r
+        }\r
+        associatedSpecimens.add(derivedUnitIdSpecimen);\r
+        taxonToAssociatedSpecimens.put(taxon, associatedSpecimens);\r
+    }\r
+\r
+    public void addAlreadyExistingSpecimen(String unitId, DerivedUnit derivedUnit){\r
+        alreadyExistingSpecimens.add(new UnitIdSpecimen(unitId, derivedUnit));\r
+    }\r
+\r
+    public void addException(String message, Exception e) {\r
+        StringWriter errors = new StringWriter();\r
+        e.printStackTrace(new PrintWriter(errors));\r
+        infoMessages.add(message+"\n"+e.getMessage()+"\n"+errors.toString());\r
+    }\r
+\r
+    public void addInfoMessage(String message) {\r
+        infoMessages.add(message);\r
+    }\r
+\r
+    public void printReport(URI reportUri) {\r
+        PrintStream out;\r
+        if(reportUri != null){\r
+            try {\r
+                out = new PrintStream(new File(reportUri));\r
+            } catch (FileNotFoundException e) {\r
+                logger.warn("Report file could not be found.");\r
+                out = System.out;\r
+            }\r
+        }\r
+        else{\r
+            out = System.out;\r
+        }\r
+        printReport(out);\r
+    }\r
+\r
+\r
+    public void printReport(PrintStream out) {\r
+\r
+        out.println("++++++++Import Report+++++++++");\r
+      //all specimens\r
+        Set<UnitIdSpecimen> allSpecimens = new HashSet<UnitIdSpecimen>();\r
+        for (Entry<UnitIdSpecimen, List<UnitIdSpecimen>> entry : derivateMap.entrySet()) {\r
+            UnitIdSpecimen parentSpecimen = entry.getKey();\r
+            allSpecimens.add(parentSpecimen);\r
+            for (UnitIdSpecimen childSpecimen : entry.getValue()) {\r
+                allSpecimens.add(childSpecimen);\r
+            }\r
+        }\r
+        out.println("Specimens created: "+allSpecimens.size());\r
+        Map<SpecimenOrObservationType, Integer> specimenTypeToCount = new HashMap<SpecimenOrObservationType, Integer>();\r
+        for (UnitIdSpecimen unitIdSpecimen : allSpecimens) {\r
+            incrementSpecimenTypeCount(specimenTypeToCount, unitIdSpecimen);\r
+        }\r
+        for(Entry<SpecimenOrObservationType, Integer> entry:specimenTypeToCount.entrySet()){\r
+            SpecimenOrObservationType type = entry.getKey();\r
+            out.println(type+": "+entry.getValue());\r
+        }\r
+        //not imported\r
+        out.println("Skipped/not imported: "+alreadyExistingSpecimens.size());\r
+        out.println("\n");\r
+\r
+        out.println("Imported unit ids");\r
+        for (UnitIdSpecimen unitIdSpecimen : allSpecimens) {\r
+                       out.print(unitIdSpecimen.unitId+", ");\r
+               }\r
+        out.println("\n");\r
+\r
+        out.println("Ignored unit ids");\r
+        for (UnitIdSpecimen unitIdSpecimen : alreadyExistingSpecimens) {\r
+               out.print(unitIdSpecimen.unitId+", ");\r
+        }\r
+        out.println("\n");\r
+\r
+        //taxon name\r
+        out.println("---Created Taxon Names ("+createdNames.size()+")---");\r
+        for (TaxonNameBase<?, ?> taxonName : createdNames) {\r
+            out.println(taxonName.getTitleCache());\r
+        }\r
+        out.println("\n");\r
+\r
+        //taxa\r
+        out.println("---Created Taxa ("+createdTaxa.size()+")---");\r
+        for (Taxon taxon : createdTaxa) {\r
+            out.println(taxon.getTitleCache());\r
+        }\r
+        out.println("\n");\r
+\r
+        //taxon nodes\r
+        out.println("---Created Taxon Nodes ("+createdTaxonNodes.size()+")---");\r
+        for (TaxonNode taxonNode : createdTaxonNodes) {\r
+            String nodeString = taxonNode.toString();\r
+            if(taxonNode.getTaxon()!=null){\r
+                nodeString += " ("+taxonNode.getTaxon().getTitleCache()+")";\r
+            }\r
+            if(taxonNode.getParent()!=null){\r
+                nodeString += " with parent "+taxonNode.getParent();\r
+                if(taxonNode.getParent().getTaxon()!=null){\r
+                    nodeString += " ("+taxonNode.getParent().getTaxon().getTitleCache()+")";\r
+                }\r
+            }\r
+            out.println(nodeString);\r
+        }\r
+        out.println("\n");\r
+\r
+        //not imported\r
+        out.println("---Already existing specimen/not imported ("+alreadyExistingSpecimens.size()+")---");\r
+        for(UnitIdSpecimen specimen:alreadyExistingSpecimens){\r
+            out.println(formatSpecimen(specimen));\r
+        }\r
+        out.println("\n");\r
+\r
+        //taxa with associated specimens\r
+        out.println("---Taxa with associated specimens ("+taxonToAssociatedSpecimens.size()+")---");\r
+        for(Entry<Taxon, List<UnitIdSpecimen>> entry:taxonToAssociatedSpecimens.entrySet()){\r
+            Taxon taxon = entry.getKey();\r
+            List<UnitIdSpecimen> specimens = entry.getValue();\r
+            out.println(taxon.getTitleCache() + " ("+specimens.size()+")");\r
+            for (UnitIdSpecimen derivedUnit : specimens) {\r
+                out.println("\t- "+formatSpecimen(derivedUnit));\r
+                //check for derivatives\r
+                List<UnitIdSpecimen> list = derivateMap.get(derivedUnit);\r
+                for (UnitIdSpecimen derivate : list) {\r
+                    out.println("\t\t- "+formatSpecimen(derivate));\r
+                }\r
+            }\r
+        }\r
+        out.println("\n");\r
+        out.println("\n");\r
+        //info messages\r
+        out.println("---Info messages---");\r
+        for(String message:infoMessages){\r
+            out.println(message);\r
+            out.println("---");\r
+        }\r
+        if(out!=System.out){\r
+            out.close();\r
+        }\r
+    }\r
+\r
+    private void incrementSpecimenTypeCount(Map<SpecimenOrObservationType, Integer> specimenTypeToCount,\r
+            UnitIdSpecimen specimen) {\r
+        SpecimenOrObservationType specimenType = specimen.getSpecimen().getRecordBasis();\r
+        Integer count = specimenTypeToCount.get(specimenType);\r
+        if(count==null){\r
+            count = 1;\r
+        }\r
+        else{\r
+            count++;\r
+        }\r
+        specimenTypeToCount.put(specimenType, count);\r
+    }\r
+\r
+    private String formatSpecimen(UnitIdSpecimen specimen){\r
+        return "("+specimen.getUnitId()+") ["+specimen.getSpecimen().getRecordBasis()+"] "+specimen.getSpecimen().getTitleCache();\r
+    }\r
+\r
+    private class UnitIdSpecimen{\r
+        private final String unitId;\r
+        private final SpecimenOrObservationBase<?> specimen;\r
+\r
+\r
+        public UnitIdSpecimen(String unitId, SpecimenOrObservationBase<?> specimen) {\r
+            super();\r
+            this.unitId = unitId;\r
+            this.specimen = specimen;\r
+        }\r
+        public String getUnitId() {\r
+            return unitId;\r
+        }\r
+        public SpecimenOrObservationBase<?> getSpecimen() {\r
+            return specimen;\r
+        }\r
+        @Override\r
+        public int hashCode() {\r
+            final int prime = 31;\r
+            int result = 1;\r
+            result = prime * result + ((specimen == null) ? 0 : specimen.hashCode());\r
+            result = prime * result + ((unitId == null) ? 0 : unitId.hashCode());\r
+            return result;\r
+        }\r
+        @Override\r
+        public boolean equals(Object obj) {\r
+            if (this == obj) {\r
+                return true;\r
+            }\r
+            if (obj == null) {\r
+                return false;\r
+            }\r
+            if (getClass() != obj.getClass()) {\r
+                return false;\r
+            }\r
+            UnitIdSpecimen other = (UnitIdSpecimen) obj;\r
+            if (specimen == null) {\r
+                if (other.specimen != null) {\r
+                    return false;\r
+                }\r
+            } else if (!specimen.equals(other.specimen)) {\r
+                return false;\r
+            }\r
+            if (unitId == null) {\r
+                if (other.unitId != null) {\r
+                    return false;\r
+                }\r
+            } else if (!unitId.equals(other.unitId)) {\r
+                return false;\r
+            }\r
+            return true;\r
+        }\r
+\r
+    }\r
+\r
+}\r