package rocks.inspectit.ui.rcp.model;
import com.google.common.base.Objects;
import rocks.inspectit.shared.all.cmr.model.PlatformIdent;
import rocks.inspectit.shared.all.communication.data.cmr.AgentStatusData;
import rocks.inspectit.ui.rcp.provider.ICmrRepositoryAndAgentProvider;
import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition;
/**
* Agent leaf for the tree in the Repository Manager.
*
* @author Ivan Senic
*
*/
public class AgentLeaf extends Leaf implements ICmrRepositoryAndAgentProvider {
/**
* Agent.
*/
private PlatformIdent platformIdent;
/**
* {@link AgentStatusData}.
*/
private AgentStatusData agentStatusData;
/**
* {@link CmrRepositoryDefinition}.
*/
private final CmrRepositoryDefinition cmrRepositoryDefinition;
/**
* Is this leaf part of the folder.
*/
private final boolean inFolder;
/**
* Default constructor.
*
* @param platformIdent
* Agent to display in leaf.
* @param agentStatusData
* {@link AgentStatusData}
* @param cmrRepositoryDefinition
* {@link CmrRepositoryDefinition}
* @param inFolder
* Is this leaf part of the folder.
*/
public AgentLeaf(PlatformIdent platformIdent, AgentStatusData agentStatusData, CmrRepositoryDefinition cmrRepositoryDefinition, boolean inFolder) {
this.platformIdent = platformIdent;
this.agentStatusData = agentStatusData;
this.cmrRepositoryDefinition = cmrRepositoryDefinition;
this.inFolder = inFolder;
}
/**
* Gets {@link #platformIdent}.
*
* @return {@link #platformIdent}
*/
@Override
public PlatformIdent getPlatformIdent() {
return platformIdent;
}
/**
* Sets {@link #platformIdent}.
*
* @param platformIdent
* New value for {@link #platformIdent}
*/
public void setPlatformIdent(PlatformIdent platformIdent) {
this.platformIdent = platformIdent;
}
/**
* Gets {@link #agentStatusData}.
*
* @return {@link #agentStatusData}
*/
public AgentStatusData getAgentStatusData() {
return agentStatusData;
}
/**
* Sets {@link #agentStatusData}.
*
* @param agentStatusData
* New value for {@link #agentStatusData}
*/
public void setAgentStatusData(AgentStatusData agentStatusData) {
this.agentStatusData = agentStatusData;
}
/**
* {@inheritDoc}
*/
@Override
public String getName() {
return platformIdent.getAgentName();
}
/**
* Gets {@link #inFolder}.
*
* @return {@link #inFolder}
*/
public boolean isInFolder() {
return inFolder;
}
/**
* Gets {@link #cmrRepositoryDefinition}.
*
* @return {@link #cmrRepositoryDefinition}
*/
@Override
public CmrRepositoryDefinition getCmrRepositoryDefinition() {
return cmrRepositoryDefinition;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
return Objects.hashCode(super.hashCode(), platformIdent, cmrRepositoryDefinition);
}
/**
* {@inheritDoc}
*/
@Override
public boolean equals(Object object) {
if (this == object) {
return true;
}
if (object == null) {
return false;
}
if (getClass() != object.getClass()) {
return false;
}
if (!super.equals(object)) {
return false;
}
AgentLeaf that = (AgentLeaf) object;
return Objects.equal(this.platformIdent, that.platformIdent) && Objects.equal(this.cmrRepositoryDefinition, that.cmrRepositoryDefinition);
}
}