码迷,mamicode.com
首页 > 编程语言 > 详细

java jaxb att自动生成

时间:2014-11-21 20:14:10      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:io   ar   os   sp   java   for   on   art   bs   

package code;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAttribute;



public class CodeXmlAttr {
    
    private static List<String> readFile(String filename)
    {
        List<String> fileline = new ArrayList<String>();
        
        try {
            
            FileReader in = new FileReader(filename);
            LineNumberReader reader = new LineNumberReader(in);
            
            String s = reader.readLine();
            while( s != null )
            {
                if(!s.startsWith("#"))
                {
                    fileline.add(s);
                }
                s = reader.readLine();
            }
            
            reader.close();
            in.close();
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        
        return fileline;
    }

    public static void genarateCode(List<String> line)
    {
        String cr="\r\n";
         
        try{
            
            String [] data = line.get(1).split(",");
            FileWriter fw = new FileWriter(data[1]+".java");
            fw.write(cr);
            data = line.get(0).split(",");
            fw.write("package "+data[1]+cr);
            fw.write(cr);
            fw.write(cr);
            fw.write("import javax.xml.bind.annotation.XmlAccessType;"+cr);
            fw.write("import javax.xml.bind.annotation.XmlAccessorType;"+cr);
            fw.write("import javax.xml.bind.annotation.XmlAttribute;"+cr);
            fw.write(cr);
            fw.write(cr);
            fw.write("@XmlRootElement"+cr);
            fw.write("@XmlAccessorType(XmlAccessType.FIELD)"+cr);
            data = line.get(1).split(",");
            fw.write("public class "+data[1]+"  {"+cr);
            fw.write(cr);
            for(int i = 2;i < line.size();i++)
            {
                data = line.get(i).split(",");
                if(data[1].trim().equalsIgnoreCase("int"))
                {
                   fw.write("@XmlAttribute(name = \""+data[0]+"\")"+cr);
                   fw.write("private Integer "+toLowerCaseFirst(data[0])+";"+cr);
                }
                else if(data[1].trim().equalsIgnoreCase("string"))
                {
                    fw.write("@XmlAttribute(name = \""+data[0]+"\")"+cr);
                    fw.write("private String "+toLowerCaseFirst(data[0])+";"+cr);
                }
                else
                {
                   fw.write("@XmlAttribute(name = \""+data[0]+"\")"+cr);
                   fw.write("private "+ data[1]+" "+toLowerCaseFirst(data[0])+";"+cr);
                }
            }
            
            fw.write(cr);
            fw.write(cr);
            
            for(int i = 2;i < line.size();i++)
             {
                  data = line.get(i).split(",");
                 if(data[1].trim().equalsIgnoreCase("int"))
                 {
                     fw.write("public void set"+data[0]+"(Integer value)"+cr);
                     fw.write("{"+cr);
                     fw.write("    "+toLowerCaseFirst(data[0])+" = "+"value;"+cr);
                     fw.write("}"+cr);

                     fw.write("public Integer get"+data[0]+"()"+cr);
                     fw.write("{"+cr);
                     fw.write("    return "+toLowerCaseFirst(data[0])+";"+cr);
                     fw.write("}"+cr);
                 }
                 else if(data[1].trim().equalsIgnoreCase("string"))
                 {
                     fw.write("public void set"+data[0]+"(String value)"+cr);
                   fw.write("{"+cr);
                   fw.write("    "+toLowerCaseFirst(data[0])+" = "+"value;"+cr);
                   fw.write("}"+cr);

                   fw.write("public String get"+data[0]+"()"+cr);
                   fw.write("{"+cr);
                   fw.write("    return "+toLowerCaseFirst(data[0])+";"+cr);
                   fw.write("}"+cr);
                 }
               else
               {
                   fw.write("public void set"+data[0]+"("+data[1]+" value)"+cr);
                 fw.write("{"+cr);
                 fw.write("    "+toLowerCaseFirst(data[0])+" = "+"value;"+cr);
                 fw.write("}"+cr);

                 fw.write("public "+data[1]+" get"+data[0]+"()"+cr);
                 fw.write("{"+cr);
                 fw.write("    return "+toLowerCaseFirst(data[0])+";"+cr);
                 fw.write("}"+cr);
               }
             }
            fw.write(cr+cr);
            fw.write("} "+cr);
            fw.close();
        }catch(Exception e)
        {

        }
    }
    
    public static String toLowerCaseFirst(String str)
    {
        StringBuilder sb = new StringBuilder(str);
        sb.setCharAt(0, Character.toLowerCase(sb.charAt(0)));
        str = sb.toString();
        return  str;
    }
    
    public static void main(String args[])
    {
        
         List<String> fileline = readFile("field.txt");
        
          genarateCode(fileline);
          System.out.println("success!");
        
    }
    
}

java jaxb att自动生成

标签:io   ar   os   sp   java   for   on   art   bs   

原文地址:http://www.cnblogs.com/rspb/p/4113518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!