package com.redspr.redquerybuilder.core.shared.meta;
import java.io.Serializable;
import com.google.gwt.user.client.rpc.IsSerializable;
public class Type implements HasStyleName, Serializable, IsSerializable {
private String name;
private Operator[] operators = new Operator[] {
new Operator("="),
new Operator("IS NULL", Cardinality.ZERO),
new Operator("LIKE") };
private Editor editor;
private String styleName;
// for GWT RPC
private Type() {
}
public Type(String name2) {
this(name2, new Editor.TextEditor());
}
public Type(String name2, Editor editor2) {
this.name = name2;
this.editor = editor2;
}
public Operator[] getOperators() {
return operators;
}
public void setOperators(Operator[] p) {
this.operators = p;
}
public String getName() {
return name;
}
public Editor getEditor() {
return editor;
}
public void setEditor(Editor p) {
this.editor = p;
}
public Operator getOperatorByName(String opName) {
for (Operator op : operators) {
if (opName.equals(op.getName())) {
return op;
}
}
return null;
}
public Operator getOperatorByNameOrFail(String opName) {
Operator op = getOperatorByName(opName);
if (op == null) {
throw new RuntimeException("Could not find operator '" + opName
+ "' in type '" + name + "'");
}
return op;
}
public String getStyleName() {
if (styleName == null) {
return getEditor().getStyleName();
}
return styleName;
}
@Override
public void setStyleName(String p) {
this.styleName = p;
}
}