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 }