View Javadoc

1   package org.kite9.diagram.builders;
2   
3   import java.lang.reflect.Field;
4   import java.lang.reflect.Modifier;
5   import java.util.ArrayList;
6   import java.util.List;
7   
8   import org.kite9.framework.model.ProjectModel;
9   
10  public class FieldBuilder extends AbstractAnnotatedElementBuilder<Field>{
11          
12      public FieldBuilder(List<Tie<? extends Object, Field>> ties,ProjectModel model) {
13  	super(ties, model);
14      }
15      
16      public FieldBuilder show(Format f ) {
17  	return (FieldBuilder) super.show(f);
18      }
19      
20      
21      public FieldBuilder showType(Format f) {
22  	for (Tie<? extends Object, Field> m : ties) {
23  	    f.write(m.getObject(), HasRelationship.TYPE, m.getObject().getGenericType());
24  	}
25  	return this;
26      }
27  
28      
29      public ClassBuilder withType(Format f) {
30  	List<Tie<? extends Object, Class<?>>> ties = new ArrayList<Tie<? extends Object, Class<?>>>();
31  
32  	for (Field m : allElements) {
33  	    ties.add(new Tie<Field, Class<?>>(m, HasRelationship.TYPE, m.getType()));
34  	}
35  	return new ClassBuilder(ties, model);
36      }
37      
38      public FieldBuilder showVisibility(Format f) {
39  	for (Tie<? extends Object, Field> m : ties) {
40  	    if (Modifier.isPublic(m.getObject().getModifiers())) {
41  		f.write(m.getObject(), HasRelationship.VISIBILITY, new JavaModifier("public"));
42  	    } else if (Modifier.isPrivate(m.getObject().getModifiers())) {
43  		f.write(m.getObject(), HasRelationship.VISIBILITY, new JavaModifier("private"));
44  	    } else if (Modifier.isProtected(m.getObject().getModifiers())) {
45  		f.write(m.getObject(), HasRelationship.VISIBILITY, new JavaModifier("protected"));
46  	    }
47  	}
48  	return this;
49      }
50  
51      @Override
52      public FieldBuilder reduce(Filter<? super Field> f) {
53  	return new FieldBuilder(reduceInner(f), model);
54      }
55  }