OSDN Git Service

リリース用に調整
[ea2ddl/ea2ddl.git] / ea2ddl-ddl / src / main / java / jp / sourceforge / ea2ddl / ddl / factory / impl / DatabaseModelFactoryImpl.java
index 055aca6..ae45280 100644 (file)
@@ -13,6 +13,7 @@ import jp.sourceforge.ea2ddl.dao.cbean.TOperationparamsCB;
 import jp.sourceforge.ea2ddl.dao.exbhv.TAttributeBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TConnectorBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TObjectBhv;\r
+import jp.sourceforge.ea2ddl.dao.exbhv.TObjectconstraintBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TObjectpropertiesBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TOperationBhv;\r
 import jp.sourceforge.ea2ddl.dao.exbhv.TOperationparamsBhv;\r
@@ -23,10 +24,13 @@ import jp.sourceforge.ea2ddl.dao.exentity.TObject;
 import jp.sourceforge.ea2ddl.dao.exentity.TOperation;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TOperationparams;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TPackage;\r
+import jp.sourceforge.ea2ddl.ddl.ConfigKey;\r
+import jp.sourceforge.ea2ddl.ddl.Constants;\r
 import jp.sourceforge.ea2ddl.ddl.factory.ModelFactory;\r
 import jp.sourceforge.ea2ddl.ddl.model.ColumnModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.DatabaseModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.ForeignKeyModel;\r
+import jp.sourceforge.ea2ddl.ddl.model.IndexModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.PrimaryKeyModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.TableModel;\r
 import jp.sourceforge.ea2ddl.ddl.model.UniqueModel;\r
@@ -46,6 +50,7 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        private TPackageBhv _tPackageBhv;\r
        private TObjectBhv _tObjectBhv;\r
        private TObjectpropertiesBhv _tObjectpropertiesBhv;\r
+       private TObjectconstraintBhv _tObjectconstraintBhv;\r
        private TAttributeBhv _tAttributeBhv;\r
        private TConnectorBhv _tConnectorBhv;\r
        private TOperationBhv _tOperationBhv;\r
@@ -72,6 +77,11 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        @Binding\r
+       public void setTObjectconstraintBhv(TObjectconstraintBhv objectconstraintBhv) {\r
+               _tObjectconstraintBhv = objectconstraintBhv;\r
+       }\r
+\r
+       @Binding\r
        public void setTAttributeBhv(TAttributeBhv attributeBhv) {\r
                _tAttributeBhv = attributeBhv;\r
        }\r
@@ -98,8 +108,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
         */\r
        public DatabaseModel create() {\r
                final DatabaseModel dbModel = new DatabaseModel();\r
-               final TPackage pkg = getPackage(_config.getProperty("er.package.tree"));\r
-               final List<TObject> objectList = _tObjectBhv.selectListByStereotype(pkg, "table");\r
+               final TPackage pkg = getPackage();\r
+               final List<TObject> objectList = _tObjectBhv.selectListByStereotype(pkg, Constants.STEREOTYPE_TABLE);\r
                _log.debug(objectList.size());\r
 \r
                for (TObject object : objectList) {\r
@@ -109,8 +119,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                return dbModel;\r
        }\r
 \r
-       protected TPackage getPackage(String packageTree) {\r
-               return _tPackageBhv.selectPackage(packageTree);\r
+       protected TPackage getPackage() {\r
+               return _tPackageBhv.selectPackage(_config.getProperty(ConfigKey.ER_PACKAGE_TREE));\r
        }\r
 \r
        protected TableModel generateTableModel(TObject tobject) {\r
@@ -118,13 +128,15 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                table.setName(tobject.getName());\r
                table.setAlias(tobject.getAlias());\r
                table.setNote(tobject.getNote());\r
-               if (_config.getBoolean("use.schema")) {\r
-                       table.setSchema(_tObjectpropertiesBhv.getValue(tobject, "OWNER"));\r
+               if (_config.getBoolean(_config.getProperty(ConfigKey.USE_SCHEMA))) {\r
+                       table.setSchema(_tObjectpropertiesBhv.getValue(tobject, Constants.OBJECT_PROPERTIES_OWNER));\r
                }\r
+               table.setSuppressCommonColumn(_tObjectconstraintBhv.hasConstraint(tobject, Constants.SUPPRESS_COMMON_COLUMN));\r
                generateColumnModel(table, tobject);\r
                generatePKModel(table, tobject);\r
                generateFKModel(table, tobject);\r
                generateUniqueModel(table, tobject);\r
+               generateIndexModel(table, tobject);\r
 \r
                return table;\r
        }\r
@@ -146,7 +158,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        protected void generatePKModel(TableModel table, TObject tobject) {\r
-               final ListResultBean<TOperation> pkList = _tOperationBhv.selectOperation(tobject, "PK");\r
+               final ListResultBean<TOperation> pkList = _tOperationBhv.selectOperation(tobject,\r
+                               Constants.STEREOTYPE_PRIMARY_KEY);\r
                if (pkList.isEmpty()) {\r
                        return;\r
                }\r
@@ -163,7 +176,8 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        }\r
 \r
        protected void generateFKModel(TableModel table, TObject tobject) {\r
-               final ListResultBean<TOperation> fkList = _tOperationBhv.selectOperation(tobject, "FK");\r
+               final ListResultBean<TOperation> fkList = _tOperationBhv.selectOperation(tobject,\r
+                               Constants.STEREOTYPE_FOREIGN_KEY);\r
                for (TOperation opeFK : fkList) {\r
                        final ForeignKeyModel fkModel = new ForeignKeyModel();\r
                        fkModel.setName(opeFK.getName());\r
@@ -201,7 +215,7 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
        protected void generateUniqueModel(TableModel table, TObject tobject) {\r
                final TOperationCB cb = new TOperationCB();\r
                cb.query().setObjectId_Equal(tobject.getObjectId());\r
-               cb.query().setStereotype_Equal("unique");\r
+               cb.query().setStereotype_Equal(Constants.STEREOTYPE_UNIQUE);\r
                final ListResultBean<TOperation> uniqueList = _tOperationBhv.selectList(cb);\r
                for (TOperation unique : uniqueList) {\r
                        final UniqueModel uniqueModel = new UniqueModel();\r
@@ -216,4 +230,18 @@ public class DatabaseModelFactoryImpl implements ModelFactory {
                        table.addUnique(uniqueModel);\r
                }\r
        }\r
+\r
+       protected void generateIndexModel(TableModel table, TObject tobject) {\r
+               final ListResultBean<TOperation> indexList = _tOperationBhv.selectOperation(tobject, "index");\r
+               for (TOperation index : indexList) {\r
+                       final IndexModel indexModel = new IndexModel();\r
+                       indexModel.setName(index.getName());\r
+                       final ListResultBean<TOperationparams> params = _tOperationparamsBhv.selectOperationParams(index);\r
+                       for (TOperationparams param : params) {\r
+                               indexModel.addColumn(param.getName());\r
+                       }\r
+                       table.addIndex(indexModel);\r
+               }\r
+       }\r
+\r
 }\r