`
cyoubunketu
  • 浏览: 18320 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

把java实体转成flex用的as实体

阅读更多
自己用的一个小工具,可以根据需要扩展

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.Date;


public class Create4Flex {

	// java的代码目录
	private static String JAVA_SRC_PATH = "D:/workspace/test/src/";

	// flex代码目录
	private static String FLEX_SRC_PATH = "D:/workspace/test/src/";

	// POJO的包路径
	private static String JAVA_PACKAGE = "com.test.entity";

	// 将要生成的as的value object包路径
	private static String FLEX_PACKAGE = "flex.actionScript";

  // 需要过滤掉以此后缀结尾的实体(因为我们用的是ibatis持久层,abator生成的实体包括两个,一个是实体本身,一个是用于拼sql的Example类,需要去掉以Example结尾的类)
	private static String EXAMPLE = "Example";

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String srcPath = JAVA_PACKAGE.replaceAll("\\.", "/");

		File dir = new File(JAVA_SRC_PATH + srcPath);
		File[] files = dir.listFiles();

		String name = "";
		for (File file : files) {
			if (!file.isDirectory() && file.isFile()){
				name = file.getName();

				if (name.lastIndexOf(EXAMPLE + ".java") == -1){

					name = name.replaceAll(".java", "");
					try {
						Class clazz = Class.forName(JAVA_PACKAGE + "." + name);
						createFile(clazz);
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}
	}

	private static void createFile(Class clz) throws IOException{
		String flexSrcPath = FLEX_PACKAGE.replaceAll("\\.", "/");

		String fileName = clz.getSimpleName();
		File dir = new File(FLEX_SRC_PATH + flexSrcPath);
		if (!dir.exists()){
			dir.mkdirs();
		}
		File f = new File(dir,fileName + ".as");
		if (f.exists()){
			f.delete();
		}
		f.createNewFile();

		FileWriter fw = new FileWriter(f);
		fw.write("package "+FLEX_PACKAGE+"\n");
		fw.write("{\n");
		fw.write("\t[Bindable]\n");
		fw.write("\tpublic class "+fileName+"{\n");
		fw.write("\t\tpublic function "+fileName+"(){}\n");
		//System.out.println(fileName + ":" + clz.getDeclaredFields().length);
		for (Field fd : clz.getDeclaredFields()) {
			fw.write(createField(fd));
		}

		fw.write("\t}\n}");
		fw.close();

	}

	private static String createField(Field fd){
		String r = "\t\tpublic var ";
		Class type = fd.getType();
		String name = fd.getName();
		if (name.equals("serialVersionUID")){
			return "";
		}
		if (type.equals(Integer.class) || type.equals(Short.class)) {
			r = r+name+":int;";
		}else if (type.equals(Long.class) || type.equals(BigDecimal.class)) {
			r = r+name+":Number;";
		}else if (type.equals(String.class)) {
			r = r+name+":String;";
		}else if (type.equals(Date.class)) {
			r = r+name+":Date;";
		}else if (type.getName().equals("java.lang.Object")){
			r = r+name+":Object;";
		}else if (type.getName().equals("long")){
			r = r+name+":Number;";
		}else if (type.getName().equals("java.util.List")){
			r = r+name+":Array;";
		}else{
			System.out.println(type.getName());
		}
		return r+"\n";
	}

}

分享到:
评论
3 楼 找不到服务器 2009-03-16  
搞成一个插件多好
2 楼 cyoubunketu 2009-03-05  
baoq 写道
google一下FCG!

用了,感觉跟我想要的不太一样。
1 楼 baoq 2009-03-05  
google一下FCG!

相关推荐

    java flexjava flexjava flex

    java flexjava flexjava flex

    Java_Flex,Java_Flex,Java_Flex

    Java与Flex集成。 Java与Flex集成。 Java与Flex集成。

    Flex与Java通过实体传递数据

    Flex与Java通过实体传递数据

    java+flex原码

    java+flex原码 flex java 原码flex java 原码flex java 原码flex java 原码

    Java+flex使用dom4j读写xml

    这个小例子是使用Java作为服务端、Flex做前台,对一个xml文件的读取和写入。 环境:MyEclipse6.0.1+Flex3插件版,jdk1.6,tomcat6.0,dom4j1.6.1,lcds.war, 使用技术:1.Java+flex,及其对象的转换。 2.Java方面...

    Flex与Java实现通信

    Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信

    flex框架 JAVA-FLEX

    flex框架flex框架 JAVA-FLEXflex框架 JAVA-FLEX

    flex java 登录功能

    利用flex java 实现用户登录 java user。java userService。java flex login。mxml helloword。mxml remoting-confing。xml 配置 数据库 mysql

    flex+java+mysql登录

    flex 数据库操作 romotingobject 连接java后台文件 与数据库进行交互

    Flex Spring JAVA BLAZEDS整合

    Flex技术本身和Java就有很强...由于Java和Flex一起频繁的使用。人们很容易就想到Flex和Spring的整合。有许多企业和组织已经着手开始使用Flex作为用户接口了。在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。

    Flex与java集成

    flex_spring_blazeDS 项目是flex spring blazeDS 通过配置文件完成flex与java通信的可以正常运行的实例。该源码在flex4与MyEclipse环境下整合成功,实现了Flex、spring、blazeDS的整合。

    java flex入门实例

    java flex入门实例 MyEclipse7+flex bulider 3+ blazeds 整合的一个简单的实例。

    Flex_AS3\Flex + LCDS + Java 入门教程

    Flex_AS3\Flex + LCDS + Java 入门教程

    java 整合 flex项目

    java hibernate flex 整合开发,可以参考一下。

    Flex与java通讯

    Flex与java通讯 Flex与java通讯

    Flex和java交互搭建

    Flex和java交互搭建,新手可以用来练手,简单易懂

    java flex开发项目配置实例

    java flex开发项目配置实例教程,图文并茂教您快速搭建java flex开发工程。

    JAVA通过BlazeDS与FLEX通信

    JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入

    flex4与Java通信实例

    flex4出来一段时间了,去年看了一段时间flex3... 功能描述:分别用代码实现了三种flex4与Java通信 三种方式: 1 flex 与普通java类通信RemoteObject 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService

Global site tag (gtag.js) - Google Analytics