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

📄 modelentitychecker.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * $Id: ModelEntityChecker.java 5462 2005-08-05 18:35:48Z jonesde $ * *  Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org * *  Permission is hereby granted, free of charge, to any person obtaining a *  copy of this software and associated documentation files (the "Software"), *  to deal in the Software without restriction, including without limitation *  the rights to use, copy, modify, merge, publish, distribute, sublicense, *  and/or sell copies of the Software, and to permit persons to whom the *  Software is furnished to do so, subject to the following conditions: * *  The above copyright notice and this permission notice shall be included *  in all copies or substantial portions of the Software. * *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *  THE USE OR OTHER DEALINGS IN THE SOFTWARE. */package org.ofbiz.entity.model;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.TreeSet;import javolution.util.FastMap;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.UtilValidate;import org.ofbiz.entity.GenericDelegator;import org.ofbiz.entity.GenericEntityException;/** * Generic Entity - Entity Definition Checker *  * @author <a href="mailto:jonesde@ofbiz.org">David E. Jones </a> * @version $Rev: 5462 $ * @since 3.1 */public class ModelEntityChecker {    public static final String module = ModelEntityChecker.class.getName();    public static void checkEntities(GenericDelegator delegator, List warningList) throws GenericEntityException {        ModelReader reader = delegator.getModelReader();        TreeSet reservedWords = new TreeSet();        initReservedWords(reservedWords);        Map packages = FastMap.newInstance();        TreeSet packageNames = new TreeSet();        TreeSet tableNames = new TreeSet();        //put the entityNames TreeSets in a HashMap by packageName        Collection ec = reader.getEntityNames();        TreeSet entityNames = new TreeSet(ec);        Iterator ecIter = ec.iterator();        while (ecIter.hasNext()) {            String eName = (String) ecIter.next();            ModelEntity ent = reader.getModelEntity(eName);            //make sure the table name is in the list of all table names, if            // not null            if (UtilValidate.isNotEmpty(ent.getPlainTableName()))                    tableNames.add(ent.getPlainTableName());            TreeSet entities = (TreeSet) packages.get(ent.getPackageName());            if (entities == null) {                entities = new TreeSet();                packages.put(ent.getPackageName(), entities);                packageNames.add(ent.getPackageName());            }            entities.add(eName);        }        //int numberOfEntities = ec.size();        int numberShowed = 0;        TreeSet fkNames = new TreeSet();        TreeSet indexNames = new TreeSet();        Iterator piter = packageNames.iterator();        while (piter.hasNext()) {            String pName = (String) piter.next();            TreeSet entities = (TreeSet) packages.get(pName);            Iterator i = entities.iterator();            while (i.hasNext()) {                String entityName = (String) i.next();                String helperName = delegator.getEntityHelperName(entityName);                String groupName = delegator.getEntityGroupName(entityName);                ModelEntity entity = reader.getModelEntity(entityName);                if (helperName == null) {                    warningList.add("[HelperNotFound] No Helper (DataSource) definition found for entity " + entity.getEntityName() + ".");                    //only show group name warning if helper name not found                    if (groupName == null) {                            warningList.add("[GroupNotFound] No Group Name found for entity " + entity.getEntityName() + ".");                    }                }                if (entity.getPlainTableName() != null && entity.getPlainTableName().length() > 30) {                        warningList.add("[TableNameGT30] Table name [" + entity.getPlainTableName() + "] of entity " + entity.getEntityName() + " is longer than 30 characters.");                }                if (entity.getPlainTableName() != null && reservedWords.contains(entity.getPlainTableName().toUpperCase())) {                        warningList.add("[TableNameRW] Table name [" + entity.getPlainTableName() + "] of entity " + entity.getEntityName() + " is a reserved word.");                }                TreeSet ufields = new TreeSet();                Iterator fieldIter = entity.getFieldsIterator();                while (fieldIter.hasNext()) {                    ModelField field = (ModelField) fieldIter.next();                    ModelFieldType type = delegator.getEntityFieldType(entity,field.getType());                    if (ufields.contains(field.getName())) {                        warningList.add("[FieldNotUnique] Field [" + field.getName() + " of entity " + entity.getEntityName() + " is not unique for that entity.");                    } else {                        ufields.add(field.getName());                    }                    if (field.getColName().length() > 30 && !(entity instanceof ModelViewEntity)) {                        warningList.add("[FieldNameGT30] Column name [" + field.getColName() + "] of entity " + entity.getEntityName() + " is longer than 30 characters.");                    }                    if (field.getColName().length() == 0) {                        warningList.add("[FieldNameEQ0] Column name for field name \"" + field.getName() + "\" of entity " + entity.getEntityName() + " is empty (zero length).");                    }                    if (reservedWords.contains(field.getColName().toUpperCase()))                            warningList.add("[FieldNameRW] Column name " + field.getColName() + " of entity " + entity.getEntityName() + " is a reserved word.");                    if (type == null) {                        StringBuffer warningMsg = new StringBuffer();                        warningMsg.append("[FieldTypeNotFound] Field type " + field.getType() + " of entity " + entity.getEntityName() + " not found in field type definitions");                        if (helperName == null) {                            warningMsg.append(" (no helper definition found)");                        }                        warningMsg.append(".");                        warningList.add(warningMsg.toString());                    }                }                if (entity.getRelationsSize() > 0) {                    Iterator indexIter = entity.getIndexesIterator();                    while (indexIter.hasNext()) {                        ModelIndex index = (ModelIndex) indexIter.next();                        if (indexNames.contains(index.getName())) {                            warningList.add("[IndexDuplicateName] Index on entity "                                            + entity.getEntityName() + " has a duplicate index-name \""                                            + index.getName() + "\".");                        } else {                            indexNames.add(index.getName());                        }                        if (tableNames.contains(index.getName())) {                            warningList.add("[IndexTableDupName] Index on entity "                                            + entity.getEntityName() + " has an index-name \""                                            + index.getName() + "\" that is also being used as a table name.");                        }                        if (fkNames.contains(index.getName())) {                            warningList.add("[IndexFKDupName] Index on entity "                                            + entity.getEntityName()                                            + " has an index-name \""                                            + index.getName()                                            + "\" that is also being used as a Foreign Key name.");                        }                        // make sure all names are <= 18 characters                        if (index.getName().length() > 18) {                            warningList.add("[IndexNameGT18] The index name " + index.getName() + " (length:" + index.getName().length()                                            + ") was greater than 18 characters in length for entity " + entity.getEntityName() + ".");                        }                    }                    TreeSet relations = new TreeSet();                    for (int r = 0; r < entity.getRelationsSize(); r++) {

⌨️ 快捷键说明

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