From: Vyacheslav Tyutyunkov Date: Fri, 29 Mar 2013 09:48:31 +0000 (+0700) Subject: #21 X-Git-Tag: v1.2.12~380 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fc0f8c966e9e56496d575dbe1fd1d2306bc0fb3c;p=platform%2Fupstream%2Fejdb.git #21 --- diff --git a/jejdb/src/java/org/ejdb/bson/BSONObject.java b/jejdb/src/java/org/ejdb/bson/BSONObject.java index 1afb0bb..9fb8fea 100644 --- a/jejdb/src/java/org/ejdb/bson/BSONObject.java +++ b/jejdb/src/java/org/ejdb/bson/BSONObject.java @@ -14,9 +14,9 @@ import java.util.Set; /** * BSON object. - * + *

* NOTE: - * - {@link BSONObject#ID_KEY} must be valid {@link ObjectId}((@link ObjectId} instance or valid byte[] or String) + * - {@link BSONObject#ID_KEY} must be valid {@link ObjectId}((@link ObjectId} instance or valid byte[] or String) * * @author Tyutyunkov Vyacheslav (tve@softmotions.com) * @version $Id$ @@ -52,8 +52,8 @@ public class BSONObject { * Constructs new BSON object with initial data. * The same as: * - * BSONObject obj = new BSONObject(); - * obj.put(key, value); + * BSONObject obj = new BSONObject(); + * obj.put(key, value); * */ public BSONObject(String key, Object value) { @@ -64,8 +64,8 @@ public class BSONObject { * Constructs new BSON object and init data from specified Map. * The same as * - * BSONObject obj = new BSONObject(); - * obj.putAll(data); + * BSONObject obj = new BSONObject(); + * obj.putAll(data); * */ public BSONObject(Map data) { @@ -192,18 +192,30 @@ public class BSONObject { data.clear(); } + /** + * If returns true fields order will be checks on equal. + */ + protected boolean isFieldsOrderImportant() { + return false; + } + @Override public boolean equals(Object o) { if (this != o && (null == o || !(o instanceof BSONObject))) { return false; } - Map thatData = ((BSONObject) o).data; + BSONObject other = (BSONObject) o; + Map thatData = other.data; if (thatData.size() != data.size()) { return false; } + if ((isFieldsOrderImportant() || other.isFieldsOrderImportant()) && !fields.equals(other.fields())) { + return false; + } + try { Iterator> i = data.entrySet().iterator(); while (i.hasNext()) { diff --git a/jejdb/src/java/org/ejdb/driver/BSONQueryObject.java b/jejdb/src/java/org/ejdb/driver/BSONQueryObject.java index 890a31d..2384c59 100644 --- a/jejdb/src/java/org/ejdb/driver/BSONQueryObject.java +++ b/jejdb/src/java/org/ejdb/driver/BSONQueryObject.java @@ -49,4 +49,9 @@ public class BSONQueryObject extends BSONObject { public ObjectId getId() { return null; } + + @Override + protected boolean isFieldsOrderImportant() { + return true; + } }