/*
* 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 com.addthis.hydra.job;
import com.addthis.codec.annotations.FieldConfig;
import com.addthis.codec.codables.Codable;
import com.google.common.annotations.VisibleForTesting;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
/**
* marker data for a replica copy of data
*/
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE,
isGetterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE)
public class JobTaskReplica implements Codable {
@FieldConfig(codable = true)
private String hostUuid;
@FieldConfig(codable = true)
private String jobUuid;
@FieldConfig(codable = true)
private int version; // equates to runCount in task
@FieldConfig(codable = true)
private long updated;
public JobTaskReplica() {
}
public JobTaskReplica(String hostUuid, String jobUuid, int version, long updated) {
this.hostUuid = hostUuid;
this.jobUuid = jobUuid;
this.version = version;
this.updated = updated;
}
public String getHostUUID() {
return hostUuid;
}
public void setHostUUID(String uuid) {
hostUuid = uuid;
}
public String getJobUUID() {
return jobUuid;
}
public void setJobUUID(String uuid) {
jobUuid = uuid;
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public long getLastUpdate() {
return updated;
}
public void setLastUpdate(long updated) {
this.updated = updated;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final JobTaskReplica other = (JobTaskReplica) obj;
if ((this.hostUuid == null) ? (other.hostUuid != null) : !this.hostUuid.equals(other.hostUuid)) {
return false;
}
if ((this.jobUuid == null) ? (other.jobUuid != null) : !this.jobUuid.equals(other.jobUuid)) {
return false;
}
if (this.version != other.version) {
return false;
}
if (this.updated != other.updated) {
return false;
}
return true;
}
@Override
public String toString() {
return "JobTaskReplica{" +
"hostUuid='" + hostUuid + '\'' +
", jobUuid='" + jobUuid + '\'' +
", version=" + version +
'}';
}
@Override
public int hashCode() {
int hash = 0;
hash = 31 * hash + (this.hostUuid != null ? this.hostUuid.hashCode() : 0);
hash = 31 * hash + (this.jobUuid != null ? this.jobUuid.hashCode() : 0);
hash = 31 * hash + this.version;
hash = 31 * hash + (int) (this.updated ^ (this.updated >>> 32));
return hash;
}
}