/**
* Step 1:根据beanExcelPath路径,导入所有Bean到beans
*/
private void importBeans() {
Bean bean = null;
//获取页签个数,从第二个页签开始,每个页签为一个bean
int sum = this.hssfWorkbook.getNumberOfSheets();
for (int excelBeanIndex = 1; excelBeanIndex < sum; excelBeanIndex++) {
//将页签内容解析生成bean
bean = importBean(excelBeanIndex);
beans.add(bean);
}
}
private Bean importBean(int excelBeanIndex) {
Bean bean = null;
String beanName = null;
String beanNote = null;
String since = null;
String version = null;
String author = null;
List<Parameter> parameters = new ArrayList<Parameter>();
Parameter parameter = null;
String parameterName = null;
String parameterNote = null;
String parameterClazz = null;
int beginParameter = 1;
hssfSheet=hssfWorkbook.getSheetAt(excelBeanIndex);
beanName = hssfWorkbook.getSheetName(excelBeanIndex);
beanNote = cellValue(0, 1);
since = Util.date2String(new Date(), "yyyy/MM/dd");
version = cellValue(0, 3);
author = cellValue(0, 4);
while (true) {
parameterName = cellValue(beginParameter+1, 0);
if (Util.isNullOrEmpty(parameterName))
break;
parameterNote = cellValue(beginParameter+1, 4);
// TODO 数据库字段类型转换成java基本类型
parameterClazz = cellValue(beginParameter+1, 1);
parameter = new Parameter(parameterName, parameterNote,
parameterClazz);
parameters.add(parameter);
beginParameter++;
}
bean = new Bean(beanName, beanNote, since, version, author, parameters);
return bean;
}
/**
* Step 2:根据模板地址,返回模板的字符串
* @param templatePath 某一个模板地址
* @return 读出模板的所有字符
*/
private String importTemplate(String templatePath, Bean bean) {
String s, temp = new String(), result = new String();
try {
bufferedReader = new BufferedReader(new FileReader(templatePath));
while ((s = bufferedReader.readLine()) != null) {
if (s.indexOf(PARAMETER_FOR_BEGIN) > 0) {
while (true) {
s = bufferedReader.readLine();
if (s == null || s.indexOf(PARAMETER_FOR_END) > 0)
break;
temp += s + "\n";
}
result += convertBean(temp, bean);
temp = "";
} else {
result += convert(s, bean) + "\n";
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
private String convertBean(String s, Bean bean) {
String result = "";
String temp;
List<Parameter> parameters = bean.getParameters();
for (Parameter parameter : parameters) {
temp = s;
result += converParameter(temp, parameter);
}
return result;
}
分享到:
相关推荐
3. **MethodInterceptor**:这是CGLib中最常用的Callback,它有一个`intercept`方法,该方法会在目标方法被调用时执行,可以在此处添加额外的操作,如日志记录、性能监控等。 4. **MethodProxy**:CGLib生成的代理...
在Spring框架中,"为bean动态的增加新方法"是一个重要的功能,它允许开发者在运行时为已有的Java Bean添加新的行为,而无需修改原始的类定义。这种能力源自于Spring AOP(面向切面编程)和Java代理技术。...
3. **生成Bean**:根据元数据,generator自动生成Java Bean类。每个表对应一个Java类,类的属性对应表的字段,每个属性都有getter和setter方法,便于操作。 4. **注解处理**:生成的Bean类可能会包含一些注解,如`@...
3. **OWL Classes**: OWL Classes代表概念或类别,是本体的核心元素。在Protege中,可以通过“Create subclass”来创建新类,并通过“Asserted Hierarchy”来管理类的层次结构。 4. **类编辑**: 在“CLASS EDITOR”...
Step 3: 创建子类 在 Animal 类下点击右键,选择“Create subclass”,并将其命名为“Herbivore”。然后,按照同样的方法创建 Plant 类和其子类 Tree。 Step 4: 定义排他关系 在 Animal 类下点击右键,选择...
直接输入java SqlToBean会出现如下帮助信息:H:BeanGenerator>java SqlToBean/**@author godblessyou@Date: 2005-05-06@OICQ: 345343747@param s:sourceFile "demo.sql" NaviCat导出的sql脚本文件,最好与...
- **导出本体**:可以将Protege构建的OWL本体导出为其他格式,如JADE的本体类,利用工具如beangenerator.jar进行转换。 9. **本体应用**: - **推理**:Protege支持基于OWL的推理,根据定义的类和属性,系统能够...
- 你需要编写一个Java程序,例如`BeanGenerator.java`和`BeanInfo.java`,这两个类可以生成JavaBean的get和set方法。 - 将编译后的jar文件放在EditPlus的plugins目录下,并设置好CLASSPATH环境变量。 - 在...