/*
* Copyright 2016-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.cassandra.test.integration.forcequote.compositeprimarykey.entity;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import org.springframework.cassandra.core.PrimaryKeyType;
import org.springframework.data.cassandra.mapping.Column;
import org.springframework.data.cassandra.mapping.PrimaryKey;
import org.springframework.data.cassandra.mapping.PrimaryKeyClass;
import org.springframework.data.cassandra.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.mapping.Table;
/**
* @author Matthew T. Adams
*/
@Table(value = "identity_correlations")
public class CorrelationEntity {
@PrimaryKeyClass
public static class IdentityEntity implements Serializable {
private static final long serialVersionUID = 1027559675696864950L;
@PrimaryKeyColumn(ordinal = 0, type = PrimaryKeyType.PARTITIONED) private String type;
@PrimaryKeyColumn(ordinal = 1, type = PrimaryKeyType.PARTITIONED) private String value;
@PrimaryKeyColumn(name = "correlated_type", ordinal = 2,
type = PrimaryKeyType.CLUSTERED) private String correlatedType;
@PrimaryKeyColumn(ordinal = 3, type = PrimaryKeyType.CLUSTERED) private Date ts;
@PrimaryKeyColumn(name = "correlated_value", ordinal = 4,
type = PrimaryKeyType.CLUSTERED) private String correlatedValue;
public IdentityEntity() {}
public IdentityEntity(String type, String value) {
this.type = type;
this.value = value;
}
public IdentityEntity(String type, String value, String correlatedType) {
this.type = type;
this.value = value;
this.correlatedType = correlatedType;
}
public IdentityEntity(String type, String value, String correlatedType, Date ts) {
this.type = type;
this.value = value;
this.correlatedType = correlatedType;
this.ts = ts;
}
public IdentityEntity(String type, String value, String correlatedType, Date ts, String correlatedValue) {
this.type = type;
this.value = value;
this.correlatedType = correlatedType;
this.ts = ts;
this.correlatedValue = correlatedValue;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getCorrelatedType() {
return correlatedType;
}
public void setCorrelatedType(String correlatedType) {
this.correlatedType = correlatedType;
}
public Date getTs() {
return ts;
}
public void setTs(Date ts) {
this.ts = ts;
}
public String getCorrelatedValue() {
return correlatedValue;
}
public void setCorrelatedValue(String correlatedValue) {
this.correlatedValue = correlatedValue;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof IdentityEntity))
return false;
IdentityEntity that = (IdentityEntity) o;
if (correlatedType != null ? !correlatedType.equals(that.correlatedType) : that.correlatedType != null)
return false;
if (correlatedValue != null ? !correlatedValue.equals(that.correlatedValue) : that.correlatedValue != null)
return false;
if (ts != null ? !ts.equals(that.ts) : that.ts != null)
return false;
if (!type.equals(that.type))
return false;
return value.equals(that.value);
}
@Override
public int hashCode() {
int result = type.hashCode();
result = 31 * result + value.hashCode();
result = 31 * result + (correlatedType != null ? correlatedType.hashCode() : 0);
result = 31 * result + (ts != null ? ts.hashCode() : 0);
result = 31 * result + (correlatedValue != null ? correlatedValue.hashCode() : 0);
return result;
}
}
@PrimaryKey(forceQuote = true) private IdentityEntity identityEntity;
@Column private Map<String, String> extra;
public CorrelationEntity() {}
public CorrelationEntity(IdentityEntity identityEntity, Map<String, String> extra) {
this.identityEntity = identityEntity;
this.extra = extra;
}
public CorrelationEntity(String type, String value, String correlatedType, Date ts, String correlatedValue,
Map<String, String> extra) {
this.identityEntity = new IdentityEntity(type, value, correlatedType, ts, correlatedValue);
this.extra = extra;
}
public IdentityEntity getIdentityEntity() {
return identityEntity;
}
public void setIdentityEntity(IdentityEntity identityEntity) {
this.identityEntity = identityEntity;
}
public Map<String, String> getExtra() {
return extra;
}
public void setExtra(Map<String, String> extra) {
this.extra = extra;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (!(o instanceof CorrelationEntity))
return false;
CorrelationEntity that = (CorrelationEntity) o;
if (extra != null ? !extra.equals(that.extra) : that.extra != null)
return false;
return identityEntity.equals(that.identityEntity);
}
@Override
public int hashCode() {
int result = identityEntity.hashCode();
result = 31 * result + (extra != null ? extra.hashCode() : 0);
return result;
}
}