package rocks.inspectit.ui.rcp.model.storage;
import org.eclipse.core.runtime.Assert;
import com.google.common.base.Objects;
import rocks.inspectit.shared.cs.storage.LocalStorageData;
import rocks.inspectit.ui.rcp.InspectIT;
import rocks.inspectit.ui.rcp.InspectITImages;
import rocks.inspectit.ui.rcp.model.Leaf;
import rocks.inspectit.ui.rcp.provider.ILocalStorageDataProvider;
/**
* Leaf used for displaying the local storages in the storage tree.
*
* @author Ivan Senic
*
*/
public class LocalStorageLeaf extends Leaf implements ILocalStorageDataProvider {
/**
* {@link LocalStorageData}.
*/
private LocalStorageData localStorageData;
/**
* Default constructor.
*
* @param localStorageData
* {@link LocalStorageData} leaf to hold.
*/
public LocalStorageLeaf(LocalStorageData localStorageData) {
super();
Assert.isNotNull(localStorageData);
this.localStorageData = localStorageData;
this.setName(localStorageData.getName());
this.setTooltip(localStorageData.getName());
this.setImage(InspectIT.getDefault().getImage(InspectITImages.IMG_STORAGE_DOWNLOADED));
}
/**
* Gets {@link #localStorageData}.
*
* @return {@link #localStorageData}
*/
@Override
public LocalStorageData getLocalStorageData() {
return localStorageData;
}
/**
* Sets {@link #localStorageData}.
*
* @param localStorageData
* New value for {@link #localStorageData}
*/
public void setLocalStorageData(LocalStorageData localStorageData) {
this.localStorageData = localStorageData;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
return Objects.hashCode(localStorageData);
}
/**
* {@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;
}
LocalStorageLeaf that = (LocalStorageLeaf) object;
return Objects.equal(this.localStorageData, that.localStorageData);
}
}