2 * Copyright (c) 2014 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;
10 import com.google.common.collect.ImmutableList;
11 import java.util.List;
12 import javax.annotation.Nonnull;
13 import javax.annotation.Nullable;
17 * Node which can have documentation assigned.
20 public interface DocumentedNode {
23 * Returns description of the instance of the type <code>SchemaNode</code>
25 * @return string with textual description the node which represents the
26 * argument of the YANG <code>description</code> substatement
28 @Nullable String getDescription();
31 * Returns reference of the instance of the type <code>SchemaNode</code>
33 * The reference refers to external document that provides additional
34 * information relevant for the instance of this type.
36 * @return string with the reference to some external document which
37 * represents the argument of the YANG <code>reference</code>
40 @Nullable String getReference();
43 * Returns status of the instance of the type <code>SchemaNode</code>
45 * @return status of this node which represents the argument of the YANG
46 * <code>status</code> substatement
48 @Nonnull Status getStatus();
51 * Returns unknown schema nodes which belongs to this instance.
53 * @return list of unknown schema nodes defined under this node.
55 default @Nonnull List<UnknownSchemaNode> getUnknownSchemaNodes() {
56 return ImmutableList.of();