Ranides Atterwim 13 лет назад
Родитель
Сommit
34daf2aac9
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      src/main/java/net/ranides/assira/generic/AnyFunction.java

+ 29 - 0
src/main/java/net/ranides/assira/generic/AnyFunction.java

@@ -0,0 +1,29 @@
+/*
+ * @author Ranides Atterwim <ranides@gmail.com>
+ * @copyright Ranides Atterwim
+ * @license WTFPL
+ * @url http://ranides.net/projects/assira
+ */
+package net.ranides.assira.generic;
+
+import net.ranides.assira.text.LexicalCast;
+
+/**
+ *
+ * @author ranides
+ */
+public abstract class AnyFunction implements Function<Object, Object[]> {
+
+    public final Object call(Object... args) {
+        return apply(args);
+    }
+    
+    public final <T> T safecall(Class<T> target, Object... args) {
+        return LexicalCast.cast(apply(args), target);
+    }
+    
+    public final <T> T safecall(TypeToken<T> target, Object... args) {
+        return LexicalCast.cast(apply(args), target);
+    }
+
+}