Pārlūkot izejas kodu

critical change: IExecutable & BeanMethod invocation

refactoring: rename methods in IExecutable:
invoke, apply, call INSTEAD OF apply, call, callThis

refactoring: rename methods in BeanMethod:
invoke, apply, call INSTEAD OF apply/-/-
Ranides Atterwim 6 gadi atpakaļ
vecāks
revīzija
ea3562651d
22 mainītis faili ar 168 papildinājumiem un 109 dzēšanām
  1. 8 8
      assira/src/main/java/net/ranides/assira/collection/maps/Key.java
  2. 1 1
      assira/src/main/java/net/ranides/assira/credentials/PWDBStore.java
  3. 7 3
      assira/src/main/java/net/ranides/assira/reflection/BeanMethod.java
  4. 1 0
      assira/src/main/java/net/ranides/assira/reflection/IClasses.java
  5. 14 12
      assira/src/main/java/net/ranides/assira/reflection/IExecutable.java
  6. 14 0
      assira/src/main/java/net/ranides/assira/reflection/impl/AClasses.java
  7. 6 1
      assira/src/main/java/net/ranides/assira/reflection/impl/AExecutable.java
  8. 3 3
      assira/src/main/java/net/ranides/assira/reflection/impl/LMethod.java
  9. 3 3
      assira/src/main/java/net/ranides/assira/reflection/impl/RConstructor.java
  10. 3 3
      assira/src/main/java/net/ranides/assira/reflection/impl/RMethod.java
  11. 13 3
      assira/src/main/java/net/ranides/assira/reflection/impl/bean/RBeanMethod.java
  12. 27 4
      assira/src/main/java/net/ranides/assira/reflection/impl/bean/RBeanMethods.java
  13. 3 3
      assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPArray.java
  14. 2 2
      assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPField.java
  15. 2 2
      assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPIndexed.java
  16. 2 2
      assira/src/main/java/net/ranides/assira/reflection/util/AnnotationUtils.java
  17. 22 22
      assira/src/test/java/net/ranides/assira/reflection/IMethodTest.java
  18. 1 1
      assira/src/test/java/net/ranides/assira/reflection/IMethodsTest.java
  19. 2 2
      assira/src/test/java/net/ranides/assira/reflection/impl/AMethodTest.java
  20. 6 6
      assira/src/test/java/net/ranides/assira/reflection/impl/RConstructorTest.java
  21. 10 10
      assira/src/test/java/net/ranides/assira/reflection/impl/RMethodTest.java
  22. 18 18
      assira/src/test/java/net/ranides/assira/reflection/impl/bean/RBeanModelTest.java

+ 8 - 8
assira/src/main/java/net/ranides/assira/collection/maps/Key.java

