Implemented BuiltinType equals() and hashCode()

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_stabilization@382 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/AUnionType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/AUnionType.java
index 4ba5a4c..1e70f15 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/AUnionType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/AUnionType.java
@@ -27,7 +27,7 @@
     }
 
     public boolean isNullableType() {
-    	return unionList.size() == 2 && unionList.get(0).getTypeTag().equals(BuiltinType.ANULL.getTypeTag());
+    	return unionList.size() == 2 && unionList.get(0).equals(BuiltinType.ANULL);
     }
 
     @Override
diff --git a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/BuiltinType.java b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/BuiltinType.java
index 3af6e6f..0ec3b21 100644
--- a/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/BuiltinType.java
+++ b/asterix-om/src/main/java/edu/uci/ics/asterix/om/types/BuiltinType.java
@@ -515,15 +515,26 @@
         return getTypeTag().toString();
     }
 
-    @Override
-    public boolean deepEqual(IAObject obj) {
-        return obj == this;
-    }
+	@Override
+	public boolean deepEqual(IAObject obj) {
+		if (obj == this) {
+			return true;
+		}
+		if (!(obj instanceof BuiltinType)) {
+			return false;
+		}
+		return ((BuiltinType) obj).getTypeTag().equals(getTypeTag());
+	}
 
     @Override
     public boolean equals(Object object) {
         return this.deepEqual((IAObject) object);
     }
+    
+    @Override
+    public int hashCode() {
+    	return getTypeTag().hashCode();
+    }
 
     @Override
     public int hash() {