TrampolineClosure(final Closure<V> original) { super(original.getOwner(), original.getDelegate()); this.original = original; }
public Object getDelegate() { return ((Closure) getOwner()).getDelegate(); }
public Object getDelegate() { return ((Closure) getOwner()).getDelegate(); }
private static boolean isVoidMethod(@Nullable Object target, String method, Object... args) { if (target instanceof Closure) { // since we support verifyAll we must check the closure hierarchy Closure closure = ((Closure)target); return GroovyRuntimeUtil.isVoidMethod(closure.getDelegate(), method, args) || isVoidMethod(closure.getOwner(), method, args); } return GroovyRuntimeUtil.isVoidMethod(target, method, args); }
public ExpandoMetaClass define(Closure closure) { final DefiningClosure definer = new DefiningClosure(); Object delegate = closure.getDelegate(); closure.setDelegate(definer); closure.setResolveStrategy(Closure.DELEGATE_ONLY); closure.call((Object)null); closure.setDelegate(delegate); closure.setResolveStrategy(Closure.DELEGATE_FIRST); definer.definition = false; return this; }
public Object getProperty(final String property) { if ("delegate".equals(property)) { return getDelegate(); } else if ("owner".equals(property)) { return getOwner();
/** * Assigns any existing properties to the node.<br> * It will call attributeDelegates before passing control to the factory * that built the node. * * @param node the object returned by tne node factory * @param attributes the attributes for the node */ protected void handleNodeAttributes(Object node, Map attributes) { // first, short circuit if (node == null) { return; } for (Closure attrDelegate : getProxyBuilder().getAttributeDelegates()) { FactoryBuilderSupport builder = this; if (attrDelegate.getOwner() instanceof FactoryBuilderSupport) { builder = (FactoryBuilderSupport) attrDelegate.getOwner(); } else if (attrDelegate.getDelegate() instanceof FactoryBuilderSupport) { builder = (FactoryBuilderSupport) attrDelegate.getDelegate(); } attrDelegate.call(builder, node, attributes); } if (getProxyBuilder().getCurrentFactory().onHandleNodeAttributes(getProxyBuilder().getChildBuilder(), node, attributes)) { getProxyBuilder().setNodeAttributes(node, attributes); } }
Object callObject = object; final Object owner = closure.getOwner(); final Object delegate = closure.getDelegate(); final Object thisObject = closure.getThisObject(); final int resolveStrategy = closure.getResolveStrategy(); if (!(current instanceof Closure)) break; Closure currentClosure = (Closure) current; if (currentClosure.getDelegate() != null) list.add(current); current = currentClosure.getOwner(); Object currentDelegate = closureWithDelegate.getDelegate(); method = getDelegateMethod(closureWithDelegate, currentDelegate, methodName, argClasses); callObject = currentDelegate;
final Object delegate = closure.getDelegate(); final boolean isClosureNotOwner = owner != closure; final int resolveStrategy = closure.getResolveStrategy();
/** * Call a configuration block with a specified delegate. * @param block The block to invoke. * @param delegate The delegate. * @return The return value. */ public static Object callWithDelegate(Closure<?> block, Object delegate) { int oldStrategy = block.getResolveStrategy(); Object oldDelegate = block.getDelegate(); try { block.setDelegate(delegate); block.setResolveStrategy(Closure.DELEGATE_FIRST); return block.call(); } finally { block.setResolveStrategy(oldStrategy); block.setDelegate(oldDelegate); } }
@Override public Object getDelegate() { return this.target.getDelegate(); }
public Object getDelegate() { return Closure.this.getDelegate(); }
public Object getDelegate() { return Closure.this.getDelegate(); }
TrampolineClosure(final Closure<V> original) { super(original.getOwner(), original.getDelegate()); this.original = original; }
public Object getDelegate() { return ((Closure) getOwner()).getDelegate(); }
public Object getDelegate() { return ((Closure)getOwner()).getDelegate(); }
private Closure enhanceClosure(final Closure closure) { final Closure cloned = (Closure) closure.clone(); if (cloned.getOwner() == cloned.getDelegate()) { cloned.setResolveStrategy(Closure.DELEGATE_FIRST); cloned.setDelegate(this); } else { cloned.setDelegate(new ForwardingDelegate(cloned.getDelegate(), this)); } return cloned; }
public ExpandoMetaClass define (Closure closure) { final DefiningClosure definer = new DefiningClosure(); Object delegate = closure.getDelegate(); closure.setDelegate(definer); closure.setResolveStrategy(Closure.DELEGATE_FIRST); closure.call(null); closure.setDelegate(delegate); definer.definition = false; return this; }
public ExpandoMetaClass define (Closure closure) { final DefiningClosure definer = new DefiningClosure(); Object delegate = closure.getDelegate(); closure.setDelegate(definer); closure.setResolveStrategy(Closure.DELEGATE_FIRST); closure.call(null); closure.setDelegate(delegate); definer.definition = false; return this; }
public ExpandoMetaClass define(Closure closure) { final DefiningClosure definer = new DefiningClosure(); Object delegate = closure.getDelegate(); closure.setDelegate(definer); closure.setResolveStrategy(Closure.DELEGATE_ONLY); closure.call((Object)null); closure.setDelegate(delegate); closure.setResolveStrategy(Closure.DELEGATE_FIRST); definer.definition = false; return this; }