initial quantum version
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / model / ColumnImpl.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/ColumnImpl.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/ColumnImpl.java
new file mode 100644 (file)
index 0000000..eb4e6cb
--- /dev/null
@@ -0,0 +1,148 @@
+package com.quantum.model;
+
+import com.quantum.sql.SQLHelper;
+
+/**
+ * @author BC
+ */
+class ColumnImpl implements Column, Comparable {
+
+    private int size;
+    private boolean nullable;
+    private int primaryKeyOrder;
+    private String name;
+    private Entity entity;
+    private int numberOfFractionalDigits;
+    private String typeName;
+    private int type;
+    private int position;
+    private String remarks;
+    
+    ColumnImpl(Entity entity, String name, String typeName, int type, 
+        int size, int numberOfFractionalDigits, boolean nullable, int position,
+        String remarks) {
+           
+        this.entity = entity;
+        this.name = name;
+        this.typeName = typeName;
+        this.type = type;
+        this.size = size;
+        this.numberOfFractionalDigits = numberOfFractionalDigits;
+        this.nullable = nullable;
+        this.position = position;
+        this.remarks = remarks;
+    }
+
+    /**
+     * @see com.quantum.model.Column#getPrimaryKeyOrder()
+     */
+    public int getPrimaryKeyOrder() {
+        return this.primaryKeyOrder;
+    }
+
+    /**
+     * @see com.quantum.model.Column#isPrimaryKey()
+     */
+    public boolean isPrimaryKey() {
+        return getPrimaryKeyOrder() > 0;
+    }
+
+    /**
+     * @see com.quantum.model.Column#getName()
+     */
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * @see com.quantum.model.Column#getTypeName()
+     */
+    public String getTypeName() {
+        return this.typeName;
+    }
+
+    /**
+     * @see com.quantum.model.Column#isReal()
+     */
+    public boolean isReal() {
+        return false;
+    }
+
+    /**
+     * @see com.quantum.model.Column#isNullable()
+     */
+    public boolean isNullable() {
+        return this.nullable;
+    }
+
+    /**
+     * @see com.quantum.model.Column#isNumeric()
+     */
+    public boolean isNumeric() {
+        return SQLHelper.isNumeric(this.type);
+    }
+
+    /**
+     * @see com.quantum.model.Column#getType()
+     */
+    public int getType() {
+        return this.type;
+    }
+
+    /**
+     * @see com.quantum.model.Column#getParentEntity()
+     */
+    public Entity getParentEntity() {
+        return this.entity;
+    }
+
+    /**
+     * @see com.quantum.model.Column#getQualifiedTableName()
+     */
+    public String getQualifiedTableName() {
+        return this.entity.getCondQualifiedName();
+    }
+    /**
+     * @param i
+     */
+    void setPrimaryKeyOrder(int i) {
+        this.primaryKeyOrder = i;
+    }
+
+    /**
+     * @see java.lang.Comparable#compareTo(java.lang.Object)
+     */
+    public int compareTo(Object o) {
+        ColumnImpl that = (ColumnImpl) o;
+        if (this.isPrimaryKey() && that.isPrimaryKey()) {
+            return this.primaryKeyOrder - that.primaryKeyOrder;
+        } else if (this.isPrimaryKey()) {
+            return -1;
+        } else if (that.isPrimaryKey()) {
+            return 1;
+        } else {
+            return this.position - that.position;
+        }
+    }
+    /**
+     * @return
+     */
+    public int getSize() {
+        return size;
+    }
+
+    /**
+     * @return
+     */
+    public int getNumberOfFractionalDigits() {
+        return numberOfFractionalDigits;
+    }
+
+    /**
+     * @return
+     */
+    public String getRemarks() {
+        return this.remarks == null ? "" : this.remarks;
+    }
+
+}