import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Sets;
import java.util.Map.Entry;
-import java.util.Optional;
import java.util.Set;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
return null;
}
final ImmutableMap<AugmentationIdentifier, AugmentationSchemaNode> augmentations = augmentationsBuilder.build();
- final Optional<MandatoryLeafEnforcer> enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig);
- return enforcer.isPresent() ? new EnforcingMandatory(children, augmentations, enforcer.orElseThrow())
+ final var enforcer = MandatoryLeafEnforcer.forContainer(schema, treeConfig);
+ return enforcer != null ? new EnforcingMandatory(children, augmentations, enforcer)
: new CaseEnforcer(children, augmentations);
}
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
-import java.util.Optional;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
this.mandatoryNodes = requireNonNull(mandatoryNodes);
}
- static Optional<MandatoryLeafEnforcer> forContainer(final DataNodeContainer schema,
+ static @Nullable MandatoryLeafEnforcer forContainer(final DataNodeContainer schema,
final DataTreeConfiguration treeConfig) {
if (!treeConfig.isMandatoryNodesValidationEnabled()) {
- return Optional.empty();
+ return null;
}
- final Builder<MandatoryDescendant> builder = ImmutableList.builder();
- final boolean isAugmentingNode = schema instanceof CopyableNode && ((CopyableNode) schema).isAugmenting();
+ final var builder = ImmutableList.<MandatoryDescendant>builder();
+ final var isAugmentingNode = schema instanceof CopyableNode && ((CopyableNode) schema).isAugmenting();
findMandatoryNodes(builder, YangInstanceIdentifier.empty(), schema, treeConfig.getTreeType(), isAugmentingNode);
- final ImmutableList<MandatoryDescendant> mandatoryNodes = builder.build();
- return mandatoryNodes.isEmpty() ? Optional.empty() : Optional.of(new MandatoryLeafEnforcer(mandatoryNodes));
+ final var mandatoryNodes = builder.build();
+ return mandatoryNodes.isEmpty() ? null : new MandatoryLeafEnforcer(mandatoryNodes);
}
void enforceOnData(final NormalizedNode data) {
final boolean augmentedSubtree) {
for (final DataSchemaNode child : schema.getChildNodes()) {
if (SchemaAwareApplyOperation.belongsToTree(type, child)) {
- if (child instanceof ContainerSchemaNode) {
- final ContainerSchemaNode container = (ContainerSchemaNode) child;
+ if (child instanceof ContainerSchemaNode container) {
if (!container.isPresenceContainer()) {
if (!augmentedSubtree) {
// this container is not part of augmented subtree.
- final boolean parentSchemaAugmenting = schema instanceof CopyableNode
- && ((CopyableNode)schema).isAugmenting();
+ final boolean parentSchemaAugmenting = schema instanceof CopyableNode copyable
+ && copyable.isAugmenting();
if (container.isAugmenting() && !parentSchemaAugmenting) {
// the container is augmenting, but the parent schema is not. Meaning this is the root
// of the augmentation (the augmented subtree starts here). The container has to be
container, type, augmentedSubtree);
}
} else {
- boolean needEnforce = child instanceof MandatoryAware && ((MandatoryAware) child).isMandatory();
- if (!needEnforce && child instanceof ElementCountConstraintAware) {
- needEnforce = ((ElementCountConstraintAware) child).getElementCountConstraint()
+ boolean needEnforce = child instanceof MandatoryAware aware && aware.isMandatory();
+ if (!needEnforce && child instanceof ElementCountConstraintAware aware) {
+ needEnforce = aware.getElementCountConstraint()
.map(constraint -> {
final Integer min = constraint.getMinElements();
return min != null && min > 0;