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

BeanGenerator_3

 
阅读更多
	/**
	 * 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;
	}

 

分享到:
评论

相关推荐

    cglib 动态代理

    3. **MethodInterceptor**:这是CGLib中最常用的Callback,它有一个`intercept`方法,该方法会在目标方法被调用时执行,可以在此处添加额外的操作,如日志记录、性能监控等。 4. **MethodProxy**:CGLib生成的代理...

    为bean动态的增加新方法

    在Spring框架中,"为bean动态的增加新方法"是一个重要的功能,它允许开发者在运行时为已有的Java Bean添加新的行为,而无需修改原始的类定义。这种能力源自于Spring AOP(面向切面编程)和Java代理技术。...

    Database Bean Generator-开源

    3. **生成Bean**:根据元数据,generator自动生成Java Bean类。每个表对应一个Java类,类的属性对应表的字段,每个属性都有getter和setter方法,便于操作。 4. **注解处理**:生成的Bean类可能会包含一些注解,如`@...

    Protege使用笔记

    3. **OWL Classes**: OWL Classes代表概念或类别,是本体的核心元素。在Protege中,可以通过“Create subclass”来创建新类,并通过“Asserted Hierarchy”来管理类的层次结构。 4. **类编辑**: 在“CLASS EDITOR”...

    Protege笔记

    Step 3: 创建子类 在 Animal 类下点击右键,选择“Create subclass”,并将其命名为“Herbivore”。然后,按照同样的方法创建 Plant 类和其子类 Tree。 Step 4: 定义排他关系 在 Animal 类下点击右键,选择...

    JavaBeanGenerator

    直接输入java SqlToBean会出现如下帮助信息:H:BeanGenerator&gt;java SqlToBean/**@author godblessyou@Date: 2005-05-06@OICQ: 345343747@param s:sourceFile &quot;demo.sql&quot; NaviCat导出的sql脚本文件,最好与...

    protege3.1举例说明

    - **导出本体**:可以将Protege构建的OWL本体导出为其他格式,如JADE的本体类,利用工具如beangenerator.jar进行转换。 9. **本体应用**: - **推理**:Protege支持基于OWL的推理,根据定义的类和属性,系统能够...

    EditPlus配Java开发环境步骤

    - 你需要编写一个Java程序,例如`BeanGenerator.java`和`BeanInfo.java`,这两个类可以生成JavaBean的get和set方法。 - 将编译后的jar文件放在EditPlus的plugins目录下,并设置好CLASSPATH环境变量。 - 在...

Global site tag (gtag.js) - Google Analytics