import org.simantics.databoard.Bindings;
import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
+import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;
+import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.layer0.exception.PendingVariableException;
this.priority = priority;
}
+ public static ChildContribution createCached(ReadGraph g, Resource childContributionResource) throws DatabaseException, InvalidContribution {
+ try {
+ return g.syncRequest(new ResourceRead<ChildContribution>(childContributionResource) {
+ @Override
+ public ChildContribution perform(ReadGraph graph) throws DatabaseException {
+ try {
+ return create(g, resource);
+ } catch (InvalidContribution e) {
+ throw new DatabaseException(e);
+ }
+ }
+ }, TransientCacheAsyncListener.instance());
+ } catch (DatabaseException e) {
+ Throwable c = e.getCause();
+ if (c instanceof InvalidContribution)
+ throw (InvalidContribution) c;
+ throw e;
+ }
+ }
+
public static ChildContribution create(ReadGraph g, Resource childContributionResource) throws DatabaseException, InvalidContribution {
ViewpointResource vr = ViewpointResource.getInstance(g);