package rocks.inspectit.ui.rcp.ci.form.input; import java.util.Collection; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IPersistableElement; import rocks.inspectit.shared.cs.ci.AgentMappings; import rocks.inspectit.shared.cs.ci.Environment; import rocks.inspectit.ui.rcp.InspectIT; import rocks.inspectit.ui.rcp.InspectITImages; import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition; /** * Input for the agent mapping editor. * * @author Ivan Senic * */ public class AgentMappingInput implements IEditorInput { /** * {@link CmrRepositoryDefinition}. */ private final CmrRepositoryDefinition cmrRepositoryDefinition; /** * Mappings. */ private final AgentMappings agentMappings; /** * Existing environments mappings can be linked to. */ private final Collection<Environment> environments; /** * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition}. * @param mappings * Mappings. * @param environments * Existing environments mappings can be linked to. */ public AgentMappingInput(CmrRepositoryDefinition cmrRepositoryDefinition, AgentMappings mappings, Collection<Environment> environments) { Assert.isNotNull(cmrRepositoryDefinition); Assert.isNotNull(mappings); Assert.isNotNull(environments); this.cmrRepositoryDefinition = cmrRepositoryDefinition; this.agentMappings = mappings; this.environments = environments; } /** * {@inheritDoc} */ @Override public boolean exists() { return false; } /** * {@inheritDoc} */ @Override public ImageDescriptor getImageDescriptor() { return InspectIT.getDefault().getImageDescriptor(InspectITImages.IMG_AGENT); } /** * {@inheritDoc} */ @Override public String getName() { return "Agent Mapping [" + cmrRepositoryDefinition.getName() + "]"; } /** * {@inheritDoc} */ @Override public IPersistableElement getPersistable() { return null; } /** * {@inheritDoc} */ @Override public String getToolTipText() { return ""; } /** * Gets {@link #cmrRepositoryDefinition}. * * @return {@link #cmrRepositoryDefinition} */ public CmrRepositoryDefinition getCmrRepositoryDefinition() { return cmrRepositoryDefinition; } /** * Gets {@link #agentMappings}. * * @return {@link #agentMappings} */ public AgentMappings getAgentMappings() { return agentMappings; } /** * Gets {@link #environments}. * * @return {@link #environments} */ public Collection<Environment> getEnvironments() { return environments; } /** * {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override public Object getAdapter(Class adapter) { if (CmrRepositoryDefinition.class.equals(adapter)) { return cmrRepositoryDefinition; } return null; } /** * {@inheritDoc} */ @Override public int hashCode() { // use only CMR in the hash code equals to only open one editor per CMR final int prime = 31; int result = 1; result = (prime * result) + ((cmrRepositoryDefinition == null) ? 0 : cmrRepositoryDefinition.hashCode()); return result; } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } AgentMappingInput other = (AgentMappingInput) obj; if (cmrRepositoryDefinition == null) { if (other.cmrRepositoryDefinition != null) { return false; } } else if (!cmrRepositoryDefinition.equals(other.cmrRepositoryDefinition)) { return false; } return true; } }