自己用的一个小工具,可以根据需要扩展
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";
}
}
分享到:
相关推荐
java flexjava flexjava flex
Java与Flex集成。 Java与Flex集成。 Java与Flex集成。
Flex与Java通过实体传递数据
java+flex原码 flex java 原码flex java 原码flex java 原码flex java 原码
这个小例子是使用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框架flex框架 JAVA-FLEXflex框架 JAVA-FLEX
利用flex java 实现用户登录 java user。java userService。java flex login。mxml helloword。mxml remoting-confing。xml 配置 数据库 mysql
flex 数据库操作 romotingobject 连接java后台文件 与数据库进行交互
Flex技术本身和Java就有很强...由于Java和Flex一起频繁的使用。人们很容易就想到Flex和Spring的整合。有许多企业和组织已经着手开始使用Flex作为用户接口了。在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。
flex_spring_blazeDS 项目是flex spring blazeDS 通过配置文件完成flex与java通信的可以正常运行的实例。该源码在flex4与MyEclipse环境下整合成功,实现了Flex、spring、blazeDS的整合。
java flex入门实例 MyEclipse7+flex bulider 3+ blazeds 整合的一个简单的实例。
Flex_AS3\Flex + LCDS + Java 入门教程
java hibernate flex 整合开发,可以参考一下。
Flex与java通讯 Flex与java通讯
Flex和java交互搭建,新手可以用来练手,简单易懂
java flex开发项目配置实例教程,图文并茂教您快速搭建java flex开发工程。
JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入
flex4出来一段时间了,去年看了一段时间flex3... 功能描述:分别用代码实现了三种flex4与Java通信 三种方式: 1 flex 与普通java类通信RemoteObject 2 flex 与服务器交互HTTPService 3 flex与webservice交互WebService