View Javadoc
1   package de.dlr.shepard.context.collection.io;
2   
3   import de.dlr.shepard.common.neo4j.io.AbstractDataObjectIO;
4   import de.dlr.shepard.common.util.HasId;
5   import de.dlr.shepard.context.collection.entities.Collection;
6   import lombok.Data;
7   import lombok.NoArgsConstructor;
8   import org.eclipse.microprofile.openapi.annotations.media.Schema;
9   
10  @Data
11  @NoArgsConstructor
12  @Schema(name = "Collection")
13  public class CollectionIO extends AbstractDataObjectIO {
14  
15    @Schema(readOnly = true, required = true)
16    private long[] dataObjectIds;
17  
18    @Schema(readOnly = true, required = true)
19    private long[] incomingIds;
20  
21    public CollectionIO(Collection collection) {
22      super(collection);
23      this.dataObjectIds = extractShepardIds(collection.getDataObjects());
24      this.incomingIds = extractShepardIds(collection.getIncoming());
25    }
26  
27    @Override
28    public boolean equals(Object o) {
29      if (this == o) return true;
30      if (!super.equals(o)) return false;
31      if (!(o instanceof CollectionIO)) return false;
32      CollectionIO other = (CollectionIO) o;
33      return (
34        HasId.areEqualSets(dataObjectIds, other.dataObjectIds) && HasId.areEqualSets(incomingIds, other.incomingIds)
35      );
36    }
37  
38    @Override
39    public int hashCode() {
40      final int prime = 31;
41      int result = super.hashCode();
42      result = prime * result + HasId.hashcodeHelper(dataObjectIds);
43      result = prime * result + HasId.hashcodeHelper(incomingIds);
44      return result;
45    }
46  }