多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > java vo轉換成flex vo

java vo轉換成flex vo

來源:程序員人生   發布時間:2015-05-26 08:07:06 閱讀次數:2854次

直接上代碼

package com.cwap; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; public class ConvertJavaVO2FlexVO { private static final String[] simpleJavaTypeName = {"String", "Date", "BigDecimal", "Decimal", "Double", "Long", "long", "Integer", "int", "Boolean", "boolean"}; private static final String[] simpleFlexTypeName = {"String", "Date", "Number", "Number", "Number", "Number", "Number", "int", "int", "boolean", "boolean"}; private static final String[] complexJavaTypeName = {"java.util.List", "java.util.Collection"}; private static final String[] complexFlexTypeName = {"IList", "ICollectionView"}; private static final String[] complexFlexImportName = {"mx.collections.IList", "mx.collections.ICollectionView"}; private static String getSimpleTypeName(Class c) { String simpleTypeName = c.getSimpleName(); String result = null; for (int i = 0; i < simpleJavaTypeName.length; i++) { if (simpleJavaTypeName[i].equals(simpleTypeName)) { result = simpleFlexTypeName[i]; break; } } return result; } private static int getComplexJavaTypeIndex(String typeName) { int result = ⑴; for (int i = 0; i < complexJavaTypeName.length; i++) { if (complexJavaTypeName[i].equals(typeName)) { result = i; break; } } return result; } private static String getComplexTypeName(Class c) { String typeName = c.getName(); int index = getComplexJavaTypeIndex(typeName); if (index > ⑴) return complexFlexTypeName[index]; return null; } // 根據java類對象的類型返回vo類型 @SuppressWarnings("unchecked") public static String getClassType(Class c) { String result = getSimpleTypeName(c); if (judgeNotEmptyStr(result)) return result; result = getComplexTypeName(c); if (judgeNotEmptyStr(result)) return result; return "*";// 其它類型的設置為未知類型 } // 重復c字符count次,用于格式化生成的as文件 public static String repeat(String c, int count) { StringBuffer strBuf = new StringBuffer(); for (int i = 0; i < count; i++) { strBuf.append(c); } return strBuf.toString(); } /** * 生成FLex POJO * * @param pojoName * java POJO的名稱 * @param packageName * Flex包的名稱 * @param folder * Flex包所在的路徑 * @throws ClassNotFoundException * @throws IOException */ @SuppressWarnings("unchecked") public static void generateAsFile(String pojoName, String packageName, String folder) throws ClassNotFoundException, IOException { Class c = Class.forName(pojoName); Field[] fields = c.getDeclaredFields(); // as的vo對象名稱結尾加上VO標志 File f = new File(getVOFileName(folder, packageName, c)); BufferedWriter bw = new BufferedWriter(new FileWriter(f)); StringBuffer contentBuf = new StringBuffer(); createPackageName(packageName, c, contentBuf); createImport(fields, contentBuf); createBindInfo(pojoName, contentBuf); createClassHeader(c, contentBuf); createProperites(fields, contentBuf); contentBuf.append(" "); createEmptyConstructor(c, contentBuf); createGetSetFunction(fields, contentBuf); contentBuf.append(genTabChars()); contentBuf.append("} "); contentBuf.append("}"); bw.write(contentBuf.toString()); bw.close(); } private static void createImport(Field[] fields, StringBuffer strBuf) { strBuf.append(" "); // 寫屬性 for (int i = 0; i < fields.length; i++) { Class fieldType = fields[i].getType(); int index = getComplexJavaTypeIndex(fieldType.getName()); if (index > ⑴) { strBuf.append(genTabChars()); strBuf.append("import "); strBuf.append(complexFlexImportName[index]); strBuf.append("; "); } } strBuf.append(" "); } private static void createProperites(Field[] fields, StringBuffer strBuf) { // 寫屬性 for (int i = 0; i < fields.length; i++) { Class fieldType = fields[i].getType(); String typeName = getClassType(fieldType); strBuf.append(genFunctionTabChars()); strBuf.append("private var _"); strBuf.append(fields[i].getName()); strBuf.append(":"); strBuf.append(typeName); strBuf.append("; "); } } private static void createGetSetFunction(Field[] fields, StringBuffer contentBuf) { // 寫 setter/getter 方法 for (int i = 0; i < fields.length; i++) { Class fieldType = fields[i].getType(); String typeName = getClassType(fieldType); createSetFunction(fields, contentBuf, i, typeName); createGetFunction(fields, contentBuf, i, typeName); } } private static void createClassHeader(Class c, StringBuffer contentBuf) { // 寫類 contentBuf.append(genTabChars()); contentBuf.append("public class "); contentBuf.append(c.getSimpleName()); contentBuf.append("VO "); contentBuf.append(genTabChars()); contentBuf.append("{ "); } private static void createEmptyConstructor(Class c, StringBuffer strBuf) { // 寫空的構造函數 strBuf.append(genFunctionTabChars()); strBuf.append("public function "); strBuf.append(c.getSimpleName()); strBuf.append("VO(){} "); } private static void createFolder(String folderName) { try { File myPath = new File(folderName); if (!myPath.exists()) { myPath.mkdirs(); } } catch (Exception e) { e.printStackTrace(); } } private static String getVOFileName(String folder, String packageName, Class c) { String fd = folder; if (judgeNotEmptyStr(fd)) { if (!folder.endsWith(File.separator)) fd += File.separator; } String p1 = packageName; if (!judgeNotEmptyStr(packageName)) p1 = c.getPackage().getName(); fd += p1.replace('.', File.separatorChar) + File.separator; createFolder(fd); return fd + c.getSimpleName() + "VO.as"; } private static boolean judgeNotEmptyStr(String value) { return (null != value) && (value.length() > 0); } private static void createGetFunction(Field[] fields, StringBuffer strBuf, int i, String typeName) { // getter strBuf.append(genFunctionTabChars()); strBuf.append("public function get "); strBuf.append(fields[i].getName()); strBuf.append("():"); strBuf.append(typeName); strBuf.append("{ "); strBuf.append(genContentTabChars()); strBuf.append("return this._"); strBuf.append(fields[i].getName()); strBuf.append("; "); genFunctionEnd(strBuf); } private static void genFunctionEnd(StringBuffer strBuf) { strBuf.append(genFunctionTabChars() + "} "); } private static void createSetFunction(Field[] fields, StringBuffer strBuf, int i, String typeName) { // setter strBuf.append(genFunctionTabChars()); strBuf.append("public function set "); strBuf.append(fields[i].getName()); strBuf.append("(value:"); strBuf.append(typeName); strBuf.append("):void{ "); strBuf.append(genContentTabChars()); strBuf.append("this._"); strBuf.append(fields[i].getName()); strBuf.append(" = value; "); genFunctionEnd(strBuf); } private static String getCountTabChars(int count) { StringBuffer strBuff = new StringBuffer(); for(int i = 0; i < count; i++) { strBuff.append(genTabChars()); } return strBuff.toString(); } private static String genContentTabChars() { return getCountTabChars(3); } private static String genFunctionTabChars() { return getCountTabChars(2); } private static void createBindInfo(String pojoName, StringBuffer strBuf) { // 寫Bind頭 strBuf.append(genTabChars()); strBuf.append("[Bindable] "); strBuf.append(genTabChars()); strBuf.append("[RemoteClass(alias=""); strBuf.append(pojoName); strBuf.append("")] "); } private static String genTabChars() { return repeat(" ", 4); } private static void createPackageName(String packageName, Class c, StringBuffer strBuf) { // 包名,沒有設置包名就取和java pojo1樣的包名 if ((null != packageName) && (packageName.trim().length() > 1)) { strBuf.append("package " + c.getPackage().getName() + " { "); } else { strBuf.append("package " + packageName + " { "); } } // 生成的主程序 public static void main(String[] args) throws ClassNotFoundException, IOException { String[] pojos = { "com.cwap.Person" }; for (int i = 0; i < pojos.length; i++) { ConvertJavaVO2FlexVO.generateAsFile(pojos[i], "com.cwap", "D:工作區myworkspace estsrc"); } } }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本一区二区在线视频 | 国产精品亚洲一区二区三区 | 国产亚洲综合一区二区在线 | 国产免费看网站v片不遮挡 国产免费全部免费观看 | 久久永久免费视频 | 最新中文字幕日本 | 国产午夜亚洲精品久久999 | free日韩性公交车上xxhd | 麻豆69堂免费视频 | 日韩一区二区三区四区 | 亚洲一区精品视频在线 | 毛片的网站 | 自拍偷拍图 | 国产精品嫩草影院99av视频 | 欧美大胆色图 | 波多野野结衣1区二区 | 欧美a在线观看 | 在线欧美一级毛片免费观看 | 亚洲天堂一区二区三区四区 | 免费一级毛片正在播放 | 成人毛片18女人毛片免费视频未 | 手机看片日韩国产一区二区 | 久久国产精品久久国产片 | 成人国产激情福利久久精品 | 91探花国产综合在线精品 | 欧美日韩一本二本 | 免费的黄色的网站 | 欧美午夜视频在线 | 中文字幕成人 | 亚洲经典激情春色另类 | 亚洲精品一区二区三区婷婷月 | 国产福利在线观看永久免费 | 国产高清www免费视频 | 在线一区二区三区 | 99伊人| 亚洲国产精品乱码在线观看97 | 羞羞网站在线播放 | jizz视频在线观看 | 国内精品久久久久久网站 | 影院成人区精品一区二区婷婷丽春院影视 | 国产v欧美v日本v精品 |