import com.google.common.base.MoreObjects.ToStringHelper;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
final class CollisionDomain {
- abstract class Member {
+ abstract sealed class Member {
private final Generator gen;
private List<Secondary> secondaries = List.of();
}
}
- private class Primary extends Member {
+ private sealed class Primary extends Member {
private ClassNamingStrategy strategy;
Primary(final Generator gen, final ClassNamingStrategy strategy) {
@Override
final String computeCurrentPackage() {
- return packageString(strategy.nodeIdentifier());
+ return strategy.childPackage();
}
@Override
@Override
boolean equalRoot(final Member other) {
- return other instanceof Primary && strategy.nodeIdentifier().getLocalName().equals(
- ((Primary) other).strategy.nodeIdentifier().getLocalName());
+ return other instanceof Primary primary && strategy.rootName().equals(primary.strategy.rootName());
}
}
}
}
- private abstract class Secondary extends Member {
+ private abstract sealed class Secondary extends Member {
private final String classSuffix;
- final Member classPrimary;
+ final @NonNull Member classPrimary;
Secondary(final Generator gen, final Member primary, final String classSuffix) {
super(gen);
@Override
final boolean equalRoot(final Member other) {
- if (other instanceof Secondary) {
- final Secondary sec = (Secondary) other;
- return classPrimary.equalRoot(sec.classPrimary) && classSuffix.equals(sec.classSuffix);
- }
- return false;
+ return other instanceof Secondary sec
+ && classPrimary.equalRoot(sec.classPrimary) && classSuffix.equals(sec.classSuffix);
}
}
return addMember(new LeafSecondary(memberGen, primary, classSuffix));
}
- @NonNull Member addSecondary(final RpcInputGenerator memberGen, final Member primary) {
+ @NonNull Member addSecondary(final InputGenerator memberGen, final Member primary) {
return addMember(new SuffixSecondary(memberGen, primary, BindingMapping.RPC_INPUT_SUFFIX,
memberGen.statement().argument()));
}
- @NonNull Member addSecondary(final RpcOutputGenerator memberGen, final Member primary) {
+ @NonNull Member addSecondary(final OutputGenerator memberGen, final Member primary) {
return addMember(new SuffixSecondary(memberGen, primary, BindingMapping.RPC_OUTPUT_SUFFIX,
memberGen.statement().argument()));
}
return MoreObjects.toStringHelper(this).add("gen", gen).toString();
}
- @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
- justification = "https://github.com/spotbugs/spotbugs/issues/811")
private @NonNull Member addMember(final @NonNull Member member) {
if (members.isEmpty()) {
members = new ArrayList<>();
return member;
}
- @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
- justification = "https://github.com/spotbugs/spotbugs/issues/811")
- private static @NonNull String packageString(final AbstractQName component) {
- // Replace dashes with dots, as dashes are not allowed in package names
+ // Replace dashes with dots, as dashes are not allowed in package names
+ static @NonNull String packageString(final AbstractQName component) {
return component.getLocalName().replace('-', '.');
}
}