public abstract class Configurator extends Object
<config car.engine.sparkPlug.condition="poor"/>
Given a Car instance car and assuming the method setCondition(String) exists within the SparkPlug class,
Configurator does the following:
car.getEngine().getSparkPlug().setCondition("poor");
Now let's pretend that setCondition takes an instance of the Condition enum as it's argument.
Configurator then does the following:
car.getEngine().getSparkPlug().setCondition(Condition.valueOf("poor");
Now let's look at how ints are handled. Given the following xml:
Modifier and Type | Field and Description |
---|---|
protected static String |
CFG_ELEMENT_NAME |
Constructor and Description |
---|
Configurator() |
Modifier and Type | Method and Description |
---|---|
protected static String |
argArrToString(Object[] args) |
static void |
configure(android.content.Context ctx,
Object obj,
HashMap<String,String> params) |
static void |
configure(android.content.Context ctx,
Object obj,
int xmlFileId) |
protected static void |
configure(android.content.Context ctx,
Object obj,
String key,
String value)
Recursively descend into an object using key as the pathway and invoking the corresponding setter
if one exists.
|
protected static Method |
getGetter(Class clazz,
String fieldId) |
protected static Object |
getObjectContaining(Object obj,
String path)
Returns the object containing the field specified by path.
|
protected static Method |
getSetter(Class clazz,
String fieldId) |
protected static float |
parseFloatAttr(android.content.Context ctx,
String value)
Treats value as a float parameter.
|
protected static int |
parseIntAttr(android.content.Context ctx,
String value) |
protected static int |
parseResId(android.content.Context ctx,
String prefix,
String value) |
protected static String |
parseStringAttr(android.content.Context ctx,
String value) |
protected static final String CFG_ELEMENT_NAME
protected static int parseResId(android.content.Context ctx, String prefix, String value)
protected static int parseIntAttr(android.content.Context ctx, String value)
protected static float parseFloatAttr(android.content.Context ctx, String value)
ctx
- value
- protected static Method getSetter(Class clazz, String fieldId) throws NoSuchMethodException
NoSuchMethodException
protected static Method getGetter(Class clazz, String fieldId) throws NoSuchMethodException
NoSuchMethodException
protected static Object getObjectContaining(Object obj, String path) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
obj
- path
- Path through member hierarchy to the destination field.InvocationTargetException
IllegalAccessException
NoSuchMethodException
public static void configure(android.content.Context ctx, Object obj, int xmlFileId)
ctx
- obj
- xmlFileId
- ID of the XML config file within /res/xmlpublic static void configure(android.content.Context ctx, Object obj, HashMap<String,String> params)
protected static void configure(android.content.Context ctx, Object obj, String key, String value) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
key
- value
- InvocationTargetException
IllegalAccessException
NoSuchMethodException