⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servicebuilder.java

📁 自动生成java代码,包括service
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
							_createServiceUtil(entity, _REMOTE);

							if (Validator.isNotNull(_jsonFileName)) {
								_createServiceHttp(entity);
								_createServiceJSON(entity);

								if (entity.hasColumns()) {
									_createServiceJSONSerializer(entity);
								}

								_createServiceSoap(entity);
							}
						}
					}
				}//end of for 循环

				_createHBMXML(); 
				_createModelHintsXML();
				_createSpringXML();
                
				System.out.println("#####" + _jsonFileName);
				if (Validator.isNotNull(_jsonFileName)) {
					_createJSONJS();
					_createRemotingXML();//cyzhang 
				}

				_createSQLIndexes();
				_createSQLTables();
				_createSQLSequences();

				_createExceptions(exceptionList);

				_createBaseModelImpl();
				_createBasePersistence();
				_createBeanLocatorUtil();
				_createDynamicDialect();
				_createFinderCache();
				_createHibernateConfiguration();
				_createHibernateUtil();
				_createPrincipalBean();
				_createProps();
				_createPropsUtil();
				_createSpringDataSourceXML();
				_createSpringUtil();
			}// enf of build
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}

	public Entity getEntity(String name) throws IOException {
		int pos = name.lastIndexOf(".");

		if (pos == -1) {
			pos = _ejbList.indexOf(new Entity(name));

			return (Entity)_ejbList.get(pos);
		}
		else {
			String refPackage = name.substring(0, pos);
			String refPackageDir = StringUtil.replace(refPackage, ".", "/");
			String refEntity = name.substring(pos + 1, name.length());
			String refFileName =
				_implDir + "/" + refPackageDir + "/service.xml";

			File refFile = new File(refFileName);

			boolean useTempFile = false;

			if (!refFile.exists()) {
				refFileName = Time.getTimestamp();
				refFile = new File(refFileName);

				ClassLoader classLoader = getClass().getClassLoader();

				FileUtil.write(
					refFileName,
					StringUtil.read(
						classLoader, refPackageDir + "/service.xml"));

				useTempFile = true;
			}

			ServiceBuilder serviceBuilder = new ServiceBuilder(
				refFileName, _hbmFileName, _modelHintsFileName, _springFileName,
				_springDataSourceFileName, _apiDir, _implDir, _jsonFileName,
				_sqlDir, _sqlFileName, _autoNamespaceTables,
				_baseModelImplPackage, _basePersistencePackage,
				_beanLocatorUtilPackage, _principalBeanPackage,
				_propsUtilPackage, _springHibernatePackage, _springUtilPackage,
				false);

			Entity entity = serviceBuilder.getEntity(refEntity);

			if (useTempFile) {
				refFile.deleteOnExit();
			}

			return entity;
		}
	}

	private void _appendNullLogic(EntityColumn col, StringMaker sm) {
		sm.append("if (" + col.getName() + " == null) {");

		if (col.getComparator().equals("=")) {
			sm.append("query.append(\"" + col.getDBName() + " IS NULL\");");
		}
		else if (col.getComparator().equals("<>") || col.getComparator().equals("!=")) {
			sm.append("query.append(\"" + col.getDBName() + " IS NOT NULL\");");
		}
		else {
			sm.append("query.append(\"" + col.getDBName() + " " + col.getComparator() + " null\");");
		}

		sm.append("} else {");
	}

	private void _createBaseModelImpl() throws IOException {
		if (_baseModelImplPackage.equals("com.bkgd.platform.system.model.impl")) {
			return;
		}

		// Content

		String content = StringUtil.read(getClass().getClassLoader(), "com/liferay/portal/tools/dependencies/BaseModelImpl.java");

		content = StringUtil.replace(
			content,
			new String[] {
				"package com.bkgd.platform.system.model.impl;",
				"import com.bkgd.platform.system.util.PropsUtil;"
			},
			new String[] {
				"package " + _baseModelImplPackage + ";",
				"import " + _propsUtilPackage + ".PropsUtil;"
			});

		// Write file

		File ejbFile = new File(_implDir + "/" + StringUtil.replace(_baseModelImplPackage, ".", "/") + "/BaseModelImpl.java");

		FileUtil.write(ejbFile, content, true);
	}

	private void _createBasePersistence() throws IOException {
		if (_basePersistencePackage.equals("com.bkgd.platform.system.service.persistence")) {
			return;
		}

		// Content

		String content = StringUtil.read(getClass().getClassLoader(), "com/liferay/portal/tools/dependencies/BasePersistence.java");

		content = StringUtil.replace(
			content,
			new String[] {
				"package com.bkgd.platform.system.service.persistence;",
				"import com.bkgd.platform.system.spring.hibernate."
			},
			new String[] {
				"package " + _basePersistencePackage + ";",
				"import " + _springHibernatePackage + "."
			});

		// Write file

		File ejbFile = new File(_implDir + "/" + StringUtil.replace(_basePersistencePackage, ".", "/") + "/BasePersistence.java");

		FileUtil.write(ejbFile, content, true);
	}

	private void _createBeanLocatorUtil() throws IOException {
		if (_beanLocatorUtilPackage.equals("com.bkgd.platform.system.kernel.bean")) {
			return;
		}

		StringMaker sm = new StringMaker();

		// Package

		sm.append("package " + _beanLocatorUtilPackage + ";");

		// Imports

		sm.append("import " + _springUtilPackage + " .SpringUtil;");
		sm.append("import com.bkgd.platform.system.util.CollectionFactory;");
		sm.append("import java.util.Set;");
		sm.append("import org.apache.commons.logging.Log;");
		sm.append("import org.apache.commons.logging.LogFactory;");
		sm.append("import org.springframework.context.ApplicationContext;");

		// Class declaration

		sm.append("public class BeanLocatorUtil {");

		// Methods

		sm.append("public static Object locate(String name) {");
		sm.append("if (_beans.contains(name)) {");
		sm.append("if (_log.isWarnEnabled()) {");
		sm.append("_log.warn(\"Cache the reference to \" + name + \" for better performance\");");
		sm.append("}");
		sm.append("}");
		sm.append("ApplicationContext ctx = SpringUtil.getContext();");
		sm.append("if (_log.isDebugEnabled()) {");
		sm.append("_log.debug(\"Locating \" + name);");
		sm.append("}");
		sm.append("Object obj = ctx.getBean(name);");
		sm.append("_beans.add(name);");
		sm.append("return obj;");
		sm.append("}");

		// Fields

		sm.append("private static Log _log = LogFactory.getLog(BeanLocatorUtil.class);");

		sm.append("private static Set _beans = CollectionFactory.getHashSet();");

		// Class close brace

		sm.append("}");

		// Write file

		File ejbFile = new File(_implDir + "/" + StringUtil.replace(_beanLocatorUtilPackage, ".", "/") + "/BeanLocatorUtil.java");

		writeFile(ejbFile, sm.toString());
	}

	private void _createDynamicDialect() throws IOException {
		if (_springHibernatePackage.equals("com.bkgd.platform.system.spring.hibernate")) {
			return;
		}

		// Content

		String content = StringUtil.read(getClass().getClassLoader(), "com/liferay/portal/tools/dependencies/DynamicDialect.java");

		content = StringUtil.replace(
			content,
			new String[] {
				"package com.bkgd.platform.system.spring.hibernate;"
			},
			new String[] {
				"package " + _springHibernatePackage + ";"
			});

		// Write file

		File ejbFile = new File(_implDir + "/" + StringUtil.replace(_springHibernatePackage, ".", "/") + "/DynamicDialect.java");

		FileUtil.write(ejbFile, content, true);
	}

	private void _createEJBPK(Entity entity) throws IOException {
		List pkList = entity.getPKList();

		StringMaker sm = new StringMaker();

		// Package

		sm.append("package " + _packagePath + ".service.persistence;");

		// Imports

		sm.append("import com.bkgd.platform.system.kernel.util.DateUtil;");
		sm.append("import com.bkgd.platform.system.kernel.util.StringMaker;");
		sm.append("import com.bkgd.platform.system.kernel.util.StringPool;");
		sm.append("import java.io.Serializable;");
		sm.append("import java.util.Date;");

		// Class declaration

		sm.append("public class " + entity.getPKClassName() + " implements Comparable, Serializable {");

		// Fields

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			sm.append("public " + col.getType() + " " + col.getName() + ";");
		}

		// Default constructor

		sm.append("public " + entity.getPKClassName() + "() {}");

		// Primary key constructor

		sm.append("public " + entity.getPKClassName() + "(");

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			sm.append(col.getType() + " " + col.getName());

			if ((i + 1) != pkList.size()) {
				sm.append(", ");
			}
		}

		sm.append(") {");

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			sm.append("this." + col.getName() + " = " + col.getName() + ";");
		}

		sm.append("}");

		// Getter and setter methods

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			if (!col.isCollection()) {
				sm.append("public " + col.getType() + " get" + col.getMethodName() + "() {");
				sm.append("return " + col.getName() + ";");
				sm.append("}");

				sm.append("public void set" + col.getMethodName() + "(" + col.getType() + " " + col.getName() + ") {");
				sm.append("this." + col.getName() + " = " + col.getName() + ";");
				sm.append("}");
			}
		}

		// Compare to method

		sm.append("public int compareTo(Object obj) {");
		sm.append("if (obj == null) {");
		sm.append("return -1;");
		sm.append("}");
		sm.append(entity.getPKClassName() + " pk = (" + entity.getPKClassName() + ")obj;");
		sm.append("int value = 0;");

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			String colType = col.getType();

			if (!col.isPrimitiveType()) {
				if (colType.equals("Date")) {
					sm.append("value = DateUtil.compareTo(" + col.getName() + ", pk." + col.getName() + ");");
				}
				else {
					sm.append("value = " + col.getName() + ".compareTo(pk." + col.getName() + ");");
				}
			}
			else {
				if (colType.equals("boolean")) {
					sm.append("if (!" + col.getName() + " && pk." + col.getName() + ") {");
					sm.append("value = -1;");
					sm.append("}");
					sm.append("else if (" + col.getName() + " && !pk." + col.getName() + ") {");
					sm.append("value = 1;");
					sm.append("}");
					sm.append("else {");
					sm.append("value = 0;");
					sm.append("}");
				}
				else {
					sm.append("if (" + col.getName() + " < pk." + col.getName() + ") {");
					sm.append("value = -1;");
					sm.append("}");
					sm.append("else if (" + col.getName() + " > pk." + col.getName() + ") {");
					sm.append("value = 1;");
					sm.append("}");
					sm.append("else {");
					sm.append("value = 0;");
					sm.append("}");
				}
			}

			sm.append("if (value != 0) {");
			sm.append("return value;");
			sm.append("}");
		}

		sm.append("return 0;");
		sm.append("}");

		// Equals method

		sm.append("public boolean equals(Object obj) {");
		sm.append("if (obj == null) {");
		sm.append("return false;");
		sm.append("}");
		sm.append(entity.getPKClassName() + " pk = null;");
		sm.append("try {");
		sm.append("pk = (" + entity.getPKClassName() + ")obj;");
		sm.append("}");
		sm.append("catch (ClassCastException cce) {");
		sm.append("return false;");
		sm.append("}");
		sm.append("if (");

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			if (!col.isPrimitiveType()) {
				sm.append("(" + col.getName() + ".equals(pk." + col.getName() + "))");
			}
			else {
				sm.append("(" + col.getName() + " == pk." + col.getName() + ")");
			}

			if ((i + 1) != pkList.size()) {
				sm.append(" && ");
			}
		}

		sm.append(") {");
		sm.append("return true;");
		sm.append("} else {");
		sm.append("return false;");
		sm.append("}");
		sm.append("}");

		// Hash code method

		sm.append("public int hashCode() {");
		sm.append("return (");

		for (int i = 0; i < pkList.size(); i++) {
			EntityColumn col = (EntityColumn)pkList.get(i);

			if (i != 0) {
				sm.append(" + ");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -