X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2FRevisionStatementImpl.java;h=af019f71ddd692580bf4d2999a3584d5bb52ff9e;hb=cde047f709ab56c39012678faba8b56da458d05b;hp=d8cc62c8c19014d87032b22dd4e14518ec7e0355;hpb=30c67c4d780e897d972d60bb79d546b512516f90;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java index d8cc62c8c1..af019f71dd 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/RevisionStatementImpl.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the @@ -7,26 +7,32 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.RevisionEffectiveStatementImpl; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import java.text.ParseException; import java.util.Date; -import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; +import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; +import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -import javax.annotation.Nullable; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.RevisionEffectiveStatementImpl; public class RevisionStatementImpl extends AbstractDeclaredStatement implements RevisionStatement { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( + YangStmtMapping.REVISION) + .addOptional(YangStmtMapping.DESCRIPTION) + .addOptional(YangStmtMapping.REFERENCE) + .build(); - protected RevisionStatementImpl( - StmtContext context) { + protected RevisionStatementImpl(final StmtContext context) { super(context); } @@ -35,37 +41,37 @@ public class RevisionStatementImpl extends AbstractDeclaredStatement AbstractStatementSupport> { public Definition() { - super(Rfc6020Mapping.REVISION); + super(YangStmtMapping.REVISION); } @Override - public Date parseArgumentValue(StmtContext ctx, String value) - throws SourceException { - Date revision; + public Date parseArgumentValue(final StmtContext ctx, final String value) { try { - revision = SimpleDateFormatUtil.getRevisionFormat() - .parse(value); + return SimpleDateFormatUtil.getRevisionFormat().parse(value); } catch (ParseException e) { - throw new SourceException(String.format("Revision value %s is not in required format yyyy-MM-dd", - value), ctx.getStatementSourceReference(), e); + throw new SourceException(ctx.getStatementSourceReference(), e, + "Revision value %s is not in required format yyyy-MM-dd", value); } - - return revision; } @Override - public RevisionStatement createDeclared( - StmtContext ctx) { + public RevisionStatement createDeclared(final StmtContext ctx) { return new RevisionStatementImpl(ctx); } @Override public EffectiveStatement createEffective( - StmtContext> ctx) { + final StmtContext> ctx) { return new RevisionEffectiveStatementImpl(ctx); } + + @Override + protected SubstatementValidator getSubstatementValidator() { + return SUBSTATEMENT_VALIDATOR; + } } + @Nonnull @Override public Date getDate() { return argument();