2 * Copyright (c) 2016 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.stmt;
10 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
11 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
12 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
15 * Effective representation of a {@code config} statement.
18 * Note that unlike almost all other representations, these statements are only ever a reflection of a declared
19 * {@code config} statement. The truly effective status of a particular statement within a tree depends on its parent
20 * statements. As an example, given this YANG module:
40 * The object model will only reflect the {@code config} statement in {@code container bar}, but will not be present in
41 * {@code bar}'s {@code baz} leaf. The real effective {@code config} of {@code leaf baz} is a tri-state value:
43 * <li>within {@code grouping foo} it is not applicable, that is to say undefined</li>
44 * <li>within {@code container bar} it is inherited, that is to say {@code false}</li>
45 * <li>within {@code module foo} it is inherited from default, that is to say {@code true}</li>
49 * Users are advised to use utility classes related to statement inference which consider parent/child relationships
52 public interface ConfigEffectiveStatement extends EffectiveStatement<Boolean, ConfigStatement> {
54 default StatementDefinition statementDefinition() {
55 return YangStmtMapping.CONFIG;