X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fodlext-parser-support%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fodlext%2Fparser%2FInstanceTargetStatementSupport.java;fp=yang%2Fodlext-parser-support%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fodlext%2Fparser%2FInstanceTargetStatementSupport.java;h=da0f7069e3cfcab099632373450e08704c3c57f3;hb=17d3c66fe1089ae26f414c257799d7bab3bcf260;hp=0000000000000000000000000000000000000000;hpb=34ed90bca3455649fb9d0aebe8fee24c3c469309;p=yangtools.git diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java new file mode 100644 index 0000000000..da0f7069e3 --- /dev/null +++ b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.odlext.parser; + +import com.google.common.annotations.Beta; +import com.google.common.collect.ImmutableList; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.odlext.model.api.InstanceTargetEffectiveStatement; +import org.opendaylight.yangtools.odlext.model.api.InstanceTargetStatement; +import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements; +import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; +import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport; +import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; + +@Beta +public final class InstanceTargetStatementSupport + extends AbstractStringStatementSupport { + public static final @NonNull InstanceTargetStatementSupport INSTANCE = new InstanceTargetStatementSupport(); + + private static final SubstatementValidator VALIDATOR = + SubstatementValidator.builder(OpenDaylightExtensionsStatements.INSTANCE_TARGET).build(); + + private InstanceTargetStatementSupport() { + super(OpenDaylightExtensionsStatements.INSTANCE_TARGET, StatementPolicy.contextIndependent()); + } + + @Override + protected SubstatementValidator getSubstatementValidator() { + return VALIDATOR; + } + + @Override + protected InstanceTargetStatement createDeclared(final StmtContext ctx, + final ImmutableList> substatements) { + return new InstanceTargetStatementImpl(ctx.getArgument(), substatements); + } + + @Override + protected InstanceTargetEffectiveStatement createEffective(final Current stmt, + final ImmutableList> substatements) { + return new InstanceTargetEffectiveStatementImpl(stmt.declared(), substatements); + } +}