View Javadoc
1   package de.dlr.shepard.common.neo4j.io;
2   
3   import de.dlr.shepard.common.neo4j.entities.AbstractDataObject;
4   import de.dlr.shepard.common.neo4j.io.validation.NoDelimiterInMapKeys;
5   import java.util.HashMap;
6   import java.util.Map;
7   import java.util.Objects;
8   import lombok.Data;
9   import lombok.NoArgsConstructor;
10  import org.eclipse.microprofile.openapi.annotations.media.Schema;
11  
12  @Data
13  @NoArgsConstructor
14  @Schema(name = "AbstractDataObject")
15  public abstract class AbstractDataObjectIO extends BasicEntityIO {
16  
17    @Schema(nullable = true)
18    private String description;
19  
20    @NoDelimiterInMapKeys
21    private Map<String, String> attributes = new HashMap<>();
22  
23    protected AbstractDataObjectIO(AbstractDataObject dataObject) {
24      super(dataObject);
25      this.description = dataObject.getDescription();
26      this.attributes = dataObject.getAttributes();
27    }
28  
29    @Override
30    public boolean equals(Object o) {
31      if (this == o) return true;
32      if (!super.equals(o)) return false;
33      if (!(o instanceof AbstractDataObjectIO)) return false;
34      AbstractDataObjectIO other = (AbstractDataObjectIO) o;
35      return (Objects.equals(description, other.description) && Objects.equals(attributes, other.attributes));
36    }
37  
38    @Override
39    public int hashCode() {
40      final int prime = 31;
41      int result = super.hashCode();
42      result = prime * result + Objects.hash(description, attributes);
43      return result;
44    }
45  }