bugfixing name parser (+tests)
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / strategy / parser / INonViralNameParser.java
index 174ece03da79b43b25b8bdf237660047e2b254c8..39f51fe4b1744fb07d18f7337717fe65b776cbfd 100644 (file)
@@ -81,7 +81,7 @@ public interface INonViralNameParser<T extends TaxonNameBase> extends IStrategy
         * @param fullReference the string containing the scientific name with authorship, year, reference etc.\r
         * @return\r
         */\r
-       public T parseFullReference(String fullReference);\r
+       public T parseReferencedName(String fullReference);\r
        \r
        /**\r
         * @see INonViralNameParser.parseFullReference(T nameToBeFilled, String fullReference, Rank rank, boolean makeEmpty)\r
@@ -90,34 +90,47 @@ public interface INonViralNameParser<T extends TaxonNameBase> extends IStrategy
         * @param rank\r
         * @return\r
         */\r
-       public T parseFullReference(String fullReference, NomenclaturalCode nomCode, Rank rank);\r
+       public T parseReferencedName(String fullReference, NomenclaturalCode nomCode, Rank rank);\r
 \r
        /**\r
         * Parses a String (fullReference) assuming that it represents a taxonomic name, it's reference,\r
         * and it's nomenclatural status.<BR>\r
-        * (1) Status: First the last part of the string is checked if it represents a nomenclatural status (e.g. nom. inval.).\r
-        * If so, this part of the string is separated and the according status is added to the name.<BR>\r
-        * (2) <B>Name:</B> The starting part of the remaining string is checked if it represent a name according to the rules \r
-        * of the underlying nomenclatural code.<BR> \r
-        * (2a) Non-atomized Name: If the name can not be parsed the title cache as well as the full\r
+        * <ol>\r
+        *              <li><strong>Status:</strong> First the last part of the string is checked if it represents a nomenclatural status (e.g. nom. inval.).\r
+        * If so, this part of the string is separated and the according status is added to the name.</li>\r
+        *              <li><strong>Name:</strong> The starting part of the remaining string is checked if it represent a name according to the rules \r
+        * of the underlying nomenclatural code.</li> \r
+        *              <li>\r
+        *                      <ol>\r
+        *                              <li>Non-atomized Name: If the name can not be parsed the title cache as well as the full\r
         * title cache of the name is filled and the hasProblem flag is set to <code>true</code>. The same applies\r
         * if the name can be parsed but is followed by a not empty String that does not start with a \r
-        * reference separator ("," of " in ").<BR>\r
-        * (2b) Atomized name: Otherwise the name part is separated and parsed. The according name attributes are set and \r
-        * the name's protectedTitleCache flag is set to <code>false</code>. <BR>\r
-        * (3) Reference: From the remaining string the reference separator is separated.\r
-        * The remaining string is parsed for beeing a valid (according to the parsers rules) reference String.<BR>\r
-        * (3a) If the reference part could not be parsed, the references title cache is set by the remaining string and the \r
-        * references protected title cache is set to <code>true</code>.\r
-        * (3b) If the reference could be parsed the reference is separated and parsed. The according reference attributes are\r
+        * reference separator ("," of " in ").</li>\r
+        *                              <li>Atomized name: Otherwise the name part is separated and parsed. The according name attributes are set and \r
+        * the name's protectedTitleCache flag is set to <code>false</code>.</li>\r
+        *                      </ol>\r
+        *              </li>\r
+        *              <li><strong>Reference:</strong> From the remaining string the reference separator is separated.\r
+        * The remaining string is parsed for beeing a valid (according to the parsers rules) reference String.\r
+        *                      <ol>\r
+        *                              <li>If the reference part could not be parsed, the references title cache is set by the remaining string and the \r
+        * references protected title cache is set to <code>true</code>.</li>\r
+        *                              <li>If the reference could be parsed the reference is separated and parsed. The according reference attributes are\r
         * set and the reference's protectedTitleCache flag as well as the hasProblem flag is set to <code>false</code>.\r
-        * Then, and only then, the name's hasProblem flag is set to <code>false</code>.  \r
+        * Then, and only then, the name's hasProblem flag is set to <code>false</code>.</li>\r
+        *                      </ol>\r
+        *              </li>\r
+        * </ol>\r
         * \r
-        * @param nameToBeFilled\r
-        * @param fullReference the string containing the scientific name with authorship, year, reference etc.\r
+        * @param nameToBeFilled \r
+        *                              an existing name object\r
+        * @param fullReference \r
+        *                              the string containing the scientific name with authorship, year, reference etc.\r
         * @param rank\r
-        * @param makeEmpty\r
+        * @param makeEmpty \r
+        *                              if this parameter is set to true, the name objects will nulled. All information \r
+        *                              formerly attached to this name will be lost.\r
         */\r
-       public void parseFullReference(T nameToBeFilled, String fullReference, Rank rank, boolean makeEmpty);\r
+       public void parseReferencedName(T nameToBeFilled, String fullReference, Rank rank, boolean makeEmpty);\r
        \r
 }\r