package foundation.dao.version;
|
|
import java.util.List;
|
|
import foundation.json.IJSONWriter;
|
import foundation.util.MapList;
|
|
public class EntityChange implements IDataChange {
|
|
private String dataName;
|
private ChangeType changeType;
|
private MapList<String, FieldChange> fieldChanges;
|
|
|
public EntityChange(String dataName) {
|
this.dataName = dataName;
|
fieldChanges = new MapList<String, FieldChange>();
|
}
|
|
public void addOneFieldChange(String fieldName, ChangeType changeType, Object oneValue, Object anotherValue, String oneJSON, String anotherJSON) {
|
FieldChange change = new FieldChange(fieldName, changeType, oneValue, anotherValue, oneJSON, anotherJSON);
|
fieldChanges.add(fieldName, change);
|
}
|
|
public void setChangeType(ChangeType changeType) {
|
this.changeType = changeType;
|
}
|
|
public String getDataName() {
|
return dataName;
|
}
|
|
public ChangeType getChangeType() {
|
return changeType;
|
}
|
|
public List<FieldChange> getFieldChanges() {
|
return fieldChanges.getItemList();
|
}
|
|
public boolean isEmpty() {
|
if (!fieldChanges.isEmpty()) {
|
return false;
|
}
|
|
if (changeType != null) {
|
return false;
|
}
|
|
return true;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject(dataName);
|
|
//1. 变更类型
|
writer.write("change_type", changeType.name());
|
|
if (ChangeType.NoChange == changeType) {
|
writer.endObject();
|
return;
|
}
|
|
//2. 变更的entity
|
writer.beginArray("fields");
|
|
for (FieldChange fieldChange: fieldChanges) {
|
fieldChange.writeJSON(writer);
|
}
|
|
writer.endArray();
|
|
|
writer.endObject();
|
}
|
|
}
|