java jaxb att自动生成

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!");
        
    }
    
}

时间: 2024-10-09 05:19:27

java jaxb att自动生成的相关文章

java jaxb代码自动生成

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 CodeXmlElem {        private static List<S

使用Java注解开发自动生成SQL

使用注解开发的好处就是减少配置文件的使用.在实际过程中,随着项目越来越复杂,功能越来越多,会产生非常多的配置文件.但是,当配置文件过多,实际维护过程中产生的问题就不容易定位,这样就会徒劳的增加工作量.而使用注解开发,可以减少配置文件的使用,方便代码的维护,同时,在开发速度上也有大幅提升,因此,学会使用注解开发,是有必要掌握的一项技能. 下面为各位展示下使用注解开发自动生成SQL语句的过程. 首先先定义一个实体类,用于和数据库字段进行映射,为了方便,数据库字段名称和实体类变量名称保持一致. pac

java之wsdl自动生成WebService客户端

在web项目中调用webservice接口,以及创建自己的webservice服务端 由于甲方的服务器并不在外网,编码环境是不能直接访问对方的webservice接口的,所以需要把wsdl文件下载到本地,在通过工具生成代理类. 用java的JDK自带命令wsimport -s . xxx.wsdl生成代理类 其中-s表示生成源代码,不指定的话只会生成.calss字节码文件 中间的点"."表示在当前路径 后面空格接上本地的wsdl文件或者URL,例如http://www.xxx.com/

java UUID.randomUUID()自动生成主键作为Id或文件路径

UUID.randomUUID().toString()是javaJDK(1.5以上的版本)提供的一个自动生成主键的方法,它生成的是以为32位的数字和字母组合的字符,中间还参杂着4个 - 符号. 作用:它可以作为我们表的标识列来增加,比序列增长更加方便.当然还可以用来拼接作为路径,或者图片的前缀名等等. 使用原因: 文件命名或者其他使用时间命名对于高并发会存在风险,使用UUID会规避风险, import java.util.UUID: UUID.randomUUID().toString():

使用Java语言实现,自动生成10个整数(1~100,求出生成数列中的最大值和最小值,不允许使用Arrays类的sort方法

这是考察基本的java基础,没啥难点,直接上代码,最近在准备面试,所以做一些基础的面试题练练手 public class Demo1 { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for(int i=0;i<100;i++){ int num = (int) (Math.random()*100)+1; if(!list.contains(nu

java json代码自动生成

package code; import java.io.FileReader;import java.io.FileWriter;import java.io.LineNumberReader;import java.util.ArrayList;import java.util.List; public class Code {        private static List<String> readFile(String filename)    {        List<

Java语言中自动生成随机数

参考原文:http://zhidao.baidu.com/link?url=nB3BT69wmUAiSPfKGgK5Q7HOFFP9AIE04AthreRd9yYcwKhUQsQRWlMdMhW1Qm4P7VqyHREaRqeL_6v6q8B2K_ 1.使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(10)取数字字母随机10位;//取得一个3位随机数字字符串 String num = RandomStringUtils

解决eclipse下android项目不能自动生成R.java文件

通常情况下R.java文件是项目建立时自动生成的.但是,大家在eclipse下做开发的时候偶尔会遇到R.java文件不能自动生成.现在就来解决这个问题. 1.eclipse ADT插件的版本与android SDK版本不对应 一般问题就出现在这儿,这样的情况只要把ADT插件和SDK都更新到最新,重启eclipse一切就OK了. 红框那儿要全部install到最新. 2.eclipse自己出问题(和你闹别扭,哈哈) 这样的你就clean一下你的项目,或者使用android工具fix下.R.java

java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件

用mybatis原因很简单,易用,性能.是介于jdbc和hibernate之间的一个完美方案. 很简单: 1:配置pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://