Rename {Data,Schema}TreeAwareEffectiveStatement.Namespace
[yangtools.git] / model / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / UserOrderedAware.java
1 /*
2  * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.model.api;
9
10 import com.google.common.annotations.Beta;
11 import org.opendaylight.yangtools.yang.common.Ordering;
12 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByAwareEffectiveStatement;
13
14 /**
15  * Common interface for {@link DataSchemaNode}s which can have an {@code ordered-by} substatement.
16  *
17  * @param <E> Effective representation of the underlying YANG statement
18  */
19 @Beta
20 public interface UserOrderedAware<E extends OrderedByAwareEffectiveStatement<?, ?>>
21         extends EffectiveStatementEquivalent<E> {
22     /**
23      * YANG {@code ordered-by} statement. It defines whether the order of entries within this node are determined by the
24      * user or the system. If not present, default is false.
25      *
26      * @return true if ordered-by argument is {@code user}, false otherwise
27      */
28     default boolean isUserOrdered() {
29         return asEffectiveStatement().ordering() == Ordering.USER;
30     }
31 }