📄 servicebuilder.java
字号:
// Keep old version number
int x = oldContent.indexOf("@version $Revision:");
if (x != -1) {
int y = oldContent.indexOf("$", x);
y = oldContent.indexOf("$", y + 1);
String oldVersion = oldContent.substring(x, y + 1);
newContent = StringUtil.replace(
newContent, "@version $Rev: $", oldVersion);
}
}
else {
newContent = StringUtil.replace(
newContent, "@version $Rev: $", "@version $Revision: 1.183 $");
}
if (oldContent == null || !oldContent.equals(newContent)) {
FileUtil.write(file, newContent);
System.out.println("Writing " + file);
// Workaround for bug with XJavaDoc
file.setLastModified(
System.currentTimeMillis() - (Time.SECOND * 5));
}
tempFile.deleteOnExit();
}
public ServiceBuilder(
String fileName, String hbmFileName, String modelHintsFileName,
String springFileName, String springDataSourceFileName, String apiDir,
String implDir, String jsonFileName, String sqlDir, String sqlFileName,
boolean autoNamespaceTables, String baseModelImplPackage,
String basePersistencePackage, String beanLocatorUtilPackage,
String principalBeanPackage, String propsUtilPackage,
String springHibernatePackage, String springUtilPackage) {
new ServiceBuilder(
fileName, hbmFileName, modelHintsFileName, springFileName,
springDataSourceFileName, apiDir, implDir, jsonFileName, sqlDir,
sqlFileName, autoNamespaceTables, baseModelImplPackage,
basePersistencePackage, beanLocatorUtilPackage,
principalBeanPackage, propsUtilPackage, springHibernatePackage,
springUtilPackage, true);
}
public ServiceBuilder(
String fileName, String hbmFileName, String modelHintsFileName,
String springFileName, String springDataSourceFileName, String apiDir,
String implDir, String jsonFileName, String sqlDir, String sqlFileName,
boolean autoNamespaceTables, String baseModelImplPackage,
String basePersistencePackage, String beanLocatorUtilPackage,
String principalBeanPackage, String propsUtilPackage,
String springHibernatePackage, String springUtilPackage,
boolean build) {
try {
_badTableNames = ServiceBuilder.getBadTableNames();
_badCmpFields = ServiceBuilder.getBadCmpFields();
_hbmFileName = hbmFileName;
_modelHintsFileName = modelHintsFileName;
_springFileName = springFileName;
_springDataSourceFileName = springDataSourceFileName;
_apiDir = apiDir;
_implDir = implDir;
_jsonFileName = jsonFileName;
_sqlDir = sqlDir;
_sqlFileName = sqlFileName;
_autoNamespaceTables = autoNamespaceTables;
_baseModelImplPackage = baseModelImplPackage;
_basePersistencePackage = basePersistencePackage;
_beanLocatorUtilPackage = beanLocatorUtilPackage;
_principalBeanPackage = principalBeanPackage;
_propsUtilPackage = propsUtilPackage;
_springHibernatePackage = springHibernatePackage;
_springUtilPackage = springUtilPackage;
SAXReader reader = SAXReaderFactory.getInstance();
Document doc = reader.read(new File(fileName));
Element root = doc.getRootElement();
String packagePath = root.attributeValue("package-path");
_outputPath =
_implDir + "/" + StringUtil.replace(packagePath, ".", "/");
_serviceOutputPath =
_apiDir + "/" + StringUtil.replace(packagePath, ".", "/");
_packagePath = packagePath;
Element portlet = root.element("portlet");
Element namespace = root.element("namespace");
if (portlet != null) {
_portletName = portlet.attributeValue("name");
_portletShortName = portlet.attributeValue("short-name");
_portletPackageName =
TextFormatter.format(_portletName, TextFormatter.B);
_outputPath += "/" + _portletPackageName;
_serviceOutputPath += "/" + _portletPackageName;
_packagePath += "." + _portletPackageName;
}
else {
_portletShortName = namespace.getText();
}
_portletShortName = _portletShortName.trim();
if (!Validator.isChar(_portletShortName)) {
throw new RuntimeException(
"The namespace element must be a valid keyword");
}
_ejbList = new ArrayList();
List entities = root.elements("entity");
Iterator itr1 = entities.iterator();
while (itr1.hasNext()) {
Element entityEl = (Element)itr1.next();
String ejbName = entityEl.attributeValue("name");
String table = entityEl.attributeValue("table");
if (Validator.isNull(table)) {
table = ejbName;
if (_badTableNames.contains(ejbName)) {
table += "_";
}
}
if (_autoNamespaceTables) {
table = _portletShortName + "_" + table;
}
boolean localService = GetterUtil.getBoolean(
entityEl.attributeValue("local-service"), false);
boolean remoteService = GetterUtil.getBoolean(
entityEl.attributeValue("remote-service"), true);
String persistenceClass = GetterUtil.getString(
entityEl.attributeValue("persistence-class"),
_packagePath + ".service.persistence."+ ejbName +
"PersistenceImpl");
String dataSource = entityEl.attributeValue("data-source");
String sessionFactory = entityEl.attributeValue(
"session-factory");
String txManager = entityEl.attributeValue(
"tx-manager");
Iterator itr2 = null;
List pkList = new ArrayList();
List regularColList = new ArrayList();
List collectionList = new ArrayList();
List columnList = new ArrayList();
//add cyzhang 2008-08-27
List virtualColumnList = new ArrayList();
List tmpCols = entityEl.elements("virtualcolumn");
Iterator itrTmp = tmpCols.iterator();
while (itrTmp.hasNext()) {
Element column = (Element)itrTmp.next();
String columnName = column.attributeValue("name");
String columnType = column.attributeValue("type");
EntityColumn col = new EntityColumn(
columnName, "", columnType, false,
null, null, null, null,
null, false);
virtualColumnList.add(col);
}
//above add cyzhang 2008-08-27
List columns = entityEl.elements("column");
itr2 = columns.iterator();
while (itr2.hasNext()) {
Element column = (Element)itr2.next();
String columnName = column.attributeValue("name");
String columnDBName = column.attributeValue("db-name");
if (Validator.isNull(columnDBName)) {
columnDBName = columnName;
if (_badCmpFields.contains(columnName)) {
columnDBName += "_";
}
}
String columnType = column.attributeValue("type");
boolean primary = GetterUtil.getBoolean(
column.attributeValue("primary"), false);
String collectionEntity = column.attributeValue("entity");
String mappingKey = column.attributeValue("mapping-key");
String mappingTable = column.attributeValue("mapping-table");
String idType = column.attributeValue("id-type");
String idParam = column.attributeValue("id-param");
boolean convertNull = GetterUtil.getBoolean(
column.attributeValue("convert-null"), true);
EntityColumn col = new EntityColumn(
columnName, columnDBName, columnType, primary,
collectionEntity, mappingKey, mappingTable, idType,
idParam, convertNull);
if (primary) {
pkList.add(col);
}
if (columnType.equals("Collection")) {
collectionList.add(col);
}
else {
regularColList.add(col);
}
columnList.add(col);
}
EntityOrder order = null;
Element orderEl = entityEl.element("order");
if (orderEl != null) {
boolean asc = true;
if ((orderEl.attribute("by") != null) &&
(orderEl.attributeValue("by").equals("desc"))) {
asc = false;
}
List orderColsList = new ArrayList();
order = new EntityOrder(asc, orderColsList);
List orderCols = orderEl.elements("order-column");
Iterator itr3 = orderCols.iterator();
while (itr3.hasNext()) {
Element orderColEl = (Element)itr3.next();
String orderColName =
orderColEl.attributeValue("name");
boolean orderColCaseSensitive = GetterUtil.getBoolean(
orderColEl.attributeValue("case-sensitive"),
true);
boolean orderColByAscending = asc;
String orderColBy = GetterUtil.getString(
orderColEl.attributeValue("order-by"));
if (orderColBy.equals("asc")) {
orderColByAscending = true;
}
else if (orderColBy.equals("desc")) {
orderColByAscending = false;
}
EntityColumn col = Entity.getColumn(
orderColName, columnList);
col = (EntityColumn)col.clone();
col.setCaseSensitive(orderColCaseSensitive);
col.setOrderByAscending(orderColByAscending);
orderColsList.add(col);
}
}
List finderList = new ArrayList();
List finders = entityEl.elements("finder");
itr2 = finders.iterator();
while (itr2.hasNext()) {
Element finderEl = (Element)itr2.next();
String finderName = finderEl.attributeValue("name");
String finderReturn =
finderEl.attributeValue("return-type");
String finderWhere =
finderEl.attributeValue("where");
boolean finderDBIndex = GetterUtil.getBoolean(
finderEl.attributeValue("db-index"), true);
List finderColsList = new ArrayList();
List finderCols = finderEl.elements("finder-column");
Iterator itr3 = finderCols.iterator();
while (itr3.hasNext()) {
Element finderColEl = (Element)itr3.next();
String finderColName =
finderColEl.attributeValue("name");
String finderColDBName =
finderColEl.attributeValue("db-name");
if (Validator.isNull(finderColDBName)) {
finderColDBName = finderColName;
if (_badCmpFields.contains(finderColName)) {
finderColDBName += "_";
}
}
String finderColComparator = GetterUtil.getString(
finderColEl.attributeValue("comparator"), "=");
EntityColumn col = Entity.getColumn(
finderColName, columnList);
col = (EntityColumn)col.clone();
col.setDBName(finderColDBName);
col.setComparator(finderColComparator);
finderColsList.add(col);
}
finderList.add(new EntityFinder(
finderName, finderReturn, finderColsList, finderWhere,
finderDBIndex));
}
List txRequiredList = new ArrayList();
itr2 = entityEl.elements("tx-required").iterator();
while (itr2.hasNext()) {
Element txRequiredEl = (Element)itr2.next();
String txRequired = txRequiredEl.getText();
txRequiredList.add(txRequired);
}
_ejbList.add(
new Entity(
_packagePath, _portletName, _portletShortName, ejbName,
table, localService, remoteService, persistenceClass,
dataSource, sessionFactory, txManager, pkList,
regularColList, collectionList, columnList, order,
finderList, txRequiredList, virtualColumnList));
}
List exceptionList = new ArrayList();
if (root.element("exceptions") != null) {
List exceptions =
root.element("exceptions").elements("exception");
itr1 = exceptions.iterator();
while (itr1.hasNext()) {
Element exception = (Element)itr1.next();
exceptionList.add(exception.getText());
}
}
if (build) {
for (int x = 0; x < _ejbList.size(); x++) {
Entity entity = (Entity)_ejbList.get(x);
System.out.println("Building " + entity.getName());
if (true ||
entity.getName().equals("EmailAddress") ||
entity.getName().equals("User")) {
if (entity.hasColumns()) {
_createHBM(entity);
_createHBMUtil(entity);
_createPersistenceImpl(entity);
_createPersistence(entity);
_createPersistenceUtil(entity);
_createModelImpl(entity);
_createExtendedModelImpl(entity);
_createModel(entity);
_createExtendedModel(entity);
_createModelSoap(entity);
_createPool(entity);
if (entity.getPKList().size() > 1) {
_createEJBPK(entity);
}
}
if (entity.hasLocalService()) {
_createServiceBaseImpl(entity);
_createServiceImpl(entity, _LOCAL);
_createService(entity, _LOCAL);
_createServiceFactory(entity, _LOCAL);
_createServiceUtil(entity, _LOCAL);
}
if (entity.hasRemoteService()) {
_createServiceImpl(entity, _REMOTE);
_createService(entity, _REMOTE);
_createServiceFactory(entity, _REMOTE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -