public boolean equals(Object obj) {
if (!(obj instanceof Model)) {
return false;
}
IModel other = (IModel) obj;
boolean result = false;
boolean typeEquals = this.type.equals(other.getType());
boolean authorEquals = this.author.equals(other.getAuthor());
boolean revisionEquals = this.revision.equals(other.getRevision());
boolean itemsSizeEquals = (this.getItems().size() == other.getItems()
.size());
boolean itemsContainsEquals = this.getItems().containsAll(
other.getItems());
boolean itemsEquals = (itemsSizeEquals && itemsContainsEquals);
result = (typeEquals && authorEquals && revisionEquals && itemsEquals);
return result;