Yang parser refactoring.
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / api / AugmentationSchemaBuilder.java
1 /*
2  * Copyright (c) 2013 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 package org.opendaylight.yangtools.yang.parser.builder.api;
9
10 import org.opendaylight.yangtools.yang.model.api.*;
11
12 /**
13  * Interface for builders of 'augment' statement.
14  */
15 public interface AugmentationSchemaBuilder extends DataNodeContainerBuilder {
16
17     String getWhenCondition();
18
19     void addWhenCondition(String whenCondition);
20
21     String getDescription();
22
23     void setDescription(String description);
24
25     String getReference();
26
27     void setReference(String reference);
28
29     Status getStatus();
30
31     void setStatus(Status status);
32
33     /**
34      * Get path to target node as single string.
35      *
36      * @return path to target node as String
37      */
38     String getTargetPathAsString();
39
40     /**
41      * Get path to target node.
42      * <p>
43      * Note that individual parts of path contain only prefix relative to
44      * current context and name of node.
45      * </p>
46      *
47      * @return path to target node as SchemaPath
48      */
49     SchemaPath getTargetPath();
50
51     /**
52      * Get schema path of target node.
53      *
54      * @return SchemaPath of target node
55      */
56     SchemaPath getTargetNodeSchemaPath();
57
58     /**
59      * Set schema path of target node.
60      *
61      * @param path
62      *            SchemaPath of target node
63      */
64     void setTargetNodeSchemaPath(SchemaPath path);
65
66     AugmentationSchema build();
67
68     /**
69      * Get information about augmentation process.
70      *
71      * @return true, if augmentation process was performed already, false
72      *         otherwise
73      */
74     boolean isResolved();
75
76     /**
77      * Set information about augmentation process.
78      *
79      * @param resolved
80      */
81     void setResolved(boolean resolved);
82
83 }