package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
final YangInstanceIdentifier.NodeIdentifierWithPredicates nodeId) {
checkListKey(childNode, keyQName, nodeId);
- Object expectedValue = nodeId.getKeyValues().get(keyQName);
- Object actualValue = childNode.getValue();
+ final Object expected = nodeId.getKeyValues().get(keyQName);
+ final Object actual = childNode.getValue();
+ if (!Objects.equals(expected, actual)) {
+ throw new IllegalListKeyException(keyQName, nodeId, actual, expected);
+ }
}
public static void checkListKey(final DataContainerChild<?, ?> childNode, final QName keyQName, final YangInstanceIdentifier.NodeIdentifierWithPredicates nodeId) {
}
}
- static final class IllegalChildException extends DataValidationException {
+ private static final class IllegalChildException extends DataValidationException {
private static final long serialVersionUID = 1L;
- public IllegalChildException(final YangInstanceIdentifier.PathArgument child, final DataNodeContainer schema,
+ private IllegalChildException(final YangInstanceIdentifier.PathArgument child, final DataNodeContainer schema,
final Set<QName> childNodes, final Set<YangInstanceIdentifier.AugmentationIdentifier> augments) {
super(String.format("Unknown child node: %s, does not belong to: %s as a direct child. "
+ "Direct child nodes: %s, augmented child nodes: %s", child, schema, childNodes, augments));
}
- public IllegalChildException(final YangInstanceIdentifier.PathArgument child, final ChoiceNode schema) {
+ private IllegalChildException(final YangInstanceIdentifier.PathArgument child, final ChoiceNode schema) {
super(String.format("Unknown child node: %s, not detected in choice: %s", child, schema));
}
- public IllegalChildException(final YangInstanceIdentifier.PathArgument child, final DataSchemaNode schema, final Set<QName> childNodes) {
+ private IllegalChildException(final YangInstanceIdentifier.PathArgument child, final DataSchemaNode schema, final Set<QName> childNodes) {
super(String.format("Unknown child node: %s, does not belong to: %s as a child. "
+ "Child nodes: %s", child, schema, childNodes));
}
}
- static final class IllegalListKeyException extends DataValidationException {
+ private static final class IllegalListKeyException extends DataValidationException {
private static final long serialVersionUID = 1L;
- public IllegalListKeyException(final QName keyQName, final YangInstanceIdentifier.NodeIdentifierWithPredicates id) {
+ private IllegalListKeyException(final QName keyQName, final YangInstanceIdentifier.NodeIdentifierWithPredicates id) {
super(String.format("Key value not present for key: %s, in: %s", keyQName, id));
}
- public IllegalListKeyException(final QName keyQName, final YangInstanceIdentifier.NodeIdentifierWithPredicates id, final Object actualValue, final Object expectedValue) {
+ private IllegalListKeyException(final QName keyQName, final YangInstanceIdentifier.NodeIdentifierWithPredicates id, final Object actualValue, final Object expectedValue) {
super(String.format("Illegal value for key: %s, in: %s, actual value: %s, expected value from key: %s", keyQName, id, actualValue, expectedValue));
}
}