2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.yangtools.yang.data.api.schema;
10 import org.eclipse.jdt.annotation.NonNull;
11 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
14 * A {@link NormalizedNodeContainer} which preserves user supplied ordering and allows addressing of child elements by
15 * position. All implementations of this interface must also implement {@link OrderingAware.User}.
17 * @param <V> child type
19 // FIXME: 9.0.0: we really want to do a List<@NonNull V> body(), but need to reconcile that with key-based lookup in
20 // implementations -- and those are using only a Map internally.
21 public interface OrderedNodeContainer<V extends NormalizedNode>
22 extends NormalizedNodeContainer<V>, MixinNode, OrderingAware.User {
24 NodeIdentifier getIdentifier();
27 * Returns child node by position.
29 * @param position Position of child node
31 * @throws IndexOutOfBoundsException Out of bound Exception
33 @NonNull V childAt(int position);
39 boolean equals(Object obj);