javajaxb代码自动生成-创新互联

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 readFile(String filename)
   {
      List fileline = new ArrayList();

      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 line)
   {
      String cr=" ";

      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.JAXBContext;"+cr);
         fw.write("import javax.xml.bind.JAXBException;"+cr);
         fw.write("import javax.xml.bind.Marshaller;"+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("@XmlElement(name = ""+data[0]+"")"+cr);
              fw.write("private Integer "+toLowerCaseFirst(data[0])+";"+cr);
            }
            else if(data[1].trim().equalsIgnoreCase("string"))
            {
               fw.write("@XmlElement(name = ""+data[0]+"")"+cr);
               fw.write("private String "+toLowerCaseFirst(data[0])+";"+cr);
            }
            else
            {
              fw.write("@XmlElement(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);

           data = line.get(1).split(",");
           fw.write("public static "+data[1].trim()+" ");
           fw.write(" parse"+data[1].trim()+"XML(String xml)"+cr);
           fw.write("{"+cr);
           fw.write("   JAXBContext jaxbContext;"+cr);
           fw.write("   try"+cr);
           fw.write("   {"+cr);
           fw.write("       jaxbContext = JAXBContext.newInstance("+data[1].trim()+".class);"+cr);
           fw.write("       Unmarshaller u = jaxbContext.createUnmarshaller();"+cr);
           fw.write("       return ("+data[1].trim()+")u.unmarshal(new StreamSource(new StringReader(xml)));"+cr);
           fw.write(cr);
           fw.write("   }"+cr);
           fw.write("   catch(JAXBException e)"+cr);
           fw.write("   {"+cr);
           fw.write("       e.printStackTrace();"+cr);
           fw.write("       return null;"+cr);
           fw.write("   }"+cr);
           fw.write("}"+cr);
           fw.write(cr+cr);

           fw.write("public String ");
           fw.write(" create"+data[1].trim()+"XML(String xml)"+cr);
           fw.write("{"+cr);
           fw.write("   JAXBContext jaxbContext;"+cr);
           fw.write("   try"+cr);
           fw.write("   {"+cr);
           fw.write("       jaxbContext = JAXBContext.newInstance("+data[1].trim()+".class);"+cr);
           fw.write("       Unmarshaller u = jaxbContext.createUnmarshaller();"+cr);
           fw.write("       marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);"+cr);
           fw.write("       marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");"+cr);
           fw.write("       marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);//省略xml头信息"+cr);
           fw.write("       String xmlHeard = "\n";"+cr);
           fw.write("       StringWriter sw = new StringWriter();"+cr);
           fw.write("       marshaller.marshal(this, sw);"+cr);
           fw.write("       return xmlHeard + sw.toString();"+cr);
           fw.write(cr);
           fw.write("   }"+cr);
           fw.write("   catch(JAXBException e)"+cr);
           fw.write("   {"+cr);
           fw.write("       e.printStackTrace();"+cr);
           fw.write("       return null;"+cr);
           fw.write("   }"+cr);
           fw.write("}"+cr);
           fw.write(cr+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 fileline = readFile("field.txt");

        genarateCode(fileline);
        System.out.println("success!");

   }

}

10余年的花溪网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整花溪建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“花溪网站设计”,“花溪网站推广”以来,每个客户项目都认真落实执行。
分享标题:javajaxb代码自动生成-创新互联
转载来源:http://myzitong.com/article/dsgops.html