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(jcfaClass, jcfaMethod, result);
74 public static void writeToBuffer(final JcfaField jcfaField,
75 final StringBuffer result) {
76 writeToBuffer(jcfaField.getComment(), result);
78 result.append(" " + jcfaField.getAccess() + " " + jcfaField.getType()
79 + " " + jcfaField.getName());
80 if (jcfaField.getConstantValue() != null) {
82 result.append(jcfaField.getConstantValue());
94 public static void writeToBuffer(final JcfaClass jcfaClass,
95 final JcfaMethod jcfaMethod, final StringBuffer result) {
97 writeToBuffer(jcfaMethod.getComment(), result);
99 if (jcfaMethod.getName().equals("<init>")) {
100 result.append("public " + jcfaClass.getLocalName() + "(");
102 result.append("public " + jcfaMethod.getType() + " "
103 + jcfaMethod.getName() + "(");
107 for (String argumentType : jcfaMethod.getArugumentTypeList()) {
111 result.append(argumentType);
112 result.append(" arg" + argNo);
127 public static void writeToBuffer(final JcfaComment jcfaComment,
128 final StringBuffer result) {
129 if (jcfaComment.isJavaDoc()) {
130 result.append("\n/** ");
132 result.append("\n/* ");
135 if (jcfaComment.getCommentList().size() > 1) {
139 for (String comment : jcfaComment.getCommentList()) {
140 if (jcfaComment.getCommentList().size() > 1) {
141 result.append(" * " + comment + "\n");
143 result.append(comment);
147 result.append(" */\n");