Package gnu.kawa.reflect
Class SlotGet
- java.lang.Object
-
- gnu.mapping.PropertySet
-
- gnu.mapping.Procedure
-
- gnu.mapping.Procedure2
-
- gnu.kawa.reflect.SlotGet
-
- All Implemented Interfaces:
Inlineable,HasSetter,Named
public class SlotGet extends Procedure2 implements HasSetter, Inlineable
-
-
Field Summary
Fields Modifier and Type Field Description static SlotGetfieldstatic SlotGetslotRefstatic SlotGetstaticField-
Fields inherited from class gnu.mapping.Procedure2
applyToObject
-
Fields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
-
Fields inherited from class gnu.mapping.PropertySet
nameKey
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Objectapply2(Object arg1, Object arg2)voidcompile(ApplyExp exp, Compilation comp, Target target)static Objectfield(Object obj, String fname)ProceduregetSetter()static ObjectgetSlotValue(boolean isStatic, Object obj, String name, String fname, String getName, String isName, Language language)The actual gets of finding the field value.static MemberlookupMember(ObjectType clas, String name, ClassType caller)Get a named property - field or member class or 'get' accessor method.static ApplyExpmakeGetField(Expression value, String fieldName)Convenience method to make an Expression that gets the value of a field.voidset2(Object obj, Object name, Object value)voidsetN(Object[] args)static ObjectstaticField(Object obj, String fname)-
Methods inherited from class gnu.mapping.Procedure2
apply0, apply1, apply3, apply4, applyN, applyToObject, numArgs
-
Methods inherited from class gnu.mapping.Procedure
applyL, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setSetter, setSourceLocation, toString
-
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
-
-
-
Method Detail
-
apply2
public Object apply2(Object arg1, Object arg2)
- Specified by:
apply2in classProcedure2
-
getSlotValue
public static Object getSlotValue(boolean isStatic, Object obj, String name, String fname, String getName, String isName, Language language)
The actual gets of finding the field value. The compiler emits calls to this method if the field name is literal but the actual field is not known at compile time. This speeds lookup a bit. If fname equals "length" or "class", it is assumed to be interned.
-
lookupMember
public static Member lookupMember(ObjectType clas, String name, ClassType caller)
Get a named property - field or member class or 'get' accessor method.- Parameters:
clas- the class type declaring the property.name- the source (unmangled) name of the property.
-
compile
public void compile(ApplyExp exp, Compilation comp, Target target)
- Specified by:
compilein interfaceInlineable
-
getSetter
public Procedure getSetter()
-
makeGetField
public static ApplyExp makeGetField(Expression value, String fieldName)
Convenience method to make an Expression that gets the value of a field.- Parameters:
value- evaluates to object that has the named fieldfieldName- name of field in value- Returns:
- expression that get the name field from value
-
-