Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright 2003-2007 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.codehaus.groovy.runtime.metaclass;
This class represents a MetaMethod that is a closure that pretends to be a static method. It is used by ExpandoMetaClass to allow addition of static methods defined as closures

Author(s):
Graeme Rocher
Since:
01.1
public class ClosureStaticMetaMethod extends MetaMethod implements ClosureInvokingMethod {
	private final Closure callable;
	private final CachedClass declaringClass;
    private final String name;

    

Parameters:
name The name of the MetaMethod
declaringClass The class which declared the MetaMethod
c The closure that this ClosureMetaMethod will invoke when called
    public ClosureStaticMetaMethod(String nameClass declaringClassClosure c) {
    	this(namedeclaringClasscc.getParameterTypes());
	}
    public ClosureStaticMetaMethod(String nameClass declaringClassClosure cClass[] paramTypes) {
        super(paramTypes);
        this. = c;
		this. = ReflectionCache.getCachedClass(declaringClass);
        this. = name;
	}
    public Object invoke(Object objectObject[] arguments) {
		Closure cloned = (Closure.clone();
		cloned.setDelegate(object);
		return cloned.call(arguments);
	}
    public int getModifiers() {
        return . | .;
    }
    public String getName() {
        return ;
    }
    public Class getReturnType() {
        return Object.class;
    }
    public CachedClass getDeclaringClass() {
		return this.;
	}

    
Retrieves the closure that is invoked by this MetaMethod

Returns:
The closure
    public Closure getClosure() {
		return this.;
	}
New to GrepCode? Check out our FAQ X