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.model.api.meta;
10 import java.util.Collection;
12 import javax.annotation.Nonnull;
13 import javax.annotation.Nullable;
16 * Effective model statement which should be used to derive application behaviour.
19 * Argument type ({@link Void} if statement does not have argument.)
21 * Class representing declared version of this statement.
23 public interface EffectiveStatement<A, S extends DeclaredStatement<A>> extends ModelStatement<A> {
26 * Returns statement, which was explicit declaration of this effective
30 * @return statement, which was explicit declaration of this effective
31 * statement or null if statement was inferred from context.
38 * Returns value associated with supplied identifier
45 * Namespace identifier type
49 * Identifier of element.
50 * @return Value if present, null otherwise.
54 //<K, V, N extends IdentifierNamespace<? super K, ? extends V>> V
56 public <K,V,N extends IdentifierNamespace<K, V>> V get(@Nonnull Class<N> namespace,@Nonnull K identifier);
60 * Returns all local values from supplied namespace.
67 * Namespace identifier type
70 * @return Value if present, null otherwise.
73 <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAll(@Nonnull Class<N> namespace);
77 * Returns iteration of all effective substatements.
79 * @return iteration of all effective substatements.
81 Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements();