
org.kohsuke.args4j.spi.FieldGetter Maven / Gradle / Ivy
package org.kohsuke.args4j.spi;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import org.openimaj.util.pair.IndependentPair;
/**
* A field getter calls .toString() on the underlying object
*
* @author Sina Samangooei ([email protected])
* @author Jonathon Hare ([email protected])
*
*/
public class FieldGetter extends AbstractGetter {
/**
* @param name
* @param bean
* @param f
*/
public FieldGetter(String name, Object bean, Field f) {
super(name, bean, f);
}
@Override
public List>> getStringValues() {
List>> ret = new ArrayList>>();
Object b;
try {
b = f.get(bean);
} catch (Exception _) {
// try again
f.setAccessible(true);
try {
b = f.get(bean);
} catch (Exception e) {
throw new IllegalAccessError(e.getMessage());
}
}
if (b == null)
return ret;
Class> c = b.getClass();
IndependentPair> pair;
if (c == Boolean.class) {
if (!(Boolean) b) {
pair = new IndependentPair>(null, c);
} else {
pair = new IndependentPair>(b.toString(), c);
}
} else {
pair = new IndependentPair>(b.toString(), c);
}
ret.add(pair);
return ret;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy