1 package jp.igapyon.jcfa.util;
3 import java.io.BufferedWriter;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.OutputStreamWriter;
8 import jp.igapyon.jcfa.vo.JcfaClass;
9 import jp.igapyon.jcfa.vo.JcfaComment;
10 import jp.igapyon.jcfa.vo.JcfaField;
11 import jp.igapyon.jcfa.vo.JcfaMethod;
12 import jp.igapyon.jcfa.vo.JcfaUnit;
14 public class JcfaWriteUtil {
15 public static void writeToFile(final JcfaUnit jcfaUnit) throws IOException {
16 final StringBuffer result = new StringBuffer();
18 for (JcfaClass jcfaClass : jcfaUnit.getClassList()) {
19 writeToBuffer(jcfaClass, result);
22 final BufferedWriter writer = new BufferedWriter(
23 new OutputStreamWriter(new FileOutputStream(
24 jcfaUnit.getTargetFile())));
25 writer.write(JcfaEclipseUtil.formatSource(result.toString()));
35 public static void writeToBuffer(final JcfaClass jcfaClass,
36 final StringBuffer result) {
38 if (jcfaClass.isMainClass()) {
39 if (jcfaClass.getName().contains(".")) {
40 result.append(" package "
41 + jcfaClass.getName().substring(0,
42 jcfaClass.getName().lastIndexOf(".")) + ";");
46 writeToBuffer(jcfaClass.getComment(), result);
48 result.append(jcfaClass.getAccess());
49 result.append(" class " + jcfaClass.getLocalName());
50 if (jcfaClass.getExtendsName() != null
51 && jcfaClass.getExtendsName().length() > 0
52 && jcfaClass.getExtendsName().equals("java.lang.Object") == false) {
53 result.append(" extends " + jcfaClass.getExtendsName());
57 for (JcfaField jcfaField : jcfaClass.getFieldList()) {
58 writeToBuffer(jcfaField, result);
61 for (JcfaMethod jcfaMethod : jcfaClass.getMethodList()) {
62 writeToBuffer(jcfaMethod, result);
68 public static void writeToBuffer(final JcfaField jcfaField,
69 final StringBuffer result) {
70 writeToBuffer(jcfaField.getComment(), result);
72 result.append(" " + jcfaField.getAccess() + " " + jcfaField.getType()
73 + " " + jcfaField.getName());
77 public static void writeToBuffer(final JcfaMethod jcfaMethod,
78 final StringBuffer result) {
80 writeToBuffer(jcfaMethod.getComment(), result);
84 public static void writeToBuffer(final JcfaComment jcfaComment,
85 final StringBuffer result) {
86 if (jcfaComment.isJavaDoc()) {
87 result.append("\n/** ");
89 result.append("\n/* ");
92 for (String comment : jcfaComment.getCommentList()) {
93 result.append(" " + comment + " ");
96 result.append(" */\n");