public static DataNormalizationOperation<?> fromDataSchemaNode(final DataSchemaNode potential) { if (potential instanceof ContainerSchemaNode) { return new ContainerNormalization((ContainerSchemaNode) potential); } else if (potential instanceof ListSchemaNode) { return fromListSchemaNode((ListSchemaNode) potential); } else if (potential instanceof LeafSchemaNode) { return new LeafNormalization((LeafSchemaNode) potential); } else if (potential instanceof ChoiceSchemaNode) { return new ChoiceNodeNormalization((ChoiceSchemaNode) potential); } else if (potential instanceof LeafListSchemaNode) { return fromLeafListSchemaNode((LeafListSchemaNode) potential); } else if (potential instanceof AnyXmlSchemaNode) { return new AnyXmlNormalization((AnyXmlSchemaNode) potential); } return null; }
public void setGlobalSchema(final SchemaContext globalSchema) { this.globalSchema = globalSchema; dataNormalizer = new DataNormalizer(globalSchema); }
AugmentationNormalization(final AugmentationSchemaNode augmentation, final DataNodeContainer schema) { super(augmentationIdentifierFrom(augmentation), augmentationProxy(augmentation,schema),null); }
private InstanceIdentifierContext<?> createContext(final YangInstanceIdentifier instance, final DataSchemaNode dataSchemaNode, final DOMMountPoint mountPoint, final SchemaContext schemaContext) { final YangInstanceIdentifier instanceIdentifier = new DataNormalizer(schemaContext).toNormalized(instance); return new InstanceIdentifierContext<>(instanceIdentifier, dataSchemaNode, mountPoint,schemaContext); }
public boolean isNodeMixin(final YangInstanceIdentifier path) { final DataNormalizationOperation<?> operation; try { operation = dataNormalizer.getOperation(path); } catch (final DataNormalizationException e) { throw new RestconfDocumentedException("Data normalizer failed. Normalization isn't possible", e); } return operation.isMixin(); }
private static DataNormalizationOperation<?> fromListSchemaNode(final ListSchemaNode potential) { final List<QName> keyDefinition = potential.getKeyDefinition(); if (keyDefinition == null || keyDefinition.isEmpty()) { return new UnkeyedListMixinNormalization(potential); } if (potential.isUserOrdered()) { return new OrderedMapMixinNormalization(potential); } return new UnorderedMapMixinNormalization(potential); }
public DataNormalizationOperation<?> getRootOperation() { return dataNormalizer.getRootOperation(); }
@Override public DataNormalizationOperation<?> getChild(final QName child) throws DataNormalizationException { DataNormalizationOperation<?> potential = byQName.get(child); if (potential != null) { return potential; } potential = fromLocalSchemaAndQName(schema, child); return register(potential); }
@Override public DataNormalizationOperation<?> getChild(final PathArgument child) throws DataNormalizationException { DataNormalizationOperation<?> potential = byArg.get(child); if (potential != null) { return potential; } potential = fromLocalSchema(child); return register(potential); }
private static DataNormalizationOperation<?> fromLeafListSchemaNode(final LeafListSchemaNode potential) { if (potential.isUserOrdered()) { return new OrderedLeafListMixinNormalization(potential); } return new UnorderedLeafListMixinNormalization(potential); }
private DataNormalizationOperation<?> register(final DataNormalizationOperation<?> potential) { if (potential != null) { byArg.put(potential.getIdentifier(), potential); for (final QName qname : potential.getQNameIdentifiers()) { byQName.put(qname, potential); } } return potential; }
public DataNormalizationOperation<?> getOperation(final YangInstanceIdentifier legacy) throws DataNormalizationException { DataNormalizationOperation<?> currentOp = operation; for (PathArgument pathArgument : legacy.getPathArguments()) { currentOp = currentOp.getChild(pathArgument); } return currentOp; }
public DataNormalizer(final SchemaContext ctx) { operation = DataNormalizationOperation.from(ctx); }
public static DataNormalizationOperation<?> from(final SchemaContext ctx) { return new ContainerNormalization(ctx); }
public YangInstanceIdentifier toNormalized(final YangInstanceIdentifier legacy) { try { return dataNormalizer.toNormalized(legacy); } catch (final NullPointerException e) { throw new RestconfDocumentedException("Data normalizer isn't set. Normalization isn't possible", e); } }
@Override protected Set<QName> getQNameIdentifiers() { return getIdentifier().getPossibleChildNames(); }
public YangInstanceIdentifier toXpathRepresentation(final YangInstanceIdentifier instanceIdentifier) { try { return dataNormalizer.toLegacy(instanceIdentifier); } catch (final NullPointerException e) { throw new RestconfDocumentedException("Data normalizer isn't set. Normalization isn't possible", e); } catch (final DataNormalizationException e) { throw new RestconfDocumentedException("Data normalizer failed. Normalization isn't possible", e); } }
@Override public DataNormalizationOperation<?> getChild(final QName child) { if (getIdentifier().getNodeType().equals(child)) { return innerNode; } return null; }
@Override public DataNormalizationOperation<?> getChild(final QName child) { if (getIdentifier().getNodeType().equals(child)) { return innerNode; } return null; }
public void setGlobalSchema(final SchemaContext globalSchema) { this.globalSchema = globalSchema; dataNormalizer = new DataNormalizer(globalSchema); }