@@ -70,34 +70,34 @@ public class Key<K,V> implements Function<Map<K,? extends V>,V> {
 
     public Entry<K,V> entry(Map<K, V> map) {
         if(map instanceof TreeMap) {
-            return EntryAccess.TREE.$apply(map, mkey);
+            return EntryAccess.TREE.$invoke(map, mkey);
         }
         if(EntryAccess.CS_TREE_SUBMAP.isInstance(map)) {
             Object treemap = EntryAccess.TREE_FIELD.get(map);
-            return EntryAccess.TREE.$apply(treemap, mkey);
+            return EntryAccess.TREE.$invoke(treemap, mkey);
         }
         if(map instanceof HashMap) {
-            return EntryAccess.HASH.$apply(map, mkey);
+            return EntryAccess.HASH.$invoke(map, mkey);
         }
         if(map instanceof WeakHashMap) {
-            return EntryAccess.WEAK.$apply(map, mkey);
+            return EntryAccess.WEAK.$invoke(map, mkey);
         }
         return new DVEntry<>(itype, mkey, map);
     }
     
     public Wrapper<V> wrapper(Map<K, V> map) {
         if(map instanceof TreeMap) {
-            return new DVWrapper<>(itype, EntryAccess.TREE.$apply(map, mkey));
+            return new DVWrapper<>(itype, EntryAccess.TREE.$invoke(map, mkey));
         }
         if(EntryAccess.CS_TREE_SUBMAP.isInstance(map)) {
             Object treemap = EntryAccess.TREE_FIELD.get(map);
-            return new DVWrapper<>(itype, EntryAccess.TREE.$apply(treemap, mkey));
+            return new DVWrapper<>(itype, EntryAccess.TREE.$invoke(treemap, mkey));
         }
         if(map instanceof HashMap) {
-            return new DVWrapper<>(itype, EntryAccess.HASH.$apply(map, mkey));
+            return new DVWrapper<>(itype, EntryAccess.HASH.$invoke(map, mkey));
         }
         if(map instanceof WeakHashMap) {
-            return new DVWrapper<>(itype, EntryAccess.WEAK.$apply(map, mkey));
+            return new DVWrapper<>(itype, EntryAccess.WEAK.$invoke(map, mkey));
         }
         return new DVEntry<>(itype, mkey, map);
     }

+ 1 - 1
assira/src/main/java/net/ranides/assira/credentials/PWDBStore.java

@@ -96,7 +96,7 @@ public class PWDBStore implements UserStore {
         }
 
         private static Function<Entry, Object> getMethod(IClass<Entry> im, String name) {
-            return im.method(name).get()::apply;
+            return im.method(name).get()::invoke;
         }
 
         private static Function<Entry, Predicate<URI>> getPredicateURI(IClass<Entry> im) {

+ 7 - 3
assira/src/main/java/net/ranides/assira/reflection/BeanMethod.java

@@ -18,10 +18,14 @@ public interface BeanMethod {
     String name();
         
     VarFunction<Object> bind(Object that);
-
-    Object apply(Object that);
     
-    Object apply(Object that, Object... arguments);
+    Object invoke(Object that);
+    
+    Object invoke(Object that, Object... arguments);
+    
+    Object call(Object... arguments);
+
+    Object apply(Object that, Object[] arguments);
     
     boolean matches(IClasses arguments);
     

+ 1 - 0
assira/src/main/java/net/ranides/assira/reflection/IClasses.java

@@ -94,5 +94,6 @@ public interface IClasses extends IElements<IClass<?>> {
 	
     boolean isInstance(Object... values);
 
+    boolean $isInstance1(Object... values);
             
 }

+ 14 - 12
assira/src/main/java/net/ranides/assira/reflection/IExecutable.java

@@ -37,30 +37,32 @@ public interface IExecutable extends IElement {
     boolean matches();
     
     boolean accepts(Object... arguments);
+    
+    boolean $accepts1(Object... arguments);
 
-    Object apply();
+    Object invoke();
     
-    Object apply(Object that);
+    Object invoke(Object that);
     
-    Object apply(Object that, Object... arguments);
+    Object invoke(Object that, Object... arguments);
 
     Object call(Object... arguments);
     
-    Object callThis(Object that, Object... arguments);
+    Object apply(Object that, Object[] arguments);
     
     @SuppressWarnings("unchecked")
-    default <T> T $apply() {
-        return (T)apply();
+    default <T> T $invoke() {
+        return (T)invoke();
     }
     
     @SuppressWarnings("unchecked")
-    default <T> T $apply(Object that) {
-        return (T)IExecutable.this.apply(that);
+    default <T> T $invoke(Object that) {
+        return (T)invoke(that);
     }
     
     @SuppressWarnings("unchecked")
-    default <T> T $apply(Object that, Object... arguments) {
-        return (T)IExecutable.this.apply(that, arguments);
+    default <T> T $invoke(Object that, Object... arguments) {
+        return (T)invoke(that, arguments);
     }
 
     @SuppressWarnings("unchecked")
@@ -69,8 +71,8 @@ public interface IExecutable extends IElement {
     }
     
     @SuppressWarnings("unchecked")
-    default <T> T $callThis(Object that, Object... arguments) {
-        return (T)callThis(that, arguments);
+    default <T> T $apply(Object that, Object... arguments) {
+        return (T)apply(that, arguments);
     }
     
     VarFunction<Object> bind(Object that);

+ 14 - 0
assira/src/main/java/net/ranides/assira/reflection/impl/AClasses.java

@@ -183,4 +183,18 @@ public final class AClasses extends AElements<IClass<?>> implements IClasses {
         return true;
     }
     
+    @Override
+    public boolean $isInstance1(Object... values) {
+        if (this.count() != (values.length-1)) {
+            return false;
+        }
+        int i = 1;
+        for (IClass<?> type : this) {
+            if (!type.isInstance(values[i++])) {
+                return false;
+            }
+        }
+        return true;
+    }
+    
 }

+ 6 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/AExecutable.java

@@ -75,6 +75,11 @@ public abstract class AExecutable implements IExecutable {
     public final boolean accepts(Object... arguments) {
         return this.arguments().types().isInstance(arguments);
     }
+    
+    @Override
+    public final boolean $accepts1(Object... arguments) {
+        return this.arguments().types().$isInstance1(arguments);
+    }
 
 	@Override
 	public VarFunction<Object> bind(Object that) {
@@ -89,7 +94,7 @@ public abstract class AExecutable implements IExecutable {
 	}
     
     @Override
-    public Object callThis(Object that, Object... arguments) {
+    public Object apply(Object that, Object... arguments) {
         return call(ArrayUtils.prepend(arguments, that));
     }
 

+ 3 - 3
assira/src/main/java/net/ranides/assira/reflection/impl/LMethod.java

@@ -76,18 +76,18 @@ public final class LMethod extends AMethod implements IMethod {
 	}
 
 	@Override
-	public Object apply() {
+	public Object invoke() {
         return call();
 	}
 
 	@Override
-	public Object apply(Object that) {
+	public Object invoke(Object that) {
         check(that);
         return call();
 	}
 
 	@Override
-	public Object apply(Object that, Object... arguments) {
+	public Object invoke(Object that, Object... arguments) {
         check(that);
         return call(arguments);
 	}

+ 3 - 3
assira/src/main/java/net/ranides/assira/reflection/impl/RConstructor.java

@@ -76,12 +76,12 @@ public final class RConstructor<T> extends AConstructor<T> {
 	}
 
 	@Override
-	public Object apply() {
+	public Object invoke() {
 		return MethodUtils.invoke(method);
 	}
 
 	@Override
-	public Object apply(Object that) {
+	public Object invoke(Object that) {
         if(that != null) {
             throw new IllegalArgumentException("constructors doesn't support 'this'");
         }
@@ -89,7 +89,7 @@ public final class RConstructor<T> extends AConstructor<T> {
 	}
 
 	@Override
-	public Object apply(Object that, Object... arguments) {
+	public Object invoke(Object that, Object... arguments) {
         if(that != null) {
             throw new IllegalArgumentException("constructors doesn't support 'this'");
         }

+ 3 - 3
assira/src/main/java/net/ranides/assira/reflection/impl/RMethod.java

@@ -75,17 +75,17 @@ public class RMethod extends AMethod implements IMethod {
 	}
 
 	@Override
-	public Object apply() {
+	public Object invoke() {
 		return MethodUtils.invoke(method, null);
 	}
 
 	@Override
-	public Object apply(Object that) {
+	public Object invoke(Object that) {
 		return MethodUtils.invoke(method, that);
 	}
 
 	@Override
-	public Object apply(Object that, Object... arguments) {
+	public Object invoke(Object that, Object... arguments) {
 		return MethodUtils.invoke(method, that, arguments);
 	}
 

+ 13 - 3
assira/src/main/java/net/ranides/assira/reflection/impl/bean/RBeanMethod.java

@@ -37,14 +37,24 @@ public class RBeanMethod implements BeanMethod {
         }
         return method.bind(that);
     }
+    
+    @Override
+    public Object invoke(Object that) {
+        return method.invoke(that);
+    }
+
+    @Override
+    public Object invoke(Object that, Object... arguments) {
+        return method.invoke(that, arguments);
+    }
 
     @Override
-    public Object apply(Object that) {
-        return method.apply(that);
+    public Object call(Object... arguments) {
+        return method.call(arguments);
     }
 
     @Override
-    public Object apply(Object that, Object... arguments) {
+    public Object apply(Object that, Object[] arguments) {
         return method.apply(that, arguments);
     }
     

+ 27 - 4
assira/src/main/java/net/ranides/assira/reflection/impl/bean/RBeanMethods.java

@@ -8,6 +8,7 @@
 package net.ranides.assira.reflection.impl.bean;
 
 import java.util.Collection;
+import net.ranides.assira.collection.arrays.ArrayUtils;
 import net.ranides.assira.functional.VarFunction;
 import net.ranides.assira.reflection.BeanMethod;
 import net.ranides.assira.reflection.IClasses;
@@ -35,28 +36,50 @@ public class RBeanMethods implements BeanMethod {
         if(null == that) {
             throw new IllegalArgumentException("non-static method requires non-null 'this'");
         }
-        return (arguments) -> apply(that, arguments);
+        return (arguments) -> invoke(that, arguments);
     }
 
     @Override
-    public Object apply(Object that) {
+    public Object invoke(Object that) {
         for(IMethod m : methods) {
             if(m.arguments().isEmpty()) {
-                return m.apply(that);
+                return m.invoke(that);
             }
         }
         throw new RuntimeException("method " + name() + " can't be invoked with no arguments.");
     }
 
     @Override
-    public Object apply(Object that, Object... arguments) {
+    public Object invoke(Object that, Object... arguments) {
         for(IMethod m : methods) {
             if(m.accepts(arguments)) {
+                return m.invoke(that, arguments);
+            }
+        }
+        throw new RuntimeException("method " + name() + " can't be invoked with passed arguments.");
+    }
+
+    @Override
+    public Object call(Object... arguments) {
+        for (IMethod m : methods) {
+            if (m.$accepts1(arguments)) {
+                return m.call(arguments);
+            }
+        }
+        throw new RuntimeException("method " + name() + " can't be invoked with passed arguments.");
+    }
+
+    @Override
+    public Object apply(Object that, Object[] arguments) {
+        for (IMethod m : methods) {
+            if (m.accepts(arguments)) {
                 return m.apply(that, arguments);
             }
         }
         throw new RuntimeException("method " + name() + " can't be invoked with passed arguments.");
     }
+    
+    
 
     @Override
     public boolean matches(IClasses arguments) {

+ 3 - 3
assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPArray.java

@@ -71,19 +71,19 @@ public class RPArray extends ABeanProperty {
     public void set(Object that, Object value) {
         checkWA();
         if(null == value) {
-            vsetter.apply(that, new Object[]{null});
+            vsetter.invoke(that, new Object[]{null});
         } else {
             List<?> source = (List<?>)value;
             NativeArray target = NativeArray.allocate(component, source.size());
             NativeArrayUtils.collect(source.iterator(), target);
-            vsetter.apply(that, new Object[]{target.$array()});
+            vsetter.invoke(that, new Object[]{target.$array()});
         }
     }
 
     @Override
     public Object get(Object that) {
         checkRA();
-        Object array = vgetter.apply(that);
+        Object array = vgetter.invoke(that);
         return array!=null ? new ArrayWrapper(this, that, array) : null;
     }
 

+ 2 - 2
assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPField.java

@@ -29,7 +29,7 @@ public class RPField extends ABeanProperty {
         if(null == setter) {
             throw new UnsupportedOperationException("Property " + name() + " is read-only");
         }
-        setter.apply(that, value);
+        setter.invoke(that, value);
     }
 
     @Override
@@ -37,7 +37,7 @@ public class RPField extends ABeanProperty {
         if(null == getter) {
             throw new UnsupportedOperationException("Property " + name() + " is write-only");
         }
-        return getter.apply(that);
+        return getter.invoke(that);
     }
 
     @Override

+ 2 - 2
assira/src/main/java/net/ranides/assira/reflection/impl/bean/RPIndexed.java

@@ -63,13 +63,13 @@ public class RPIndexed extends ABeanProperty {
     @Override
     public void set(Object that, Object value) {
         checkWA();
-        vsetter.apply(that, value);
+        vsetter.invoke(that, value);
     }
 
     @Override
     public Object get(Object that) {
         checkRA();
-        Object list = vgetter.apply(that);
+        Object list = vgetter.invoke(that);
         return list!=null ? new ListWrapper(this, that, list) : null;
     }
 

+ 2 - 2
assira/src/main/java/net/ranides/assira/reflection/util/AnnotationUtils.java

@@ -75,13 +75,13 @@ public final class AnnotationUtils {
             if(!type.isInstance(a) || !type.isInstance(b)) {
                 return false;
             }
-            return methods.stream().allMatch(m -> CompareUtils.equals(m.apply(a), m.apply(b)));
+            return methods.stream().allMatch(m -> CompareUtils.equals(m.invoke(a), m.invoke(b)));
         }
         
         public int hashcode(Object object) {
             int hc = 0;
             for(IMethod m : methods) {
-                hc += 127*m.name().hashCode() ^ HashUtils.hash(m.apply(object));
+                hc += 127*m.name().hashCode() ^ HashUtils.hash(m.invoke(object));
             }
             return hc;
         }

+ 22 - 22
assira/src/test/java/net/ranides/assira/reflection/IMethodTest.java

@@ -165,15 +165,15 @@ public class IMethodTest {
         IMethod m11 = IMethod.function(pass1((Integer a) -> 3*a));
         
         assertEquals(24, m21.call(8));
-        assertEquals(24, m21.apply(null, 8));
+        assertEquals(24, m21.invoke(null, 8));
         assertThrows(IllegalArgumentException.class, ()->{
-            m21.apply(m21, 8);
+            m21.invoke(m21, 8);
         });
         
         assertEquals(24, m11.call(8));
-        assertEquals(24, m11.apply(null, 8));
+        assertEquals(24, m11.invoke(null, 8));
         assertThrows(IllegalArgumentException.class, ()->{
-            m21.apply(m11, 8);
+            m21.invoke(m11, 8);
         });
         
     }
@@ -291,30 +291,30 @@ public class IMethodTest {
         
         // call
         assertEquals('e', m1.call("hello!"));
-        assertEquals('e', m1.apply(null, "hello!"));
+        assertEquals('e', m1.invoke(null, "hello!"));
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(new Object(), "hello!");
+            m1.invoke(new Object(), "hello!");
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(new Object());
+            m1.invoke(new Object());
         });
         assertThrows(ClassCastException.class, ()->{
             m1.call(888);
         });
         
         assertEquals('r', m2.call("world!"));
-        assertEquals('r', m2.apply(null, "world!"));
+        assertEquals('r', m2.invoke(null, "world!"));
         
         assertEquals('o', m3.call("hello!", 4.1f));
-        assertEquals('o', m3.apply(null, "hello!", 4.1f));
+        assertEquals('o', m3.invoke(null, "hello!", 4.1f));
         
         assertEquals('z', m4.call());
-        assertEquals('z', m4.apply());
-        assertEquals('z', m4.apply(null));
+        assertEquals('z', m4.invoke());
+        assertEquals('z', m4.invoke(null));
         
         assertEquals(null, m5.call());
-        assertEquals(null, m5.apply());
-        assertEquals(null, m5.apply(null));
+        assertEquals(null, m5.invoke());
+        assertEquals(null, m5.invoke(null));
     }
     
     private void testFunctorCall(Object function1, Object function2, Object function3, Object function4, Object function5) {
@@ -326,35 +326,35 @@ public class IMethodTest {
         
         // call
         assertEquals('e', m1.call("hello!"));
-        assertEquals('e', m1.apply(function1, "hello!"));
+        assertEquals('e', m1.invoke(function1, "hello!"));
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(new Object(), "hello!");
+            m1.invoke(new Object(), "hello!");
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(new Object());
+            m1.invoke(new Object());
         });
         assertThrows(ClassCastException.class, ()->{
             m1.call(888);
         });
         
         assertEquals('r', m2.call("world!"));
-        assertEquals('r', m2.apply(function2, "world!"));
+        assertEquals('r', m2.invoke(function2, "world!"));
         
         assertEquals('o', m3.call("hello!", 4.1f));
-        assertEquals('o', m3.apply(function3, "hello!", 4.1f));
+        assertEquals('o', m3.invoke(function3, "hello!", 4.1f));
         
         assertEquals('z', m4.call());
         assertThrows(IllegalArgumentException.class, ()->{
-            m4.apply();
+            m4.invoke();
         });
         
-        assertEquals('z', m4.apply(function4));
+        assertEquals('z', m4.invoke(function4));
         
         assertEquals(null, m5.call());
         assertThrows(IllegalArgumentException.class, ()->{
-            m5.apply();
+            m5.invoke();
         });
-        assertEquals(null, m5.apply(function5));
+        assertEquals(null, m5.invoke(function5));
     }
     
     private <T,R> void assertFunction0(Function<T,R> function, IClass<?> ret, IClass<?>... args) {

+ 1 - 1
assira/src/test/java/net/ranides/assira/reflection/IMethodsTest.java

@@ -38,7 +38,7 @@ public class IMethodsTest {
 
         ForMethodUtils.MCP<?> mcp = new ForMethodUtils.MCP<>();        
         assertEquals(777, m.first().get().call(mcp));
-        assertEquals(444, m.list().get(1).apply(mcp));
+        assertEquals(444, m.list().get(1).invoke(mcp));
     }
     
 }

+ 2 - 2
assira/src/test/java/net/ranides/assira/reflection/impl/AMethodTest.java

@@ -26,8 +26,8 @@ public class AMethodTest {
         VarFunction<?> m1 = m0.bind(a1);
         VarFunction<?> m2 = m0.bind(a2);
         
-        assertEquals(35, m0.apply(a1, 7));
-        assertEquals(6, m0.apply(a2, 3));
+        assertEquals(35, m0.invoke(a1, 7));
+        assertEquals(6, m0.invoke(a2, 3));
         
         assertEquals(20, m1.call(4));
         assertEquals(10, m2.call(5));

+ 6 - 6
assira/src/test/java/net/ranides/assira/reflection/impl/RConstructorTest.java

@@ -70,18 +70,18 @@ public class RConstructorTest {
         IConstructor<?> c2 = ic.constructors().require(2).first().get();
         IConstructor<?> c3 = ic.constructors().require(3).first().get();
 
-        assertEquals("Record{0:0:0}", c1.apply().toString());
-        assertEquals("Record{0:0:0}", c1.apply(null).toString());
+        assertEquals("Record{0:0:0}", c1.invoke().toString());
+        assertEquals("Record{0:0:0}", c1.invoke(null).toString());
         assertThrows(IllegalArgumentException.class, ()->{
-            c1.apply(that);
+            c1.invoke(that);
         });
         
-        assertEquals("Record{5:6:11}", c2.apply(null, 5.1, 6.4).toString());
+        assertEquals("Record{5:6:11}", c2.invoke(null, 5.1, 6.4).toString());
         assertThrows(IllegalArgumentException.class, ()->{
-            c2.apply(that, 5.1, 6.4);
+            c2.invoke(that, 5.1, 6.4);
         });
         
-        assertEquals("Record{1:2:3}", c3.apply(null, 1, 2, 3).toString());
+        assertEquals("Record{1:2:3}", c3.invoke(null, 1, 2, 3).toString());
     }
     
     @Test

+ 10 - 10
assira/src/test/java/net/ranides/assira/reflection/impl/RMethodTest.java

@@ -166,20 +166,20 @@ public class RMethodTest {
         IMethod m1 = IClass.typefor(a1).methods().require("hello").first().get();
         IMethod m2 = IClass.typefor(a1).methods().require("stat").first().get();
         
-        assertEquals("[6:9]", m1.apply(a1, 2, 3));
-        assertEquals("[20:30]", m1.apply(a2, 2, 3));
+        assertEquals("[6:9]", m1.invoke(a1, 2, 3));
+        assertEquals("[20:30]", m1.invoke(a2, 2, 3));
         
-        assertEquals("[2/3]", m2.apply(a1, 2, 3));
-        assertEquals("[2/3]", m2.apply(null, 2, 3));
+        assertEquals("[2/3]", m2.invoke(a1, 2, 3));
+        assertEquals("[2/3]", m2.invoke(null, 2, 3));
         
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(a1, "q", 3);
+            m1.invoke(a1, "q", 3);
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(a1, 1, 2, 3);
+            m1.invoke(a1, 1, 2, 3);
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(null, 2, 3);
+            m1.invoke(null, 2, 3);
         });
     }
     
@@ -205,10 +205,10 @@ public class RMethodTest {
             m1.call(a1, "q", 3);
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(a1, 1, 2, 3);
+            m1.invoke(a1, 1, 2, 3);
         });
         assertThrows(IllegalArgumentException.class, ()->{
-            m1.apply(null, 2, 3);
+            m1.invoke(null, 2, 3);
         });
     }
     
@@ -218,7 +218,7 @@ public class RMethodTest {
         IMethod m0 = IClass.typefor(a1).methods().require("nop").first().get();
         
         assertEquals("nop!", m0.call());
-        assertEquals("nop!", m0.apply());
+        assertEquals("nop!", m0.invoke());
     }
     
     private static List<String> asText(IContext context) {

+ 18 - 18
assira/src/test/java/net/ranides/assira/reflection/impl/bean/RBeanModelTest.java

@@ -80,22 +80,22 @@ public class RBeanModelTest {
         ForBeanModel bean = new ForBeanModel();
         BeanModel model = BeanModel.typefor(bean);
         
-        assertEquals(bean.hashCode(), model.method("hashCode").get().apply(bean));
-        assertEquals(false, model.method("equals").get().apply(bean, 999));
+        assertEquals(bean.hashCode(), model.method("hashCode").get().invoke(bean));
+        assertEquals(false, model.method("equals").get().invoke(bean, 999));
         
-        assertEquals(bean.random(), model.method("random").get().apply(bean));
-        assertEquals(bean.getMail("ranides", 777), model.method("getMail").get().apply(bean, "ranides", 777));
-        assertNull(model.method("setConfig").get().apply(bean, "path", "/root"));
+        assertEquals(bean.random(), model.method("random").get().invoke(bean));
+        assertEquals(bean.getMail("ranides", 777), model.method("getMail").get().invoke(bean, "ranides", 777));
+        assertNull(model.method("setConfig").get().invoke(bean, "path", "/root"));
         assertEquals("path=/root", bean.$result);
         
         assertThrows(IllegalArgumentException.class, ()->{
-            model.method("setConfig").get().apply(null,"home","/root");
+            model.method("setConfig").get().invoke(null,"home","/root");
         });
         assertThrows(Exception.class, ()->{
-            model.method("setConfig").get().apply(bean,"home",17);
+            model.method("setConfig").get().invoke(bean,"home",17);
         });
         assertThrows(Exception.class, ()->{
-            model.method("setConfig").get().apply(bean,"home");
+            model.method("setConfig").get().invoke(bean,"home");
         });
     }
     
@@ -107,34 +107,34 @@ public class RBeanModelTest {
         BeanMethod m1 = model.method("connect").get();
         BeanMethod m2 = model.method("open").get();
         
-        assertEquals(null, m1.apply(bean));
+        assertEquals(null, m1.invoke(bean));
         assertEquals("connect:void", bean.$result);
         
-        assertEquals(true, m1.apply(bean,17));
+        assertEquals(true, m1.invoke(bean,17));
         assertEquals("connect:int:17", bean.$result);
         
-        assertEquals("c17", m1.apply(bean,17.1f));
+        assertEquals("c17", m1.invoke(bean,17.1f));
         assertEquals("connect:float:17.1", bean.$result);
         
-        assertEquals(2, m1.apply(bean,17.1));
+        assertEquals(2, m1.invoke(bean,17.1));
         assertEquals("connect:double:17.1", bean.$result);
         
-        assertEquals(null, m1.apply(bean,5,6));
+        assertEquals(null, m1.invoke(bean,5,6));
         assertEquals("connect:5/6", bean.$result);
         
-        m2.apply(bean, "home");
+        m2.invoke(bean, "home");
         assertEquals("open:home", bean.$result);
-        m2.apply(bean, "path", 777);
+        m2.invoke(bean, "path", 777);
         assertEquals("open:path/777", bean.$result);
         
         assertThrows(IllegalArgumentException.class, ()->{
-            model.method("open").get().apply(null,"home",777);
+            model.method("open").get().invoke(null,"home",777);
         });
         assertThrows(Exception.class, ()->{
-            model.method("open").get().apply(bean);
+            model.method("open").get().invoke(bean);
         });
         assertThrows(Exception.class, ()->{
-            model.method("open").get().apply(bean,"home","777");
+            model.method("open").get().invoke(bean,"home","777");
         });
     }