package org.tests.model.basic;
import io.ebean.config.ServerConfig;
import io.ebean.event.AbstractBeanPersistListener;
import io.ebean.event.BulkTableEvent;
import io.ebean.event.BulkTableEventListener;
import io.ebean.event.ServerConfigStartup;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
public class MyEBasicConfigStartup implements ServerConfigStartup {
public static final AtomicLong insertCount = new AtomicLong();
public static final AtomicLong updateCount = new AtomicLong();
public static final AtomicLong deleteCount = new AtomicLong();
public static void resetCounters() {
insertCount.set(0);
updateCount.set(0);
deleteCount.set(0);
}
@Override
public void onStart(ServerConfig serverConfig) {
serverConfig.add(new EbasicPersistList());
serverConfig.add(new EbasicBulkListener());
}
public static class EbasicBulkListener implements BulkTableEventListener {
final Set<String> s = new HashSet<>();
EbasicBulkListener() {
s.add("e_basic");
}
@Override
public Set<String> registeredTables() {
return s;
}
@Override
public void process(BulkTableEvent bulkTableEvent) {
System.out.println("-- " + bulkTableEvent);
}
}
public static class EbasicPersistList extends AbstractBeanPersistListener {
@Override
public boolean isRegisterFor(Class<?> cls) {
return EBasic.class.isAssignableFrom(cls);
}
@Override
public void inserted(Object bean) {
insertCount.incrementAndGet();
System.out.println("-- EBasic inserted " + ((EBasic) bean).getId());
}
@Override
public void updated(Object bean, Set<String> updatedProperties) {
updateCount.incrementAndGet();
System.out.println("-- EBasic updated " + ((EBasic) bean).getId() + " updatedProperties: " + updatedProperties);
}
@Override
public void deleted(Object bean) {
deleteCount.incrementAndGet();
System.out.println("-- EBasic deleted " + ((EBasic) bean).getId());
}
}
}