Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.xtend/src/org/eclipse/xtend/XtendFacade.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/xtend/XtendFacade.java b/plugins/org.eclipse.xtend/src/org/eclipse/xtend/XtendFacade.java
index e8d9e488..3d36a8d0 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/xtend/XtendFacade.java
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/xtend/XtendFacade.java
@@ -11,6 +11,7 @@
package org.eclipse.xtend;
import java.io.StringReader;
+import java.util.List;
import java.util.Set;
import org.eclipse.internal.xtend.xtend.ast.Extension;
@@ -82,7 +83,27 @@ public class XtendFacade {
throw new IllegalArgumentException("Couldn't find extension " + ext);
return extension.evaluate(params, ctx);
}
+
+ public Object call(final String ext, List<?> params) {
+ Object[] paramsArray = new Object[params.size()];
+ paramsArray = params.toArray(paramsArray);
+ final Extension extension = ctx.getExtension(ext, paramsArray);
+ if (extension == null)
+ throw new IllegalArgumentException("Couldn't find extension " + ext);
+ return extension.evaluate(paramsArray, ctx);
+ }
+ public boolean hasExtension(final String ext, Object[] paramsArray) {
+ final Extension extension = ctx.getExtension(ext, paramsArray);
+ return extension != null;
+ }
+
+ public boolean hasExtension(final String ext, List<?> params) {
+ Object[] paramsArray = new Object[params.size()];
+ paramsArray = params.toArray(paramsArray);
+ return hasExtension(ext, paramsArray);
+ }
+
public Type analyze(final String string, Object[] objects, final Set<AnalysationIssue> issues) {
if (objects == null) {
objects = new Object[0];

Back to the top