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; } }