- /**
- *
- * Returns a Binding-Aware instance identifier from normalized
- * instance-identifier if it is possible to create representation.
- *
- * Returns Optional.absent for cases where target is mixin node except
- * augmentation.
- *
- */
- public Optional<InstanceIdentifier<? extends DataObject>> toBinding(final YangInstanceIdentifier normalized)
- throws DeserializationException {
- try {
- return Optional.<InstanceIdentifier<? extends DataObject>>fromNullable(codecRegistry.fromYangInstanceIdentifier(normalized));
- } catch (final IllegalArgumentException e) {
- return Optional.absent();
- }
- }
-
- public DataNormalizer getDataNormalizer() {
- return legacyToNormalized;
- }
-
- public Optional<Entry<InstanceIdentifier<? extends DataObject>, DataObject>> toBinding(
- final @Nonnull Entry<YangInstanceIdentifier, ? extends NormalizedNode<?, ?>> normalized)
- throws DeserializationException {
- try {
- /*
- * This cast is required, due to generics behaviour in openjdk / oracle javac
- *
- * InstanceIdentifier has definition InstanceIdentifier<T extends DataObject>,
- * this means '?' is always <? extends DataObject>. Eclipse compiler
- * is able to determine this relationship and treats
- * Entry<InstanceIdentifier<?>,DataObject> and Entry<InstanceIdentifier<? extends DataObject,DataObject>
- * as assignable. However openjdk / oracle javac treats this two types
- * as incompatible and issues a compile error.
- *
- * It is safe to loose generic information and cast it to other generic signature.
- *
- */
- @SuppressWarnings({ "unchecked", "rawtypes" })
- final Entry<InstanceIdentifier<? extends DataObject>, DataObject> binding = Entry.class.cast(codecRegistry.fromNormalizedNode(normalized.getKey(), normalized.getValue()));
- return Optional.fromNullable(binding);
- } catch (final IllegalArgumentException e) {
- return Optional.absent();
- }