OSDN Git Service

MySQLのAUTO_INCREMENTに対応した
[ea2ddl/ea2ddl.git] / ea2ddl-ddl / src / main / java / jp / sourceforge / ea2ddl / ddl / model / ColumnModel.java
index a7649ff..3541815 100644 (file)
@@ -9,6 +9,7 @@ import java.util.regex.Pattern;
 \r
 import jp.sourceforge.ea2ddl.common.config.Config;\r
 import jp.sourceforge.ea2ddl.dao.exentity.TAttribute;\r
+import jp.sourceforge.ea2ddl.dao.exentity.TAttributetag;\r
 \r
 /**\r
  * @author taktos\r
@@ -24,7 +25,7 @@ public class ColumnModel implements Serializable {
        private Integer _precision;\r
        private Integer _scale;\r
        private boolean nullable;\r
-       private boolean ordered;\r
+       private boolean autoIncrement;\r
 \r
        public static ColumnModel create(TAttribute columnDef, Config dictionary) {\r
                ColumnModel column = new ColumnModel();\r
@@ -33,7 +34,7 @@ public class ColumnModel implements Serializable {
                column.setType(columnDef, dictionary);\r
                column.setNullable(Integer.valueOf(0).equals(\r
                                columnDef.getAllowduplicates()));\r
-               column.setOrdered(Integer.valueOf(1).equals(columnDef.getIsordered()));\r
+               column.setAutoIncrement(columnDef);\r
                column.setNote(columnDef.getNotes());\r
                return column;\r
        }\r
@@ -49,21 +50,21 @@ public class ColumnModel implements Serializable {
                                setType(m.group(1));\r
                                if (m.group(3) != null) {\r
                                        Integer len = Integer.valueOf(m.group(3));\r
-                                       setScale(len);\r
+                                       setPrecision(len);\r
                                }\r
                                if (m.group(5) != null) {\r
-                                       setPrecision(Integer.valueOf(m.group(5)));\r
+                                       setScale(Integer.valueOf(m.group(5)));\r
                                }\r
                        }\r
                        return;\r
                }\r
                setType(columnDef.getType());\r
                if (columnDef.getLength() != null) {\r
-                       setScale(columnDef.getLength());\r
-               } else if (columnDef.getScale() != null) {\r
-                       setScale(columnDef.getScale());\r
+                       setPrecision(columnDef.getLength());\r
+               } else if (columnDef.getPrecision() != null) {\r
+                       setPrecision(columnDef.getScale());\r
                }\r
-               setPrecision(columnDef.getPrecision());\r
+               setScale(columnDef.getScale());\r
        }\r
 \r
        public boolean isNullable() {\r
@@ -74,12 +75,21 @@ public class ColumnModel implements Serializable {
                this.nullable = nullable;\r
        }\r
 \r
-       public boolean isOrdered() {\r
-               return ordered;\r
+       public boolean isAutoIncrement() {\r
+               return autoIncrement;\r
        }\r
 \r
-       public void setOrdered(boolean ordered) {\r
-               this.ordered = ordered;\r
+       public void setAutoIncrement(boolean autoIncrement) {\r
+               this.autoIncrement = autoIncrement;\r
+       }\r
+\r
+       public void setAutoIncrement(TAttribute columnDef) {\r
+               TAttributetag tag = columnDef.getTags().get("AutoNum");\r
+               if (tag != null && "True".equals(tag.getValue())) {\r
+                       this.autoIncrement = true;\r
+               } else {\r
+                       this.autoIncrement = false;\r
+               }\r
        }\r
 \r
        private String defaultValue;\r
@@ -143,17 +153,17 @@ public class ColumnModel implements Serializable {
        public String getDefinition() {\r
                StringBuilder b = new StringBuilder();\r
                b.append(_type);\r
-               if (_scale != null) {\r
-                       b.append("(").append(_scale);\r
-                       if (_precision != null) {\r
-                               b.append(",").append(_precision);\r
+               if (_precision != null) {\r
+                       b.append("(").append(_precision);\r
+                       if (_scale != null) {\r
+                               b.append(",").append(_scale);\r
                        }\r
                        b.append(")");\r
                }\r
                if (!isNullable()) {\r
                        b.append(" NOT NULL");\r
                }\r
-               if (isOrdered()) {\r
+               if (isAutoIncrement()) {\r
                        b.append(" AUTO_INCREMENT");\r
                }\r
                return b.toString();\r