import static java.util.Objects.requireNonNull;
-import com.google.common.annotations.Beta;
import com.google.common.base.MoreObjects;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.common.QName;
-@Beta
+/**
+ * Definition of an argument to a YANG statement.
+ */
public abstract sealed class ArgumentDefinition implements Immutable {
private static final class YinAttribute extends ArgumentDefinition {
YinAttribute(final QName argumentName) {
return argumentName == null ? Optional.empty() : Optional.of(of(argumentName, yinElement));
}
- public final @NonNull QName getArgumentName() {
+ public final @NonNull QName argumentName() {
return argumentName;
}
@Override
public final boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (!(obj instanceof ArgumentDefinition)) {
- return false;
- }
- final ArgumentDefinition other = (ArgumentDefinition) obj;
- return isYinElement() == other.isYinElement() && argumentName.equals(other.argumentName);
+ return this == obj || obj instanceof ArgumentDefinition other && isYinElement() == other.isYinElement()
+ && argumentName.equals(other.argumentName);
}
@Override
public final String toString() {
- return MoreObjects.toStringHelper(ArgumentDefinition.class).add("argumentName", argumentName)
- .add("yinElement", isYinElement()).toString();
+ return MoreObjects.toStringHelper(ArgumentDefinition.class)
+ .add("argumentName", argumentName)
+ .add("yinElement", isYinElement())
+ .toString();
}
}
final ArgumentDefinition arg = def.getArgumentDefinition().get();
events.add(eventFactory.createStartElement(XMLConstants.DEFAULT_NS_PREFIX, name.getNamespace().toString(),
- name.getLocalName(), singletonIterator(attribute(arg.getArgumentName(), root.rawArgument())),
+ name.getLocalName(), singletonIterator(attribute(arg.argumentName(), root.rawArgument())),
transform(namespaceContext.prefixesAndNamespaces().entrySet().iterator(),
e -> eventFactory.createNamespace(e.getKey(), e.getValue())),
namespaceContext));
final var optArgDef = def.getArgumentDefinition();
if (optArgDef.isPresent()) {
final var argDef = optArgDef.orElseThrow();
- final var argName = argDef.getArgumentName();
+ final var argName = argDef.argumentName();
if (argDef.isYinElement()) {
events.addAll(Arrays.asList(startElement(name), startElement(argName),
eventFactory.createCharacters(statement.rawArgument()), endElement(argName)));
final Optional<ArgumentDefinition> optArgDef = def.getArgumentDefinition();
if (optArgDef.isPresent()) {
final ArgumentDefinition argDef = optArgDef.get();
- argName = argDef.getArgumentName();
+ argName = argDef.argumentName();
allAttrs = argDef.isYinElement();
allElements = !allAttrs;
} else {
final Optional<ArgumentDefinition> optArgDef = def.getArgumentDefinition();
if (optArgDef.isPresent()) {
final ArgumentDefinition argDef = optArgDef.get();
- argName = argDef.getArgumentName();
+ argName = argDef.argumentName();
allAttrs = argDef.isYinElement();
allElements = !allAttrs;
final Optional<ArgumentDefinition> optArgDef = childDef.getArgumentDefinition();
if (optArgDef.isPresent()) {
final ArgumentDefinition argDef = optArgDef.orElseThrow();
- def = new ModelDefinedStatementDefinition(statementName, argDef.getArgumentName(), argDef.isYinElement());
+ def = new ModelDefinedStatementDefinition(statementName, argDef.argumentName(), argDef.isYinElement());
} else {
def = new ModelDefinedStatementDefinition(statementName);
}
throw new InferenceException(stmt, "Attempted to instantiate unrecognized effective statement %s",
stmt.publicDefinition());
}
-}
\ No newline at end of file
+}
final UnrecognizedStatement extensionUse = unknownNodes.iterator().next();
assertEquals(extensionDefinition.getQName(), extensionUse.statementDefinition().getStatementName());
assertEquals(extensionDefinition.getArgument(), extensionUse.statementDefinition().getArgumentDefinition()
- .orElseThrow().getArgumentName().getLocalName());
+ .orElseThrow().argumentName().getLocalName());
assertEquals("key:value", extensionUse.argument());
}
}
public final @Nullable QName argumentName() {
- return publicDefinition.getArgumentDefinition().map(ArgumentDefinition::getArgumentName).orElse(null);
+ return publicDefinition.getArgumentDefinition().map(ArgumentDefinition::argumentName).orElse(null);
}
public final @NonNull Optional<ArgumentDefinition> getArgumentDefinition() {
private static final Logger LOG = LoggerFactory.getLogger(YinDomSchemaSource.class);
private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance();
private static final QName REVISION_STMT = REVISION.getStatementName();
- private static final String MODULE_ARG = MODULE.getArgumentDefinition().get().getArgumentName().getLocalName();
- private static final String REVISION_ARG = REVISION.getArgumentDefinition().get().getArgumentName().getLocalName();
+ private static final String MODULE_ARG = MODULE.getArgumentDefinition().orElseThrow()
+ .argumentName().getLocalName();
+ private static final String REVISION_ARG = REVISION.getArgumentDefinition().orElseThrow()
+ .argumentName().getLocalName();
YinDomSchemaSource() {
// Prevent outside instantiation