public static DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> create( final ListSchemaNode schema) { return new ImmutableMapEntryNodeSchemaAwareBuilder(schema); }
public static DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder( final ListSchemaNode schema) { return ImmutableMapEntryNodeSchemaAwareBuilder.create(schema); }
private Map<QName, Object> childrenToPredicates() { final Object[] values = new Object[childrenQNamesToPaths.size()]; int offset = 0; for (Entry<QName, PathArgument> entry : childrenQNamesToPaths.entrySet()) { values[offset++] = nonnullKeyValue(entry.getKey(), getChild(entry.getValue())).getValue(); } return ImmutableMapTemplate.ordered(childrenQNamesToPaths.keySet()).instantiateWithValues(values); }
/** * Build map entry node identifier from schema and provided children. */ private NodeIdentifierWithPredicates constructNodeIdentifier() { final Map<QName, Object> predicates; final Collection<QName> keys = schema.getKeyDefinition(); if (!keys.isEmpty()) { predicates = keyDefToPredicates(keys); } else if (!childrenQNamesToPaths.isEmpty()) { predicates = childrenToPredicates(); } else { predicates = ImmutableMap.of(); } return new NodeIdentifierWithPredicates(schema.getQName(), predicates); }
private DataContainerChild<?, ?> nonnullKeyValue(final QName key, final DataContainerChild<?, ?> value) { if (value != null) { return value; } throw new IllegalListKeyException("Key value not present for key: %s, in: %s values %s", key, schema.getQName(), buildValue()); } }
@Override public MapEntryNode build() { super.withNodeIdentifier(constructNodeIdentifier()); return super.build(); }
private Map<QName, Object> childrenToPredicates() { final Object[] values = new Object[childrenQNamesToPaths.size()]; int offset = 0; for (Entry<QName, PathArgument> entry : childrenQNamesToPaths.entrySet()) { values[offset++] = nonnullKeyValue(entry.getKey(), getChild(entry.getValue())).getValue(); } return ImmutableMapTemplate.ordered(childrenQNamesToPaths.keySet()).instantiateWithValues(values); }
/** * Build map entry node identifier from schema and provided children. */ private NodeIdentifierWithPredicates constructNodeIdentifier() { final Map<QName, Object> predicates; final Collection<QName> keys = schema.getKeyDefinition(); if (!keys.isEmpty()) { predicates = keyDefToPredicates(keys); } else if (!childrenQNamesToPaths.isEmpty()) { predicates = childrenToPredicates(); } else { predicates = ImmutableMap.of(); } return new NodeIdentifierWithPredicates(schema.getQName(), predicates); }
private DataContainerChild<?, ?> nonnullKeyValue(final QName key, final DataContainerChild<?, ?> value) { if (value != null) { return value; } throw new IllegalListKeyException("Key value not present for key: %s, in: %s values %s", key, schema.getQName(), buildValue()); } }
@Override public MapEntryNode build() { super.withNodeIdentifier(constructNodeIdentifier()); return super.build(); }
private Map<QName, Object> keyDefToPredicates(final Collection<QName> keys) { final Object[] values = new Object[keys.size()]; int offset = 0; for (QName key : keys) { values[offset++] = nonnullKeyValue(key, getChild(childrenQNamesToPaths.get(key))).getValue(); } return ImmutableMapTemplate.ordered(keys).instantiateWithValues(values); }
public static DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> create( final ListSchemaNode schema) { return new ImmutableMapEntryNodeSchemaAwareBuilder(schema); }
public static DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder( final ListSchemaNode schema) { return ImmutableMapEntryNodeSchemaAwareBuilder.create(schema); }
private Map<QName, Object> keyDefToPredicates(final Collection<QName> keys) { final Object[] values = new Object[keys.size()]; int offset = 0; for (QName key : keys) { values[offset++] = nonnullKeyValue(key, getChild(childrenQNamesToPaths.get(key))).getValue(); } return ImmutableMapTemplate.ordered(keys).instantiateWithValues(values); }