• org.codehaus.groovy.runtime.metaclass.ClosureMetaClass
publicfinalclassClosureMetaClassextendsMetaClassImpl

Une méta-classe pour les closures générées par le compilateur Groovy. Ces classes ont des caractéristiques spéciales que cette MetaClass utilise. L'une d'entre elles est qu'une Closure générée ne possède que des méthodes doCall supplémentaires, toutes les autres méthodes se trouvent également dans la classe Closure. Pour utiliser ce fait, cette MetaClass utilise une MetaClass pour Closure comme champ statique et délègue les appels à cette MetaClass si nécessaire. Cela permet une implémentation allégée de cette MetaClass. Les fermetures multiples générées utiliseront alors la même MetaClass for Closure. Pour le dispatching statique, cette classe utilise la MetaClass de Class, et toutes les instances de cette classe partageront cette MetaClass. La MetaClass de Class est initialisée paresseusement, car la plupart des opérations n'ont pas besoin de cette MetaClass.

Les métaClasses de fermeture et de classe ne sont pas remplaçables.

Cette MetaClass est destinée à un usage interne uniquement !

Depuis :
1.5
Champs hérités
Champs hérités de la classe Champs
class MetaClassImpl EMPTY_ARGUMENTS, INVOKE_METHOD_METHOD, METHOD_MISSING, PROPERTY_MISSING, STATIC_METHOD_MISSING, STATIC_PROPERTY_MISSING, getPropertyMethod, invokeMethodMethod, isGroovyObject, isMap, metaMethodIndex, registry, setPropertyMethod, theCachedClass, theClass

Résumé du constructeur

Constructeurs
Constructeur et description
ClosureMetaClass
(MetaClassRegistry registry, Class theClass)

Résumé des méthodes

Méthodes
Type Params Type de retour Nom et description
public void addMetaBeanProperty(MetaBeanProperty mp)
public void addMetaMethod(MetaMethod method)
public void addNewInstanceMethod(Method method)
public void addNewStaticMethod(Method method)
protected void applyPropertyDescriptors(PropertyDescriptor[] propertyDescriptors)
public CallSite createPogoCallCurrentSite(CallSite site, Class sender, Object[] args)
public CallSite createPogoCallSite(CallSite site, Object[] args)
public CallSite createPojoCallSite(CallSite site, Object receiver, Object[] args)
public Object getAttribute(Class sender, Object object, String attribute, boolean useSuper, boolean fromInsideClass)
public List<MetaMethod> getMetaMethods()
public MetaProperty getMetaProperty(String name)
public MetaMethod getMethodWithoutCaching(int index, Class sender, String methodName, Class[] arguments, boolean isCallToSuper)
public List<MetaMethod> getMethods()
public List<MetaProperty> getProperties()
public Object getProperty(Class sender, Object object, String name, boolean useSuper, boolean fromInsideClass)
public MetaMethod getStaticMetaMethod(String name, Object[] args)
public MetaMethod getStaticMetaMethod(String name, Class[] argTypes)
public void initialize()
public Object invokeMethod(Class sender, Object object, String methodName, Object[] originalArguments, boolean isCallToSuper, boolean fromInsideClass)
public Object invokeStaticMethod(Object object, String methodName, Object[] arguments)
protected boolean isInitialized()
public MetaMethod pickMethod(String name, Class[] argTypes)
public static void resetCachedMetaClasses()
public List respondsTo(Object obj, String name, Object[] argTypes)
public List respondsTo(Object obj, String name)
public Constructor retrieveConstructor(Class[] arguments)
public MetaMethod retrieveStaticMethod(String methodName, Class[] arguments)
public void setAttribute(Class sender, Object object, String attribute, Object newValue, boolean useSuper, boolean fromInsideClass)
protected void setInitialized(boolean initialized)
public void setProperties(Object bean, Map map)
public void setProperty(Class sender, Object object, String name, Object newValue, boolean useSuper, boolean fromInsideClass)

Résumé des méthodes héritées

Méthodes héritées
Méthodes héritées de la classe Nom
class MetaClassImpl getMetaMethod, getMetaProperty, getRegistry, getStaticMetaMethod, getSuperClasses, getTheCachedClass, getTheClass, hasProperty, isGroovyObject, methodNameAction, respondsTo, respondsTo, skipClass

Détail du constructeur

public ClosureMetaClass(Registre MetaClassRegistry, Classe theClass)

Détail de la méthode

public void addMetaBeanProperty(MetaBeanProperty mp)

public void addMetaMethod(méthode MetaMethod)

public void addNewInstanceMethod(Méthode méthode)

public void addNewStaticMethod(Méthode méthode)

protected void applyPropertyDescriptors(PropertyDescriptor[] propertyDescriptors)

public CallSite createPogoCallCurrentSite(Site CallSite, Classe expéditeur, Objet[] args)

public CallSite createPogoCallSite(site CallSite, Objet[] args)

public CallSite createPojoCallSite(site CallSite, Objet récepteur, Objet[] args)

@Remplacement de public ObjetgetAttribute(Classe expéditeur, Objet objet, Chaîne de caractères attribut, booléen useSuper, booléen fromInsideClass).

@Remplacement de public Liste getMetaMethods()

public MetaProperty getMetaProperty(Chaîne de caractères nom)

public MetaMethod getMethodWithoutCaching(int index, Classe expéditeur, Chaîne de caractères methodName, Classe[] arguments, booléen isCallToSuper)

@Remplacer public Liste getMethods()

@Remplacer public Liste getProperties()

public ObjetgetProperty(Classe expéditeur, Objet objet, Chaîne de caractères name, boolean useSuper, boolean fromInsideClass).

public MetaMethod getStaticMetaMethod(Chaîne de caractères nom, Objet[] args)

public MetaMethod getStaticMetaMethod(Chaîne de caractères nom, Classe[] argTypes)

@Remplacement de public void initialiser()

public ObjetinvokeMethod(Classe expéditeur, Objet objet, Chaîne de caractères methodName, Objet[] originalArguments, booléen isCallToSuper, booléen fromInsideClass).

public ObjetinvokeStaticMethod(Objet objet, Chaîne de caractères methodName, Objet[] arguments)

@Remplacer protégé booléen isInitialized()

@Remplacer public MetaMethod pickMethod(Chaîne de caractères nom, Classe[] argTypes)

public static void resetCachedMetaClasses()

public Listerépond à(Objet obj, Chaîne de caractères nom, Objet[] argTypes)

public Listerépond à(Objet obj, Chaîne de caractères nom)

public ConstructeurretrieveConstructor(Classe[] arguments)

public MetaMethod retrieveStaticMethod(Chaîne de caractères methodName, Classe[] arguments)

@Remplacer public void setAttribute(Classe expéditeur, Objet objet, Chaîne de caractères attribut, Objet newValue, boolean useSuper, boolean fromInsideClass).

@Remplacement de protected void setInitialized(booléen initialisé)

public void setProperties(Objet haricot, Carte map)

public void setProperty(Classe expéditeur, Objet objet, Chaîne de caractères nom, Objet newValue, boolean useSuper, boolean fromInsideClass)