/**\r
* @author a.mueller\r
* @created 26.04.2013\r
- * \r
*/\r
public class MarkupKeyImport extends MarkupImportBase {\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(MarkupKeyImport.class);\r
\r
- private static final String COUPLET = "couplet";\r
- private static final String IS_SPOTCHARACTERS = "isSpotcharacters";\r
- private static final String ONLY_NUMBERED_TAXA_EXIST = "onlyNumberedTaxaExist";\r
- private static final String EXISTS = "exists";\r
- private static final String KEYNOTES = "keynotes";\r
- private static final String KEY_TITLE = "keyTitle";\r
- private static final String QUESTION = "question";\r
- private static final String TEXT = "text";\r
- private static final String TO_COUPLET = "toCouplet";\r
- private static final String TO_KEY = "toKey";\r
- private static final String TO_TAXON = "toTaxon";\r
-\r
\r
public MarkupKeyImport(MarkupDocumentImport docImport) {\r
super(docImport);\r
return;\r
} else if (isStartingElement(next, TEXT)) {\r
String text = getCData(state, reader, next);\r
- Language language = state.getDefaultLanguage();\r
- if (language == null){\r
- language = Language.DEFAULT();\r
- }\r
- KeyStatement statement = KeyStatement.NewInstance(language, text);\r
+ KeyStatement statement = KeyStatement.NewInstance(getDefaultLanguage(state), text);\r
myNode.setStatement(statement);\r
} else if (isStartingElement(next, COUPLET)) {\r
//TODO test\r
}\r
}\r
\r
- /**\r
- * Checks if <code>abbrev</code> is the short form for the genus name (strGenusName).\r
- * Usually this is the case if <code>abbrev</code> is the first letter (optional with ".") \r
- * of strGenusName. But in older floras it may also be the first 2 or 3 letters (optional with dot).\r
- * However, we allow only a maximum of 2 letters to be anambigous. In cases with 3 letters better \r
- * change the original markup data.\r
- * @param single\r
- * @param strGenusName\r
- * @return\r
- */\r
- private boolean isGenusAbbrev(String abbrev, String strGenusName) {\r
- if (! abbrev.matches("[A-Z][a-z]?\\.?")) {\r
- return false;\r
- }else if (abbrev.length() == 0 || strGenusName == null || strGenusName.length() == 0){\r
- return false; \r
- }else{\r
- abbrev = abbrev.replace(".", "");\r
- return strGenusName.startsWith(abbrev);\r
-// boolean result = true;\r
-// for (int i = 0 ; i < abbrev.length(); i++){\r
-// result &= ( abbrev.charAt(i) == strGenusName.charAt(i));\r
-// }\r
-// return result;\r
- }\r
- }\r
+\r
\r
\r
//******************************** recognize nodes ***********/\r
}\r
}\r
//report missing match, if num exists\r
- if (matchingNodes.isEmpty() && num != null){\r
+ if (matchingNodes.isEmpty() /* TODO redo comment && num != null */){\r
String message = "Taxon has <num> attribute in taxontitle but no matching key nodes exist: %s, Key: %s";\r
message = String.format(message, num, leadsKey.toString());\r
fireWarningEvent(message, event, 1);\r