- /**
- *
- * Based on identifier read from source and collections of relevant prefixes and statement definitions mappings
- * provided for actual phase, method resolves and returns valid QName for declared statement to be written.
- * This applies to any declared statement, including unknown statements.
- *
- * @param prefixes - collection of all relevant prefix mappings supplied for actual parsing phase
- * @param stmtDef - collection of all relevant statement definition mappings provided for actual parsing phase
- * @param identifier - statement to parse from source
- * @return valid QName for declared statement to be written
- *
- */
- public static QName getValidStatementDefinition(final PrefixToModule prefixes,
- final QNameToStatementDefinition stmtDef, final QName identifier) {
- if (stmtDef.get(identifier) != null) {
- return stmtDef.get(identifier).getStatementName();
- } else {
- String prefixedLocalName = identifier.getLocalName();
- String[] namesParts = prefixedLocalName.split(":");
-
- if (namesParts.length == 2) {
- String prefix = namesParts[0];
- String localName = namesParts[1];
-
- if (prefixes == null) {
- return null;
- }
-
- QNameModule qNameModule = prefixes.get(prefix);
- if (qNameModule == null) {
- return null;
- }
-
- if (prefixes.isPreLinkageMap()) {
- StatementDefinition foundStmtDef = stmtDef.getByNamespaceAndLocalName(qNameModule.getNamespace(),
- localName);
- return foundStmtDef != null ? foundStmtDef.getStatementName() : null;
- } else {
- QName qName = QName.create(qNameModule, localName);
- return stmtDef.get(qName) != null ? qName : null;
- }
- }
+ public static String trimPrefix(final String identifier) {
+ final List<String> namesParts = COLON_SPLITTER.splitToList(identifier);
+ if (namesParts.size() == 2) {
+ return namesParts.get(1);