initial quantum version
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / model / IndexImpl.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/IndexImpl.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/model/IndexImpl.java
new file mode 100644 (file)
index 0000000..2bda513
--- /dev/null
@@ -0,0 +1,69 @@
+package com.quantum.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author BC
+ */
+/*package*/ class IndexImpl implements Index {
+    
+    private String name;
+    private List columnNames = Collections.synchronizedList(new ArrayList()); 
+    private Entity entity;
+    private List ascending = Collections.synchronizedList(new ArrayList());
+    
+    IndexImpl(Entity entity, String name) {
+            
+        this.name = name;
+        this.entity = entity;
+    }
+    
+    void addColumn(String columnName, Boolean ascending) {
+        this.columnNames.add(columnName);
+        this.ascending.add(ascending);
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    /**
+     * @see com.quantum.model.Index#getNumberOfColumns()
+     */
+    public int getNumberOfColumns() {
+        return this.columnNames.size();
+    }
+
+    /**
+     * @see com.quantum.model.Index#getColumnName(int)
+     */
+    public String getColumnName(int ordinalPosition) {
+        return (String) this.columnNames.get(ordinalPosition);
+    }
+
+    /**
+     * @see com.quantum.model.Index#getParentEntity()
+     */
+    public Entity getParentEntity() {
+        return this.entity;
+    }
+
+    /**
+     * @see com.quantum.model.Index#isAscending()
+     */
+    public boolean isAscending(int ordinalPosition) {
+        Boolean ascending = (Boolean) this.ascending.get(ordinalPosition);
+        return Boolean.TRUE.equals(ascending);
+    }
+
+    /**
+     * @see com.quantum.model.Index#isDescending()
+     */
+    public boolean isDescending(int ordinalPosition) {
+        Boolean ascending = (Boolean) this.ascending.get(ordinalPosition);
+        return Boolean.FALSE.equals(ascending);
+    }
+
+}