1 package org.kohsuke.args4j;
2
3 import org.kohsuke.args4j.spi.Setter;
4
5 import java.lang.reflect.Field;
6
7 /***
8 * {@link Setter} that sets to a {@link Field}.
9 *
10 * @author Kohsuke Kawaguchi
11 */
12 final class FieldSetter implements Setter {
13 private final Field f;
14 private final Object bean;
15
16 public FieldSetter(Object bean, Field f) {
17 this.bean = bean;
18 this.f = f;
19 }
20
21 public Class getType() {
22 return f.getType();
23 }
24
25 public void addValue(Object value) {
26 try {
27 f.set(bean,value);
28 } catch (IllegalAccessException _) {
29
30 f.setAccessible(true);
31 try {
32 f.set(bean,value);
33 } catch (IllegalAccessException e) {
34 throw new IllegalAccessError(e.getMessage());
35 }
36 }
37 }
38 }