package rocks.inspectit.ui.rcp.model.ci;
import org.eclipse.core.runtime.Assert;
import com.google.common.base.Objects;
import rocks.inspectit.shared.cs.ci.Environment;
import rocks.inspectit.ui.rcp.model.Leaf;
import rocks.inspectit.ui.rcp.provider.IEnvironmentProvider;
import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition;
/**
* Environment leaf for displaying in the tree.
*
* @author Ivan Senic
*
*/
public class EnvironmentLeaf extends Leaf implements IEnvironmentProvider {
/**
* {@link Environment}.
*/
private Environment environment;
/**
* {@link CmrRepositoryDefinition}.
*/
private CmrRepositoryDefinition cmrRepositoryDefinition;
/**
* Default constructor.
*
* @param environment
* {@link Environment}
* @param cmrRepositoryDefinition
* {@link CmrRepositoryDefinition}.
*/
public EnvironmentLeaf(Environment environment, CmrRepositoryDefinition cmrRepositoryDefinition) {
super();
Assert.isNotNull(environment);
Assert.isNotNull(cmrRepositoryDefinition);
this.environment = environment;
this.cmrRepositoryDefinition = cmrRepositoryDefinition;
this.setName(environment.getName());
this.setTooltip(environment.getName());
}
/**
* {@inheritDoc}
*/
@Override
public Environment getEnvironment() {
return environment;
}
/**
* {@inheritDoc}
*/
@Override
public CmrRepositoryDefinition getCmrRepositoryDefinition() {
return cmrRepositoryDefinition;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
return Objects.hashCode(environment, 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;
}
EnvironmentLeaf that = (EnvironmentLeaf) object;
return Objects.equal(this.environment, that.environment) && Objects.equal(this.cmrRepositoryDefinition, that.cmrRepositoryDefinition);
}
}