com.google.inject.spi.DefaultBindingTargetVisitor Maven / Gradle / Ivy
package com.google.inject.spi;
import com.google.inject.Binding;
/**
* No-op visitor for subclassing. All interface methods simply delegate to {@link
* #visitOther(Binding)}, returning its result.
*
* @param any type to be returned by the visit method. Use {@link Void} with
* {@code return null} if no return type is needed.
*/
public abstract class DefaultBindingTargetVisitor implements BindingTargetVisitor {
/**
* Default visit implementation. Returns {@code null}.
*/
protected V visitOther(Binding extends T> binding) {
return null;
}
@Override
public V visit(InstanceBinding extends T> instanceBinding) {
return visitOther(instanceBinding);
}
@Override
public V visit(ProviderInstanceBinding extends T> providerInstanceBinding) {
return visitOther(providerInstanceBinding);
}
@Override
public V visit(ProviderKeyBinding extends T> providerKeyBinding) {
return visitOther(providerKeyBinding);
}
@Override
public V visit(LinkedKeyBinding extends T> linkedKeyBinding) {
return visitOther(linkedKeyBinding);
}
@Override
public V visit(ExposedBinding extends T> exposedBinding) {
return visitOther(exposedBinding);
}
@Override
public V visit(UntargettedBinding extends T> untargettedBinding) {
return visitOther(untargettedBinding);
}
@Override
public V visit(ConstructorBinding extends T> constructorBinding) {
return visitOther(constructorBinding);
}
@Override
public V visit(ConvertedConstantBinding extends T> convertedConstantBinding) {
return visitOther(convertedConstantBinding);
}
@Override
public V visit(ProviderBinding extends T> providerBinding) {
return visitOther(providerBinding);
}
}