return domain.addPrimary(this, new CamelCaseNamingStrategy(StatementNamespace.DEFAULT, explicitIdentifier));
}
- final AbstractCompositeGenerator<?> target = targetGenerator();
- final String ref = target.localName().getLocalName();
+ final Member target = targetGenerator().getMember();
int offset = 1;
for (Generator gen : getParent()) {
if (gen == this) {
break;
}
if (gen instanceof AbstractAugmentGenerator
- && ref.equals(((AbstractAugmentGenerator) gen).targetGenerator().localName().getLocalName())) {
+ && target.equalRoot(((AbstractAugmentGenerator) gen).targetGenerator().getMember())) {
offset++;
}
}
- return domain.addSecondary(this, target.getMember(), String.valueOf(offset), statement().argument());
+ return domain.addSecondary(this, target, String.valueOf(offset), statement().argument());
}
@Override
return currentPackage;
}
+ abstract boolean equalRoot(@NonNull Member other);
+
abstract String computeCurrentClass();
abstract String computeCurrentPackage();
return packageString(strategy.nodeIdentifier());
}
-
@Override
final boolean signalConflict() {
final ClassNamingStrategy newStrategy = strategy.fallback();
final ToStringHelper addToStringAttributes(final ToStringHelper helper) {
return super.addToStringAttributes(helper.add("strategy", strategy));
}
+
+ @Override
+ boolean equalRoot(final Member other) {
+ return other instanceof Primary && strategy.nodeIdentifier().getLocalName().equals(
+ ((Primary) other).strategy.nodeIdentifier().getLocalName());
+ }
}
private final class Prefix extends Primary {
final void primaryConflict() {
super.signalConflict();
}
+
+ @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;
+ }
}
private final class LeafSecondary extends Secondary {