import static java.util.Objects.requireNonNull;
import com.google.common.base.MoreObjects.ToStringHelper;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.binding.contract.StatementNamespace;
import org.opendaylight.yangtools.yang.common.AbstractQName;
@NonNullByDefault
-final class CamelCaseNamingStrategy extends AbstractNamespacedNamingStrategy {
- private final AbstractQName nodeIdentifier;
+final class CamelCaseNamingStrategy extends YangIdentifierClassNamingStrategy {
+ private final StatementNamespace namespace;
CamelCaseNamingStrategy(final StatementNamespace namespace, final AbstractQName nodeIdentifier) {
- super(namespace);
- this.nodeIdentifier = requireNonNull(nodeIdentifier);
+ super(nodeIdentifier);
+ this.namespace = requireNonNull(namespace);
+ }
+
+ StatementNamespace namespace() {
+ return namespace;
}
@Override
- AbstractQName nodeIdentifier() {
- return nodeIdentifier;
+ @NonNull ClassNamingStrategy fallback() {
+ return namespace.resistant() ? new ResistedCamelCaseNamingStrategy(this)
+ : new CamelCaseWithNamespaceNamingStrategy(this);
}
@Override
ToStringHelper addToStringAttributes(final ToStringHelper helper) {
- return super.addToStringAttributes(helper.add("localName", nodeIdentifier.getLocalName()));
+ return super.addToStringAttributes(helper).add("namespace", namespace);
}
}