package io.ebeaninternal.server.changelog;
import io.ebean.ValuePair;
import io.ebean.event.changelog.BeanChange;
import io.ebean.event.changelog.ChangeSet;
import io.ebean.event.changelog.ChangeType;
import io.ebean.event.changelog.TxnState;
import org.jetbrains.annotations.NotNull;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Helper {
public ChangeSet createChangeSet(String txnId, long startId) {
ChangeSet cs = new ChangeSet();
cs.setTxnId(txnId);
cs.setTxnState(TxnState.COMMITTED);
cs.setTxnBatch(0);
cs.setSource("myApp");
cs.setUserId("user234");
cs.setUserIpAddress("123.4.5.6");
cs.getUserContext().put("someKey", "user defined input");
List<BeanChange> changes = cs.getChanges();
changes.add(createInsert(startId));
changes.add(createUpdate(startId));
changes.add(createDelete(startId));
return cs;
}
@NotNull
private BeanChange createInsert(long startId) {
Map<String, ValuePair> values = new LinkedHashMap<>();
values.put("name", new ValuePair("rob", null));
values.put("modified", new ValuePair(new Timestamp(System.currentTimeMillis()), null));
BeanChange bean = new BeanChange("mytable", null, startId + 1, ChangeType.INSERT, null);
bean.setValues(values);
return bean;
}
@NotNull
private BeanChange createUpdate(long startId) {
Map<String, ValuePair> values = new LinkedHashMap<>();
values.put("name", new ValuePair("jim", "steve"));
values.put("nowHasVal", new ValuePair("wasNull", null));
values.put("nowNull", new ValuePair(null, "hadVal"));
values.put("modified", new ValuePair(new Timestamp(System.currentTimeMillis()), null));
BeanChange bean = new BeanChange("mytable", null, startId + 2, ChangeType.UPDATE, null);
bean.setValues(values);
return bean;
}
@NotNull
private BeanChange createDelete(long startId) {
return new BeanChange("mytable", null, startId + 3, ChangeType.DELETE, new HashMap<>());
}
}