2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.parser.stmt.reactor;
10 import org.opendaylight.yangtools.yang.common.QName;
11 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
12 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
13 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
14 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
15 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
16 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementFactory;
17 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
18 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
19 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
20 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
22 public class StatementDefinitionContext<A,D extends DeclaredStatement<A>,E extends EffectiveStatement<A,D>> {
23 private final StatementSupport<A,D,E> support;
24 public StatementDefinitionContext(StatementSupport<A,D,E> support) {
25 this.support= support;
29 public StatementFactory<A,D,E> getFactory() {
33 public A parseArgumentValue(StmtContext<A,D,E> context, String value) throws SourceException {
34 return support.parseArgumentValue(context,value);
38 public void checkNamespaceAllowed(Class<? extends IdentifierNamespace<?,?>> namespace) {
42 public StatementDefinition getPublicView() {
43 return support.getPublicView();
46 public boolean onStatementAdded(Mutable<A,D,E> stmt) {
51 public void onDeclarationFinished(Mutable<A,D,E> statement, ModelProcessingPhase phase) throws SourceException {
54 support.onLinkageDeclared(statement);
56 case STATEMENT_DEFINITION:
57 support.onStatementDefinitionDeclared(statement);
59 case FULL_DECLARATION:
60 support.onFullDefinitionDeclared(statement);
69 public Class<?> getRepresentingClass() {
70 return support.getDeclaredRepresentationClass();
74 public boolean hasArgument() {
75 return support.getArgumentName() != null;
79 public QName getStatementName() {
80 return support.getStatementName();