View Javadoc
1   package org.kuali.common.util.bind.test;
2   
3   import java.io.File;
4   import java.lang.reflect.Field;
5   import java.util.List;
6   import java.util.SortedSet;
7   
8   import org.apache.commons.io.FileUtils;
9   import org.junit.Test;
10  import org.kuali.common.util.bind.api.Bind;
11  import org.kuali.common.util.bind.model.BoundTypeDescriptor;
12  import org.kuali.common.util.file.CanonicalFile;
13  import org.kuali.common.util.function.FieldNameFunction;
14  import org.kuali.common.util.system.SystemProperties;
15  import org.kuali.common.util.tree.Node;
16  import org.kuali.common.util.tree.NodeStringFunction;
17  import org.kuali.common.util.tree.Trees;
18  
19  import com.google.common.collect.Sets;
20  
21  public class FieldsTest {
22  
23  	@Test
24  	public void test() {
25  		try {
26  			Class<?> type = SystemProperties.class;
27  			AnnotatedFieldAssembler assembler = AnnotatedFieldAssembler.create(type, Bind.class);
28  			List<Node<Field>> fields = assembler.assemble();
29  			BoundTypeDescriptor descriptor = BoundTypeDescriptor.builder().fields(fields).type(type).build();
30  			KeyAssembler ka = new KeyAssembler.Builder().descriptor(descriptor).build();
31  			SortedSet<String> keys = Sets.newTreeSet(ka.assemble());
32  			String html = Trees.html(type.getSimpleName(), fields, NodeStringFunction.create(new FieldNameFunction()));
33  			File file = new CanonicalFile(System.getProperty("java.io.tmpdir"), "fields.htm");
34  			FileUtils.write(file, html);
35  			System.out.println(file);
36  			System.out.println(String.format("---- %s total keys ----", keys.size()));
37  			for (String key : keys) {
38  				System.out.println(key);
39  			}
40  		} catch (Throwable e) {
41  			e.printStackTrace();
42  		}
43  	}
44  }