X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fmodel%2Fparser%2Fimpl%2FYangModelParserListenerImpl.java;h=bc5f77be838eb6b329feec9e1e756c6522d14d20;hb=11b0c275f1abb01bac9b122895a002c8e7905de1;hp=acc1dea2d46a35ebb03f3873f7dbe62d8f2a6582;hpb=bc395f78e1b7092d51348b8acac4cc83c90ab9ba;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerImpl.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerImpl.java index acc1dea2d4..bc5f77be83 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerImpl.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerImpl.java @@ -48,6 +48,7 @@ import org.opendaylight.controller.antlrv4.code.gen.YangParser.Revision_stmtsCon import org.opendaylight.controller.antlrv4.code.gen.YangParser.Status_stmtContext; import org.opendaylight.controller.antlrv4.code.gen.YangParser.Type_body_stmtsContext; import org.opendaylight.controller.antlrv4.code.gen.YangParser.Units_stmtContext; +import org.opendaylight.controller.antlrv4.code.gen.YangParser.When_stmtContext; import org.opendaylight.controller.antlrv4.code.gen.YangParser.Yang_version_stmtContext; import org.opendaylight.controller.antlrv4.code.gen.YangParserBaseListener; import org.opendaylight.controller.yang.common.QName; @@ -77,8 +78,8 @@ import org.opendaylight.controller.yang.model.util.YangTypesConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -final class YangModelParserListenerImpl extends YangParserBaseListener { - +public final class YangModelParserListenerImpl extends YangParserBaseListener { + private static final Logger logger = LoggerFactory .getLogger(YangModelParserListenerImpl.class); @@ -89,7 +90,7 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { private String yangModelPrefix; private Date revision = new Date(0L); - final static DateFormat simpleDateFormat = new SimpleDateFormat( + public final static DateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd"); private final Stack actualPath = new Stack(); @@ -251,6 +252,9 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { } else if (child instanceof Status_stmtContext) { Status status = parseStatus((Status_stmtContext) child); builder.setStatus(status); + } else if (child instanceof When_stmtContext) { + String when = stringFromNode(child); + builder.addWhenCondition(when); } } } @@ -321,11 +325,13 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { if (YangTypesConverter.isBaseYangType(typeName)) { if (typeBody == null) { // if there are no constraints, just grab default base yang type - type = YangTypesConverter.javaTypeForBaseYangType(typeName); + type = YangTypesConverter.javaTypeForBaseYangType(actualPath, namespace, revision, typeName); moduleBuilder.setType(type, actualPath); } else { if ("union".equals(typeName)) { moduleBuilder.addUnionType(actualPath); + } else if("identityref".equals(typeName)) { + moduleBuilder.addIdentityrefType(getIdentityrefBase(typeBody), actualPath); } else { List typePath = new ArrayList(actualPath); typePath.remove(0); @@ -646,7 +652,6 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { UnknownSchemaNodeBuilder builder = moduleBuilder.addUnknownSchemaNode( qname, actualPath); updatePath(name); - builder.setPath(createActualSchemaPath(actualPath, namespace, revision, yangModelPrefix)); parseSchemaNodeArgs(ctx, builder); @@ -725,7 +730,8 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { final String targetPath = stringFromNode(ctx); String reference = null; String deviate = null; - DeviationBuilder builder = moduleBuilder.addDeviation(targetPath, actualPath); + DeviationBuilder builder = moduleBuilder.addDeviation(targetPath, + actualPath); updatePath(targetPath); for (int i = 0; i < ctx.getChildCount(); i++) { @@ -764,7 +770,7 @@ final class YangModelParserListenerImpl extends YangParserBaseListener { final QName identityQName = new QName(namespace, revision, yangModelPrefix, identityName); IdentitySchemaNodeBuilder builder = moduleBuilder - .addIdentity(identityQName); + .addIdentity(identityQName, actualPath); updatePath(identityName); builder.setPath(createActualSchemaPath(actualPath, namespace, revision,