package foundation.variant.provider;
|
|
public enum DataEvent {
|
|
New, Save, Insert, Update, Delete, Commit, PulllBack, StateBack, StateEnd, toChange, toClose, Unknown;
|
|
public static DataEvent parse(String value) {
|
if (value == null) {
|
return Unknown;
|
}
|
|
value = value.toLowerCase();
|
|
if ("new".equals(value)) {
|
return New;
|
}
|
else if ("save".equals(value)) {
|
return Save;
|
}
|
else if ("insert".equals(value)) {
|
return Insert;
|
}
|
else if ("update".equals(value)) {
|
return Update;
|
}
|
else if ("delete".equals(value)) {
|
return Delete;
|
}
|
else if ("commit".equals(value)) {
|
return Commit;
|
}
|
else if ("tochange".equals(value)) {
|
return toChange;
|
}
|
else if ("toclose".equals(value)) {
|
return toClose;
|
}
|
|
return Unknown;
|
}
|
|
public boolean isCompatibleWith(DataEvent dataEvent) {
|
if (dataEvent == null) {
|
return false;
|
}
|
|
if (this == dataEvent) {
|
return true;
|
}
|
|
if ((this == Insert || this == New) && dataEvent == Commit) {
|
return true;
|
}
|
|
if (this == Insert && dataEvent == New) {
|
return true;
|
}
|
|
if (this == Save && (dataEvent == Insert || dataEvent == Update || dataEvent == Commit)) {
|
return true;
|
}
|
|
if (dataEvent == Save && (this == Insert || this == Update || this == Commit)) {
|
return true;
|
}
|
|
if (this == Update && dataEvent == Commit) {
|
return true;
|
}
|
|
return false;
|
}
|
|
}
|