--- /dev/null
+/*\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.List;\r
+\r
+import org.opendaylight.yangtools.yang.common.QName;\r
+\r
+/**\r
+ * Interface describing YANG 'list' statement.\r
+ * <p>\r
+ * The 'list' statement is used to define an interior data node in the schema\r
+ * tree. A list entry is uniquely identified by the values of the list's keys,\r
+ * if defined.\r
+ * </p>\r
+ */\r
+public interface ListSchemaNode extends DataNodeContainer, AugmentationTarget,\r
+ DataSchemaNode {\r
+\r
+ /**\r
+ * @return List of QNames of leaf identifiers of this list\r
+ */\r
+ public List<QName> getKeyDefinition();\r
+\r
+ /**\r
+ * YANG 'ordered-by' statement. It defines whether the order of entries\r
+ * within a list are determined by the user or the system. If not present,\r
+ * default is false.\r
+ *\r
+ * @return true if ordered-by argument is "user", false otherwise\r
+ */\r
+ boolean isUserOrdered();\r
+\r
+}\r