ApiKey.java
package de.dlr.shepard.neo4Core.entities;
import de.dlr.shepard.util.Constants;
import de.dlr.shepard.util.HasId;
import java.util.Date;
import java.util.Objects;
import java.util.UUID;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import org.neo4j.ogm.annotation.typeconversion.Convert;
import org.neo4j.ogm.annotation.typeconversion.DateLong;
import org.neo4j.ogm.id.UuidStrategy;
import org.neo4j.ogm.typeconversion.UuidStringConverter;
@NodeEntity
@Data
@NoArgsConstructor
public class ApiKey implements HasId {
@Id
@GeneratedValue(strategy = UuidStrategy.class)
@Convert(UuidStringConverter.class)
private UUID uid;
private String name;
@DateLong
private Date createdAt;
private String jws;
@ToString.Exclude
@Relationship(type = Constants.BELONGS_TO)
private User belongsTo;
public ApiKey(String name, Date createdAt, User belongsTo) {
this.name = name;
this.createdAt = createdAt;
this.belongsTo = belongsTo;
}
/**
* For testing purposes only
*
* @param uid identifies the entity
*/
public ApiKey(UUID uid) {
this.uid = uid;
}
@Override
public String getUniqueId() {
return uid.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Objects.hash(createdAt, jws, name, uid);
result = prime * result + HasId.hashcodeHelper(belongsTo);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof ApiKey)) return false;
ApiKey other = (ApiKey) obj;
return (
HasId.equalsHelper(belongsTo, other.belongsTo) &&
Objects.equals(createdAt, other.createdAt) &&
Objects.equals(jws, other.jws) &&
Objects.equals(name, other.name) &&
Objects.equals(uid, other.uid)
);
}
}