X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.event%2Fsrc%2Forg%2Fsimantics%2Fevent%2Futil%2FEventUtils.java;h=9f29cc7ab15da399c97a55c3485c0d0402b8b49f;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=c4b83aa994c3c3c9585b39f3a503fd28b9b95416;hpb=28418dc0f3cc153ba631c201c900b99e45fa03d1;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.event/src/org/simantics/event/util/EventUtils.java b/bundles/org.simantics.event/src/org/simantics/event/util/EventUtils.java index c4b83aa99..9f29cc7ab 100644 --- a/bundles/org.simantics.event/src/org/simantics/event/util/EventUtils.java +++ b/bundles/org.simantics.event/src/org/simantics/event/util/EventUtils.java @@ -1,72 +1,72 @@ -package org.simantics.event.util; - -import java.util.List; -import java.util.UUID; - -import org.simantics.databoard.Bindings; -import org.simantics.db.Resource; -import org.simantics.db.WriteGraph; -import org.simantics.db.common.request.PossibleTypedParent; -import org.simantics.db.exception.DatabaseException; -import org.simantics.event.ontology.EventResource; -import org.simantics.layer0.Layer0; - -public class EventUtils { - - public static final int MAX_EVENTS = 1000; - public static final int SLICE_SIZE = 64; - public static final int KEEPS_SLICES = (MAX_EVENTS / SLICE_SIZE) + 2; - public static final String MAX_SLICE_NAME = "" + (SLICE_SIZE-1); - - public static Resource createLog(WriteGraph graph) throws DatabaseException { - Layer0 L0 = Layer0.getInstance(graph); - EventResource EVENT = EventResource.getInstance(graph); - Resource log = graph.newResource(); - graph.claim(log, L0.InstanceOf, null, EVENT.EventLog); - graph.claimLiteral(log, L0.HasName, UUID.randomUUID().toString(), Bindings.STRING); - graph.claimLiteral(log, EVENT.HasModificationCounter, 0, Bindings.INTEGER); - return log; - } - - /** - * Bumps the modification counter value of the event log of the specified - * events using {@link #bumpModificationCounter(WriteGraph, Resource)}. - *

- * The code assumes that all events are from the same log. - * - * @param graph - * @param forLogOfEvents - * @throws DatabaseException - */ - public static void bumpModificationCounter(WriteGraph graph, List forLogOfEvents) throws DatabaseException { - EventResource EVENT = EventResource.getInstance(graph); - for (Resource event : forLogOfEvents) { - Resource log = graph.syncRequest(new PossibleTypedParent(event, EVENT.EventLog)); - if (log != null) { - bumpModificationCounter(graph, log); - return; - } - } - } - - /** - * Bumps the modification counter of the specified event log by 1. - * - * @param graph - * @param eventLog - * @return new modification counter value - * @throws DatabaseException - */ - public static int bumpModificationCounter(WriteGraph graph, Resource eventLog) throws DatabaseException { - EventResource EVENT = EventResource.getInstance(graph); - Resource counter = graph.getPossibleObject(eventLog, EVENT.HasModificationCounter); - if (counter != null) { - Integer c = graph.getValue(counter, Bindings.INTEGER); - c = c == null ? 1 : c+1; - graph.claimValue(counter, c, Bindings.INTEGER); - return c; - } - return 0; - } - -} +package org.simantics.event.util; + +import java.util.List; +import java.util.UUID; + +import org.simantics.databoard.Bindings; +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.PossibleTypedParent; +import org.simantics.db.exception.DatabaseException; +import org.simantics.event.ontology.EventResource; +import org.simantics.layer0.Layer0; + +public class EventUtils { + + public static final int MAX_EVENTS = 1000; + public static final int SLICE_SIZE = 64; + public static final int KEEPS_SLICES = (MAX_EVENTS / SLICE_SIZE) + 2; + public static final String MAX_SLICE_NAME = "" + (SLICE_SIZE-1); + + public static Resource createLog(WriteGraph graph) throws DatabaseException { + Layer0 L0 = Layer0.getInstance(graph); + EventResource EVENT = EventResource.getInstance(graph); + Resource log = graph.newResource(); + graph.claim(log, L0.InstanceOf, null, EVENT.EventLog); + graph.claimLiteral(log, L0.HasName, UUID.randomUUID().toString(), Bindings.STRING); + graph.claimLiteral(log, EVENT.HasModificationCounter, 0, Bindings.INTEGER); + return log; + } + + /** + * Bumps the modification counter value of the event log of the specified + * events using {@link #bumpModificationCounter(WriteGraph, Resource)}. + *

+ * The code assumes that all events are from the same log. + * + * @param graph + * @param forLogOfEvents + * @throws DatabaseException + */ + public static void bumpModificationCounter(WriteGraph graph, List forLogOfEvents) throws DatabaseException { + EventResource EVENT = EventResource.getInstance(graph); + for (Resource event : forLogOfEvents) { + Resource log = graph.syncRequest(new PossibleTypedParent(event, EVENT.EventLog)); + if (log != null) { + bumpModificationCounter(graph, log); + return; + } + } + } + + /** + * Bumps the modification counter of the specified event log by 1. + * + * @param graph + * @param eventLog + * @return new modification counter value + * @throws DatabaseException + */ + public static int bumpModificationCounter(WriteGraph graph, Resource eventLog) throws DatabaseException { + EventResource EVENT = EventResource.getInstance(graph); + Resource counter = graph.getPossibleObject(eventLog, EVENT.HasModificationCounter); + if (counter != null) { + Integer c = graph.getValue(counter, Bindings.INTEGER); + c = c == null ? 1 : c+1; + graph.claimValue(counter, c, Bindings.INTEGER); + return c; + } + return 0; + } + +}