27f54d986aa8818a6c201a3565a23903e8023dc5
[mdsal.git] / binding2 / mdsal-binding2-generator-api / src / main / java / org / opendaylight / mdsal / binding2 / model / api / DocumentedType.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. 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
9 package org.opendaylight.mdsal.binding2.model.api;
10
11 import com.google.common.annotations.Beta;
12 import com.google.common.base.Optional;
13 import java.util.List;
14 import org.opendaylight.yangtools.yang.common.QName;
15
16 /**
17  * Implementing this interface allows an object to hold information which are
18  * essential for generating java doc from type definition.
19  */
20 @Beta
21 public interface DocumentedType {
22
23     /**
24      * Returns a string that contains a human-readable textual description of
25      * type definition.
26      *
27      * @return a human-readable textual description of type definition.
28      */
29     Optional<String> getDescription();
30
31     /**
32      * Returns a string that is used to specify a textual cross-reference to an
33      * external document, either another module that defines related management
34      * information, or a document that provides additional information relevant
35      * to this definition.
36      *
37      * @return a textual cross-reference to an external document.
38      */
39     Optional<String> getReference();
40
41     /**
42      * Returns a list of QNames which represent schema path in schema tree from
43      * actual concrete type to the root.
44      *
45      * @return a schema path in schema tree from actual concrete schema node
46      *         identifier to the root.
47      */
48     List<QName> getSchemaPath();
49
50     /**
51      * Returns the name of the module, in which generated type was specified.
52      *
53      * @return the name of the module, in which generated type was specified.
54      */
55     String getModuleName();
56 }