1 package org.simantics.db.layer0.util;
\r
3 import org.simantics.db.RequestProcessor;
\r
4 import org.simantics.db.Resource;
\r
5 import org.simantics.db.common.request.AdaptValue;
\r
6 import org.simantics.db.exception.DatabaseException;
\r
7 import org.simantics.db.layer0.exception.OperationNotAllowedException;
\r
8 import org.simantics.db.request.WriteResult;
\r
9 import org.simantics.scl.runtime.function.Function;
\r
11 public class Operations {
\r
13 public static boolean isAllowed(RequestProcessor rp, Resource operation) throws DatabaseException {
\r
17 public static <T> T exec(RequestProcessor rp,
\r
18 Resource operation, Object ... parameters) throws DatabaseException, OperationNotAllowedException {
\r
19 if(!isAllowed(rp, operation))
\r
20 throw new OperationNotAllowedException();
\r
21 Object op = rp.syncRequest(new AdaptValue(operation));
\r
22 if(parameters.length > 0)
\r
23 op = ((Function)op).applyArray(parameters);
\r
24 return rp.syncRequest((WriteResult<T>)op);
\r