/** * Create an InstanceIdentifier for a child container. This method is a more efficient equivalent to * {@code builder().child(container).build()}. * * @param container Container to append * @param <N> Container type * @return An InstanceIdentifier. * @throws NullPointerException if {@code container} is null */ public final <N extends ChildOf<? super T>> InstanceIdentifier<N> child(final Class<N> container) { return childIdentifier(Item.of(container)); }
@SuppressWarnings("unchecked") public final <N extends DataObject & Augmentation<? super T>> InstanceIdentifier<N> augmentation( final Class<N> container) { final PathArgument arg = new Item<>(container); return (InstanceIdentifier<N>) childIdentifier(arg); }
@SuppressWarnings("unchecked") 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 (KeyedInstanceIdentifier<N, K>) childIdentifier(arg); }
@SuppressWarnings("unchecked") public final <N extends ChildOf<? super T>> InstanceIdentifier<N> child(final Class<N> container) { final PathArgument arg = new Item<>(container); return (InstanceIdentifier<N>) childIdentifier(arg); }
/** * Create an InstanceIdentifier for a child augmentation. This method is a more efficient equivalent to * {@code builder().augmentation(container).build()}. * * @param container Container to append * @param <N> Container type * @return An InstanceIdentifier. * @throws NullPointerException if {@code container} is null */ public final <N extends DataObject & Augmentation<? super T>> InstanceIdentifier<N> augmentation( final Class<N> container) { return childIdentifier(Item.of(container)); }
/** * Create an InstanceIdentifier for a child container. This method is a more efficient equivalent to * {@code builder().child(caze, container).build()}. * * @param caze Choice case class * @param container Container to append * @param <C> Case type * @param <N> Container type * @return An InstanceIdentifier. * @throws NullPointerException if any argument is null */ public final <C extends ChoiceIn<? super T> & DataObject, N extends ChildOf<? super C>> InstanceIdentifier<N> child( final Class<C> caze, final Class<N> container) { return childIdentifier(Item.of(caze, container)); }
/** * Create an InstanceIdentifier for a child list item. This method is a more efficient equivalent to * {@code builder().child(listItem, listKey).build()}. * * @param listItem List to append * @param listKey List key * @param <N> List type * @param <K> Key type * @return An InstanceIdentifier. * @throws NullPointerException if any argument is null */ @SuppressWarnings("unchecked") public final <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> KeyedInstanceIdentifier<N, K> child(final Class<N> listItem, final K listKey) { return (KeyedInstanceIdentifier<N, K>) childIdentifier(IdentifiableItem.of(listItem, listKey)); }
/** * Create an InstanceIdentifier for a child list item. This method is a more efficient equivalent to * {@code builder().child(caze, listItem, listKey).build()}. * * @param caze Choice case class * @param listItem List to append * @param listKey List key * @param <C> Case type * @param <N> List type * @param <K> Key type * @return An InstanceIdentifier. * @throws NullPointerException if any argument is null */ @SuppressWarnings("unchecked") public final <C extends ChoiceIn<? super T> & DataObject, K extends Identifier<N>, N extends Identifiable<K> & ChildOf<? super C>> KeyedInstanceIdentifier<N, K> child(final Class<C> caze, final Class<N> listItem, final K listKey) { return (KeyedInstanceIdentifier<N, K>) childIdentifier(IdentifiableItem.of(caze, listItem, listKey)); }