import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.concepts.Path;
}
@SuppressWarnings("unchecked")
- public final <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> InstanceIdentifier<N> child(
+ public final <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> KeyedInstanceIdentifier<N, K> child(
final Class<N> listItem, final K listKey) {
final PathArgument arg = new IdentifiableItem<>(listItem, listKey);
- return (InstanceIdentifier<N>) childIdentifier(arg);
+ return (KeyedInstanceIdentifier<N, K>) childIdentifier(arg);
}
@SuppressWarnings("unchecked")
}
@Override
- public int compareTo(PathArgument arg) {
+ public int compareTo(final PathArgument arg) {
return type.getCanonicalName().compareTo(arg.getType().getCanonicalName());
}
}
*/
package org.opendaylight.yangtools.yang.binding;
+/**
+ * An {@link InstanceIdentifier}, which has a list key attached at its last path
+ * element.
+ *
+ * @param <T> Target data type
+ * @param <K> Target key type
+ */
public class KeyedInstanceIdentifier<T extends Identifiable<K> & DataObject, K extends Identifier<T>> extends InstanceIdentifier<T> {
private final K key;
this.key = key;
}
+ /**
+ * Return the key attached to this identifier. This method is equivalent to
+ * calling {@link InstanceIdentifier#keyOf(InstanceIdentifier)}.
+ *
+ * @return Key associated with this instance identifier.
+ */
public final K getKey() {
return key;
}