192fdc4938be80abd1618136554409de5c74c2f3
[yangtools.git] / model / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / UnknownSchemaNode.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.model.api;
9
10 import org.opendaylight.yangtools.yang.common.QName;
11 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
12
13 /**
14  * Contains the methods for getting the details about the unknown node.
15  */
16 public interface UnknownSchemaNode extends SchemaNode, CopyableNode,
17         EffectiveStatementEquivalent<UnknownEffectiveStatement<?, ?>> {
18     /**
19      * Returns QName instance with the name of the unknown node. This corresponds to
20      * {@link ExtensionDefinition#getQName()} of the {@code extension} statement which defined it.
21      *
22      * @return QName with name the name of the unknown node.
23      */
24     QName getNodeType();
25
26     /**
27      * Returns name of the unknown node.
28      *
29      * @return string with the name of unknown node.
30      */
31     String getNodeParameter();
32
33     /**
34      * Get extension definition which identifies this node.
35      *
36      * @return extension definition if exists, null otherwise
37      * @deprecated This method is can cause cyclic dependencies in the object graph. Use
38      *             {@link SchemaContext#getExtensions()} with {@link #getNodeType()} instead.
39      */
40     // FIXME: YANGTOOLS-1317: remove this method
41     @Deprecated(forRemoval = true, since = "7.0.8")
42     ExtensionDefinition getExtensionDefinition();
43 }