X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.common%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fcommon%2Futils%2FFunctions.java;h=3bcd3417e582e8c40807343428d407de8fcdf627;hb=159d04234f7fbf7554910a154b29a5dd7bbc6068;hp=8e83ba7820bbf570ee727d4fad278a97180b7653;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Functions.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Functions.java index 8e83ba782..3bcd3417e 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Functions.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Functions.java @@ -1,33 +1,33 @@ -package org.simantics.db.common.utils; - -import java.lang.reflect.InvocationTargetException; - -import org.simantics.db.RequestProcessor; -import org.simantics.db.Resource; -import org.simantics.db.common.request.AdaptValue; -import org.simantics.db.exception.DatabaseException; -import org.simantics.scl.runtime.function.Function; - -public class Functions { - - private static DatabaseException findPossibleRootException(Throwable t) { - if(t == null) return null; - if(t instanceof DatabaseException) return (DatabaseException)t; - if(t instanceof RuntimeException || t instanceof InvocationTargetException) { - return findPossibleRootException(t.getCause()); - } - return null; - } - - public static T exec(RequestProcessor rp, Resource function, Object ... parameters) throws DatabaseException { - Object op = rp.syncRequest(new AdaptValue(function)); - try { - return (T) ((Function)op).applyArray(parameters); - } catch (RuntimeException e) { - DatabaseException dte = findPossibleRootException(e); - if(dte != null) throw dte; - else throw new DatabaseException(e); - } - } - -} +package org.simantics.db.common.utils; + +import java.lang.reflect.InvocationTargetException; + +import org.simantics.db.RequestProcessor; +import org.simantics.db.Resource; +import org.simantics.db.common.request.AdaptValue; +import org.simantics.db.exception.DatabaseException; +import org.simantics.scl.runtime.function.Function; + +public class Functions { + + private static DatabaseException findPossibleRootException(Throwable t) { + if(t == null) return null; + if(t instanceof DatabaseException) return (DatabaseException)t; + if(t instanceof RuntimeException || t instanceof InvocationTargetException) { + return findPossibleRootException(t.getCause()); + } + return null; + } + + public static T exec(RequestProcessor rp, Resource function, Object ... parameters) throws DatabaseException { + Object op = rp.syncRequest(new AdaptValue(function)); + try { + return (T) ((Function)op).applyArray(parameters); + } catch (RuntimeException e) { + DatabaseException dte = findPossibleRootException(e); + if(dte != null) throw dte; + else throw new DatabaseException(e); + } + } + +}