package org.hibernate.tool.hbm2x.visitor;
import org.hibernate.mapping.Any;
import org.hibernate.mapping.Array;
import org.hibernate.mapping.Bag;
import org.hibernate.mapping.Component;
import org.hibernate.mapping.DependantValue;
import org.hibernate.mapping.IdentifierBag;
import org.hibernate.mapping.List;
import org.hibernate.mapping.ManyToOne;
import org.hibernate.mapping.Map;
import org.hibernate.mapping.OneToMany;
import org.hibernate.mapping.OneToOne;
import org.hibernate.mapping.PrimitiveArray;
import org.hibernate.mapping.Set;
import org.hibernate.mapping.SimpleValue;
import org.hibernate.mapping.Value;
import org.hibernate.mapping.ValueVisitor;
/**
* Default ValueVisitor which throws UnsupportedOperationException on all accepts.
* Can be changed by passing true to the constructor.
*
* @author max
*
*/
public class DefaultValueVisitor implements ValueVisitor {
boolean throwException = true;
/**
*
* @param throwException if true exception will be thrown, otherwise return null in accept calls.
*/
protected DefaultValueVisitor(boolean throwException) {
this.throwException = throwException;
}
protected Object handle(Value o) {
if (throwException) {
throw new UnsupportedOperationException("accept on " + o);
}
else { return null; }
}
public Object accept(Bag o){
return handle(o);
}
public Object accept(IdentifierBag o){
return handle(o);
}
public Object accept(List o){
return handle(o);
}
public Object accept(PrimitiveArray o){
return handle(o);
}
public Object accept(Array o){
return handle(o);
}
public Object accept(Map o){
return handle(o);
}
public Object accept(OneToMany o){
return handle(o);
}
public Object accept(Set o){
return handle(o);
}
public Object accept(Any o){
return handle(o);
}
public Object accept(SimpleValue o){
return handle(o);
}
public Object accept(DependantValue o){
return handle(o);
}
public Object accept(Component o){
return handle(o);
}
public Object accept(ManyToOne o){
return handle(o);
}
public Object accept(OneToOne o){
return handle(o);
}
}