View Javadoc

    1   /*
    2    * joey-gen and its relative products are published under the terms
    3    * of the Apache Software License.
    4    *
    5    * Created on 2004/08/10 16:58:33
    6    */
    7   package org.asyrinx.joey.gen.model.rdb;
    8
    9   import java.util.ArrayList;
    10  import java.util.Iterator;
    11  import java.util.List;
    12
    13  import org.apache.commons.lang.builder.EqualsBuilder;
    14  import org.asyrinx.brownie.core.lang.NumberUtils;
    15  import org.asyrinx.joey.gen.jdbc.JdbcUtils;
    16  import org.asyrinx.joey.gen.model.Element;
    17
    18  /***
    19   * @author akima
    20   */
    21  public class Column extends Element {
    22
    23      /***
    24       */
    25      public Column() {
    26          this(null, null, null);
    27      }
    28
    29      /***
    30       * @param table
    31       * @param name
    32       * @param type
    33       */
    34      public Column(Table parent, String name, String type) {
    35          super(parent, name);
    36          this.type = type;
    37      }
    38
    39      /***
    40       * @param table
    41       * @param name
    42       * @param type
    43       * @param size
    44       */
    45      public Column(Table parent, String name, String type, String size) {
    46          this(parent, name, type, size, false, false);
    47      }
    48
    49      /***
    50       * @param table
    51       * @param name
    52       * @param type
    53       * @param size
    54       * @param required
    55       */
    56      public Column(Table parent, String name, String type, String size, boolean required) {
    57          this(parent, name, type, size, required, false, null);
    58      }
    59
    60      /***
    61       * @param table
    62       * @param name
    63       * @param type
    64       * @param size
    65       * @param required
    66       * @param primaryKey
    67       */
    68      public Column(Table parent, String name, String type, String size, boolean required,
    69              boolean primaryKey) {
    70          this(parent, name, type, size, required, primaryKey, null);
    71      }
    72
    73      /***
    74       * @param table
    75       * @param name
    76       * @param type
    77       * @param size
    78       * @param required
    79       * @param primaryKey
    80       * @param defaultValue
    81       */
    82      public Column(Table parent, String name, String type, String size, boolean required,
    83              boolean primaryKey, String defaultValue) {
    84          super(parent, name);
    85          this.type = type;
    86          this.size = size;
    87          this.required = required;
    88          this.primaryKey = primaryKey;
    89          this.defaultValue = defaultValue;
    90      }
    91
    92      /*
    93       * (non-Javadoc)
    94       *
    95       * @see org.asyrinx.joey.gen.model.Element#getParentElement()
    96       */
    97      public Table getParent() {
    98          return (Table) super.getParentElement();
    99      }
    100
    101     private String type = null;
    102
    103     private String size = null;
    104
    105     private String decimalSize = null;
    106
    107     private boolean required = false;
    108
    109     private boolean primaryKey = false;
    110
    111     private String defaultValue = null;
    112
    113     private String enum = null;
    114
    115     private boolean autoIncrement = false;
    116
    117     private String idMethod = null;
    118
    119     private String fk = null; //一方向の関連になるFK
    120
    121     private String fkType = ForeignKeyType.NORMAL.getName();
    122
    123     private String fkCascade = "none";
    124
    125     private boolean indexed = false;
    126
    127     private boolean unique = false;
    128
    129     private boolean extended = false;
    130
    131     private boolean caption = false;
    132
    133     /*
    134      * (non-Javadoc)
    135      *
    136      * @see java.lang.Object#equals(java.lang.Object)
    137      */
    138     public boolean equals(Object obj) {
    139         if (!super.equals(obj))
    140             return false;
    141         if (!(obj instanceof Column))
    142             return false;
    143         final Column other = (Column) obj;
    144         return new EqualsBuilder() //
    145                 .append(this.getType(), other.getType()) //
    146                 .append(this.getSize(), other.getSize()) //
    147                 .append(this.isRequired(), other.isRequired()) //
    148                 .append(this.isPrimaryKey(), other.isPrimaryKey()) //
    149                 .append(this.getDefaultValue(), other.getDefaultValue()) //
    150                 .append(this.getEnum(), other.getEnum()) //
    151                 .isEquals();
    152     }
    153
    154     /***
    155      * @return Returns the defaultValue.
    156      */
    157     public String getDefault() {
    158         return getDefaultValue();
    159     }
    160
    161     public int getSizeAsInt() {
    162         return NumberUtils.toInt(getSize(), 0);
    163     }
    164
    165     public int getDeciamlSizeAsInt() {
    166         return NumberUtils.toInt(getDecimalSize(), 0);
    167     }
    168
    169     /***
    170      * @param defaultValue
    171      *            The defaultValue to set.
    172      */
    173     public void setDefault(String defaultValue) {
    174         this.setDefaultValue(defaultValue);
    175     }
    176
    177     /***
    178      * @return Returns the defaultValue.
    179      */
    180     public String getDefaultValue() {
    181         return defaultValue;
    182     }
    183
    184     /***
    185      * @param defaultValue
    186      *            The defaultValue to set.
    187      */
    188     public void setDefaultValue(String defaultValue) {
    189         this.defaultValue = defaultValue;
    190     }
    191
    192     /***
    193      * @return Returns the primaryKey.
    194      */
    195     public boolean isPrimaryKey() {
    196         return primaryKey;
    197     }
    198
    199     /***
    200      * @param primaryKey
    201      *            The primaryKey to set.
    202      */
    203     public void setPrimaryKey(boolean primaryKey) {
    204         this.primaryKey = primaryKey;
    205     }
    206
    207     /***
    208      * @return Returns the required.
    209      */
    210     public boolean isRequired() {
    211         return required;
    212     }
    213
    214     /***
    215      * @param required
    216      *            The required to set.
    217      */
    218     public void setRequired(boolean required) {
    219         this.required = required;
    220     }
    221
    222     /***
    223      * @return Returns the size.
    224      */
    225     public String getSize() {
    226         return size;
    227     }
    228
    229     /***
    230      * @param size
    231      *            The size to set.
    232      */
    233     public void setSize(String size) {
    234         this.size = size;
    235     }
    236
    237     /***
    238      * @return Returns the type.
    239      */
    240     public String getType() {
    241         return type;
    242     }
    243
    244     /***
    245      * @param type
    246      *            The type to set.
    247      */
    248     public void setType(String type) {
    249         this.type = type;
    250     }
    251
    252     public int getJdbcType() {
    253         return JdbcUtils.toJdbcType(this.getType());
    254     }
    255
    256     /***
    257      * @return Returns the enum.
    258      */
    259     public String getEnum() {
    260         return enum;
    261     }
    262
    263     /***
    264      * @param enum
    265      *            The enum to set.
    266      */
    267     public void setEnum(String enum) {
    268         this.enum = enum;
    269     }
    270
    271     public RdbEnumeration getEnumeration() {
    272         final Table table = getParent();
    273         if (table == null)
    274             return null;
    275         final Database database = table.getParent();
    276         return database.getEnumerations().getEnumeration(getEnum());
    277     }
    278
    279     /***
    280      * @return Returns the autoIncrement.
    281      */
    282     public boolean isAutoIncrement() {
    283         return autoIncrement;
    284     }
    285
    286     /***
    287      * @param autoIncrement
    288      *            The autoIncrement to set.
    289      */
    290     public void setAutoIncrement(boolean autoIncrement) {
    291         this.autoIncrement = autoIncrement;
    292     }
    293
    294     /***
    295      * @return Returns the idMethod.
    296      */
    297     public String getIdMethod() {
    298         return idMethod;
    299     }
    300
    301     /***
    302      * @param idMethod
    303      *            The idMethod to set.
    304      */
    305     public void setIdMethod(String idMethod) {
    306         this.idMethod = idMethod;
    307     }
    308
    309     /***
    310      * @return Returns the fk.
    311      */
    312     public String getFk() {
    313         return fk;
    314     }
    315
    316     /***
    317      * @param fk
    318      *            The fk to set.
    319      */
    320     public void setFk(String fk) {
    321         this.fk = fk;
    322     }
    323
    324     public String getFkCascade() {
    325         return fkCascade;
    326     }
    327
    328     public void setFkCascade(String fkcascade) {
    329         this.fkCascade = fkcascade;
    330     }
    331
    332     public String getFkType() {
    333         return fkType;
    334     }
    335
    336     public void setFkType(String fkType) {
    337         this.fkType = fkType;
    338     }
    339
    340     /***
    341      * @deprecated
    342      * @return
    343      */
    344     /*
    345      * public String getFkb() { throw new UnsupportedOperationException(); }
    346      */
    347
    348     /***
    349      * @deprecated
    350      * @param fkb
    351      */
    352     public void setFkb(String fkb) {
    353         throw new UnsupportedOperationException();
    354     }
    355
    356     /***
    357      * @return Returns the indexed.
    358      */
    359     public boolean isIndexed() {
    360         return indexed;
    361     }
    362
    363     /***
    364      * @param indexed
    365      *            The indexed to set.
    366      */
    367     public void setIndexed(boolean indexed) {
    368         this.indexed = indexed;
    369     }
    370
    371     public boolean isUnique() {
    372         return unique;
    373     }
    374
    375     public void setUnique(boolean unique) {
    376         this.unique = unique;
    377     }
    378
    379     /***
    380      * @return Returns the extended.
    381      */
    382     public boolean isExtended() {
    383         return extended;
    384     }
    385
    386     /***
    387      * @param extended
    388      *            The extended to set.
    389      */
    390     public void setExtended(boolean extended) {
    391         this.extended = extended;
    392     }
    393
    394     public List getForeignKeysContainsAsLocal() {
    395         final List result = new ArrayList();
    396         final Table table = this.getParent();
    397         if (table == null)
    398             return result;
    399         for (Iterator i = table.getForeignKeys().iterator(); i.hasNext();) {
    400             final ForeignKey fk = (ForeignKey) i.next();
    401             if (fk.containsAsLocal(this))
    402                 result.add(fk);
    403         }
    404         return result;
    405     }
    406
    407     public String getDecimalSize() {
    408         return decimalSize;
    409     }
    410
    411     public void setDecimalSize(String decimalSize) {
    412         this.decimalSize = decimalSize;
    413     }
    414
    415     public boolean isCaption() {
    416         return caption;
    417     }
    418
    419     public void setCaption(boolean caption) {
    420         this.caption = caption;
    421     }
    422
    423 }