+ if (o == null) {
+ return 1;
+ }
+
+ String id = (getUuid() == null ? "" : getUuid())
+ + (getLuid() == null ? "" : getLuid());
+ String oId = (getUuid() == null ? "" : o.getUuid())
+ + (o.getLuid() == null ? "" : o.getLuid());
+
+ return id.compareTo(oId);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof MetaData)) {
+ return false;
+ }
+
+ return compareTo((MetaData) obj) == 0;
+ }
+
+ @Override
+ public int hashCode() {
+ String uuid = getUuid();
+ if (uuid == null) {
+ uuid = "" + title + author + source;
+ }
+
+ return uuid.hashCode();