org.jsimpledb.change.ObjectCreate Maven / Gradle / Ivy
Show all versions of jsimpledb-main Show documentation
/*
* Copyright (C) 2015 Archie L. Cobbs. All rights reserved.
*/
package org.jsimpledb.change;
import org.jsimpledb.JObject;
import org.jsimpledb.JTransaction;
/**
* Change notification that indicates a new object has been created.
*
*
* This type of change notification is never generated by JSimpleDB itself; object creation notifications are instead
* delivered to {@link org.jsimpledb.annotation.OnCreate @OnCreate} methods, which do not take any parameters.
* This class exists as a convenience for application code that may want to unify handling of
* object change and object lifecycle events.
*
* @param the type of the object that was created
*/
public class ObjectCreate extends Change {
/**
* Constructor.
*
* @param jobj Java model object that was created
* @throws IllegalArgumentException if {@code jobj} is null
*/
public ObjectCreate(T jobj) {
super(jobj);
}
@Override
public R visit(ChangeSwitch target) {
return target.caseObjectCreate(this);
}
@Override
public void apply(JTransaction jtx, JObject jobj) {
jtx.recreate(jobj);
}
// Object
@Override
public String toString() {
return "ObjectCreate[object=" + this.getObject() + "]";
}
}