package net.thucydides.core.reflection;
import com.google.common.base.Optional;
import java.lang.reflect.Field;
/**
* Internal class used to set field values inside an object.
*/
public class FieldValue {
private final Object targetObject;
public static FieldValue inObject(Object targetObject) {
return new FieldValue(targetObject);
}
public FieldValue(Object targetObject) {
this.targetObject = targetObject;
}
public Optional<Object> fromFieldNamed(String fieldName) {
try {
Field field = targetObject.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return Optional.of(field.get(targetObject));
} catch (Exception e) {
return Optional.absent();
}
}
}