BUG-4861: Make YinElementStatement#getValue() return a boolean
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / DataNodeContainer.java
index 20b9ea4d48f7f5ba8383edc2ccce30eab4caf040..de27fece30aa5ca7499c317cbb2b802645d8aba8 100644 (file)
@@ -1,61 +1,67 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.yangtools.yang.model.api;\r
-\r
-import java.util.Set;\r
-\r
-import org.opendaylight.yangtools.yang.common.QName;\r
-\r
-/**\r
- * Node which can contains other nodes.\r
- */\r
-public interface DataNodeContainer {\r
-\r
-    /**\r
-     * Returns set of all newly defined types within this DataNodeContainer.\r
-     *\r
-     * @return typedef statements in lexicographical order\r
-     */\r
-    Set<TypeDefinition<?>> getTypeDefinitions();\r
-\r
-    /**\r
-     * Returns set of all child nodes defined within this DataNodeContainer.\r
-     *\r
-     * @return child nodes in lexicographical order\r
-     */\r
-    Set<DataSchemaNode> getChildNodes();\r
-\r
-    /**\r
-     * Returns set of all groupings defined within this DataNodeContainer.\r
-     *\r
-     * @return grouping statements in lexicographical order\r
-     */\r
-    Set<GroupingDefinition> getGroupings();\r
-\r
-    /**\r
-     * @param name\r
-     *            QName of seeked child\r
-     * @return child node of this DataNodeContainer if child with given name is\r
-     *         present, null otherwise\r
-     */\r
-    DataSchemaNode getDataChildByName(QName name);\r
-\r
-    /**\r
-     * @param name\r
-     *            name of seeked child as String\r
-     * @return child node of this DataNodeContainer if child with given name is\r
-     *         present, null otherwise\r
-     */\r
-    DataSchemaNode getDataChildByName(String name);\r
-\r
-    /**\r
-     * @return Set of all uses nodes defined within this DataNodeContainer\r
-     */\r
-    Set<UsesNode> getUses();\r
-\r
-}\r
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.yangtools.yang.model.api;
+
+import java.util.Collection;
+import java.util.Set;
+import org.opendaylight.yangtools.yang.common.QName;
+
+/**
+ * Node which can contains other nodes.
+ */
+public interface DataNodeContainer {
+
+    /**
+     * Returns set of all newly defined types within this DataNodeContainer.
+     *
+     * @return typedef statements in lexicographical order
+     */
+    Set<TypeDefinition<?>> getTypeDefinitions();
+
+    /**
+     * Returns set of all child nodes defined within this DataNodeContainer.
+     * Although the return type is a collection, each node is guaranteed to
+     * be present at most once.
+     *
+     * @return child nodes in lexicographical order
+     */
+    Collection<DataSchemaNode> getChildNodes();
+
+    /**
+     * Returns set of all groupings defined within this DataNodeContainer.
+     *
+     * @return grouping statements in lexicographical order
+     */
+    Set<GroupingDefinition> getGroupings();
+
+    /**
+     * @param name
+     *            QName of seeked child
+     * @return child node of this DataNodeContainer if child with given name is
+     *         present, null otherwise
+     */
+    DataSchemaNode getDataChildByName(QName name);
+
+    /**
+     * @param name
+     *            name of seeked child as String
+     * @return child node of this DataNodeContainer if child with given name is
+     *         present, null otherwise
+     *
+     * @deprecated This method disregards the namespace and thus leads to unpredictable results
+     *             when multiple children exist with the same localname, but with different namespaces.
+     */
+    @Deprecated
+    DataSchemaNode getDataChildByName(String name);
+
+    /**
+     * @return Set of all uses nodes defined within this DataNodeContainer
+     */
+    Set<UsesNode> getUses();
+
+}