From 7ef5ea45f54ef411e9ef75c40d6d624030b040b4 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Thu, 2 Jul 2009 14:29:39 +0000 Subject: [PATCH] Override of equals() so objects can be properly used in Collections API. Also relates to Wabit bug 1927: Drill operations not working in XMLA http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=1927 git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@256 c6a108a4-781c-0410-a6c6-c2d559e19af0 --- src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java | 6 ++++++ src/org/olap4j/driver/xmla/XmlaOlap4jElement.java | 4 ++++ src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java | 6 ++++++ src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java | 6 ++++++ src/org/olap4j/driver/xmla/XmlaOlap4jMember.java | 6 ++++++ src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java | 6 ++++++ 6 files changed, 34 insertions(+) diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java b/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java index 2c2c292..c77a3ec 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java @@ -62,6 +62,12 @@ public Hierarchy getDefaultHierarchy() { } return hierarchies.get(0); } + + public boolean equeals(Object obj) { + return (obj instanceof XmlaOlap4jDimension) && + this.uniqueName.equals( + ((XmlaOlap4jDimension)obj).getUniqueName()); + } } // End XmlaOlap4jDimension.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java b/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java index 06c2fef..2a85ea4 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java @@ -67,6 +67,10 @@ public int hashCode() { } return hash; } + + // Keep this declaration abstract as a reminder to + // overriding classes. + abstract public boolean equeals(Object obj); } // End XmlaOlap4jElement.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java b/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java index ca5c4cd..898fa3a 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java @@ -78,6 +78,12 @@ public NamedList getRootMembers() throws OlapException { list.addAll(memberList); return Olap4jUtil.cast(list); } + + public boolean equeals(Object obj) { + return (obj instanceof XmlaOlap4jHierarchy) && + this.uniqueName.equals( + ((XmlaOlap4jHierarchy)obj).getUniqueName()); + } } // End XmlaOlap4jHierarchy.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java b/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java index 8ab3d85..7970f84 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java @@ -136,6 +136,12 @@ public List getMembers() throws OlapException { public int getCardinality() { return cardinality; } + + public boolean equeals(Object obj) { + return (obj instanceof XmlaOlap4jLevel) && + this.uniqueName.equals( + ((XmlaOlap4jLevel)obj).getUniqueName()); + } } // End XmlaOlap4jLevel.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java b/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java index 4206290..66ec40d 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jMember.java @@ -315,6 +315,12 @@ static int toInteger(Object o) { public Member getDataMember() { throw new UnsupportedOperationException(); } + + public boolean equeals(Object obj) { + return (obj instanceof XmlaOlap4jMember) && + this.uniqueName.equals( + ((XmlaOlap4jMember)obj).getUniqueName()); + } } // End XmlaOlap4jMember.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java b/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java index 313863b..340a539 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java @@ -62,6 +62,12 @@ public Set getType() { public ContentType getContentType() { return contentType; } + + public boolean equeals(Object obj) { + return (obj instanceof XmlaOlap4jProperty) && + this.uniqueName.equals( + ((XmlaOlap4jProperty)obj).getUniqueName()); + } } // End XmlaOlap4jProperty.java