Fix StmtContext nullness problems
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / identity / AbstractIdentityStatementSupport.java
index 47677bb0bc4db3476be335db125b153c21429ae0..c24bacef4a40bfdb6c615e5d941a866d0ebb86c0 100644 (file)
@@ -15,37 +15,17 @@ import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 abstract class AbstractIdentityStatementSupport
         extends AbstractQNameStatementSupport<IdentityStatement, EffectiveStatement<QName, IdentityStatement>> {
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractIdentityStatementSupport.class);
 
     AbstractIdentityStatementSupport() {
         super(YangStmtMapping.IDENTITY);
     }
 
     @Override
-    @SuppressWarnings({ "checkstyle:illegalCatch", "checkstyle:avoidHidingCauseException" })
     public final QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-        try {
-            return StmtContextUtils.parseIdentifier(ctx, value);
-        } catch (SourceException e) {
-            // FIXME: YANGTOOLS-867: remove this workaround
-            final QName ret;
-            try {
-                ret = StmtContextUtils.qnameFromArgument(ctx, value);
-            } catch (RuntimeException re) {
-                // Lenient parsing failed, report the original exception
-                LOG.debug("Lenient identity parsing failed", re);
-                throw e;
-            }
-
-            LOG.warn("Worked around illegal identity argument '{}' using lenient parsing", value, e);
-            return ret;
-        }
+        return StmtContextUtils.parseIdentifier(ctx, value);
     }
 
     @Override
@@ -62,6 +42,6 @@ abstract class AbstractIdentityStatementSupport
     @Override
     public final void onStatementDefinitionDeclared(final StmtContext.Mutable<QName, IdentityStatement,
             EffectiveStatement<QName, IdentityStatement>> stmt) {
-        stmt.addToNs(IdentityNamespace.class, stmt.getStatementArgument(), stmt);
+        stmt.addToNs(IdentityNamespace.class, stmt.coerceStatementArgument(), stmt);
     }
 }
\ No newline at end of file