alluxio.wire.MasterInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alluxio-core-common Show documentation
Show all versions of alluxio-core-common Show documentation
Common utilities shared in Alluxio core modules
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in compliance with the License, which is
* available at www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.wire;
import alluxio.conf.Configuration;
import alluxio.conf.PropertyKey;
import alluxio.util.CommonUtils;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import javax.annotation.concurrent.NotThreadSafe;
/**
* Master information.
*/
@NotThreadSafe
public final class MasterInfo {
private static final String NONE = "N/A";
/** Master's address. */
private Address mAddress;
/** The id of the master. */
private long mId;
/** Master's start time. */
private String mStartTime = NONE;
/** Master's last gain primacy time. */
private String mGainPrimacyTime = NONE;
/** Master's last lose primacy time. */
private String mLosePrimacyTime = NONE;
/** Master's last updated time. */
private String mLastUpdatedTime = NONE;
/** Master's version. */
private String mVersion = NONE;
/** Master's revision. */
private String mRevision = NONE;
/** Master's last checkpoint time. */
private String mLastCheckpointTime = NONE;
/** Master's journal entries since last checkpoint. */
private long mJournalEntriesSinceCheckpoint = 0;
/**
* Creates a new instance of {@link MasterInfo}.
*/
public MasterInfo() {}
/**
* Creates a new instance of {@link MasterInfo}.
*
* @param id the master id to use
* @param address the master address to use
*/
public MasterInfo(long id, Address address) {
mAddress = Preconditions.checkNotNull(address, "address");
mId = id;
}
/**
* @return the master's address
*/
public Address getAddress() {
return mAddress;
}
/**
* @return the id of the master
*/
public long getId() {
return mId;
}
/**
* @return the last updated time of the master
*/
public String getLastUpdatedTime() {
return mLastUpdatedTime;
}
/**
* @return the start time of the master
*/
public String getStartTime() {
return mStartTime;
}
/**
* @return the last gain primacy time of the master
*/
public String getGainPrimacyTime() {
return mGainPrimacyTime;
}
/**
* @return the last lose primacy time of the master
*/
public String getLosePrimacyTime() {
return mLosePrimacyTime;
}
/**
* @return the version of the master
*/
public String getVersion() {
return mVersion;
}
/**
* @return the revision of the master
*/
public String getRevision() {
return mRevision;
}
/**
* @return the last checkpoint time
*/
public String getLastCheckpointTime() {
return mLastCheckpointTime;
}
/**
* @return journal entries since last checkpoint
*/
public long getJournalEntriesSinceCheckpoint() {
return mJournalEntriesSinceCheckpoint;
}
/**
* @param address the master address information
* @return the master information
*/
public MasterInfo setAddress(Address address) {
mAddress = address;
return this;
}
/**
* @param id the master id
* @return the master information
*/
public MasterInfo setId(long id) {
mId = id;
return this;
}
/**
* @param lastUpdatedTime the last update time
* @return the master information
*/
public MasterInfo setLastUpdatedTime(String lastUpdatedTime) {
mLastUpdatedTime = lastUpdatedTime;
return this;
}
/**
* @param lastUpdatedTime the last update time in ms
* @return the master information
*/
public MasterInfo setLastUpdatedTimeMs(long lastUpdatedTime) {
return this.setLastUpdatedTime(convertMsToDate(lastUpdatedTime));
}
/**
* @param startTime the start time of the master
* @return the master information
*/
public MasterInfo setStartTime(String startTime) {
mStartTime = startTime;
return this;
}
/**
* @param startTime the start time of the master in ms
* @return the master information
*/
public MasterInfo setStartTimeMs(long startTime) {
return this.setStartTime(convertMsToDate(startTime));
}
/**
* @param gainPrimacyTime the last gain primacy time of the master
* @return the master information
*/
public MasterInfo setGainPrimacyTime(String gainPrimacyTime) {
mGainPrimacyTime = gainPrimacyTime;
return this;
}
/**
* @param gainPrimacyTimeMs the last gain primacy time of the master in ms
* @return the master information
*/
public MasterInfo setGainPrimacyTimeMs(long gainPrimacyTimeMs) {
return this.setGainPrimacyTime(convertMsToDate(gainPrimacyTimeMs));
}
/**
* @param losePrimacyTime the last lose primacy time of the master
* @return the master information
*/
public MasterInfo setLosePrimacyTime(String losePrimacyTime) {
mLosePrimacyTime = losePrimacyTime;
return this;
}
/**
* @param losePrimacyTimeMs the last lose primacy time of the master in ms
* @return the master information
*/
public MasterInfo setLosePrimacyTimeMs(long losePrimacyTimeMs) {
return this.setLosePrimacyTime(convertMsToDate(losePrimacyTimeMs));
}
/**
* @param version the version of the master
* @return the master information
*/
public MasterInfo setVersion(String version) {
mVersion = version;
return this;
}
/**
* @param revision the revision of the master
* @return the master information
*/
public MasterInfo setRevision(String revision) {
mRevision = revision;
return this;
}
/**
* @param lastCheckpointTime the last checkpoint time
* @return the master information
*/
public MasterInfo setLastCheckpointTime(String lastCheckpointTime) {
mLastCheckpointTime = lastCheckpointTime;
return this;
}
/**
* @param lastCheckpointTime the last checkpoint time in ms
* @return the master information
*/
public MasterInfo setLastCheckpointTimeMs(long lastCheckpointTime) {
return this.setLastCheckpointTime(convertMsToDate(lastCheckpointTime));
}
/**
* @param journalEntriesSinceCheckpoint journal entries since last checkpoint
* @return the master information
*/
public MasterInfo setJournalEntriesSinceCheckpoint(long journalEntriesSinceCheckpoint) {
mJournalEntriesSinceCheckpoint = journalEntriesSinceCheckpoint;
return this;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this).add("id", mId).add("address", mAddress)
.add("lastUpdatedTime", mLastUpdatedTime)
.add("startTime", mStartTime)
.add("gainPrimacyTime", mGainPrimacyTime)
.add("losePrimacyTime", mLosePrimacyTime)
.add("lastCheckpointTime", mLastCheckpointTime)
.add("journalEntriesSinceCheckpoint", mJournalEntriesSinceCheckpoint)
.add("version", mVersion)
.add("revision", mRevision).toString();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof MasterInfo)) {
return false;
}
MasterInfo that = (MasterInfo) o;
return mId == that.mId && Objects.equal(mAddress, that.mAddress)
&& mLastUpdatedTime.equals(that.mLastUpdatedTime)
&& mStartTime.equals(that.mStartTime)
&& mGainPrimacyTime.equals(that.mGainPrimacyTime)
&& mLosePrimacyTime.equals(that.mLosePrimacyTime)
&& mLastCheckpointTime.equals(that.mLastCheckpointTime)
&& mJournalEntriesSinceCheckpoint == that.mJournalEntriesSinceCheckpoint
&& mVersion.equals(that.mVersion)
&& mRevision.equals(that.mRevision);
}
@Override
public int hashCode() {
return Objects.hashCode(mId, mAddress, mLastUpdatedTime, mStartTime, mGainPrimacyTime,
mLosePrimacyTime, mLastCheckpointTime, mJournalEntriesSinceCheckpoint,
mVersion, mRevision);
}
private static String convertMsToDate(long timeMs) {
if (timeMs <= 0) {
return NONE;
}
return CommonUtils.convertMsToDate(timeMs,
Configuration.getString(PropertyKey.USER_DATE_FORMAT_PATTERN));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy