package rocks.inspectit.ui.rcp.ci.form.input; 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.business.impl.ApplicationDefinition; import rocks.inspectit.ui.rcp.ci.form.editor.ApplicationDefinitionEditor; import rocks.inspectit.ui.rcp.formatter.ImageFormatter; import rocks.inspectit.ui.rcp.repository.CmrRepositoryDefinition; /** * Editor input for {@link ApplicationDefinitionEditor}. * * @author Alexander Wert * */ public class ApplicationDefinitionEditorInput implements IEditorInput { /** * {@link ApplicationDefinition} to be edited. */ private final ApplicationDefinition application; /** * {@link CmrRepositoryDefinition} to use when saving changes. */ private final CmrRepositoryDefinition cmrRepositoryDefinition; /** * Default constructor. * * @param application * {@link ApplicationDefinition} to be edited. * @param cmrRepositoryDefinition * {@link CmrRepositoryDefinition} to use when saving changes. */ public ApplicationDefinitionEditorInput(ApplicationDefinition application, CmrRepositoryDefinition cmrRepositoryDefinition) { Assert.isNotNull(application); Assert.isNotNull(cmrRepositoryDefinition); this.cmrRepositoryDefinition = cmrRepositoryDefinition; this.application = application; } /** * {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override public Object getAdapter(Class adapter) { if (ApplicationDefinition.class.equals(adapter)) { return getApplication(); } else if (CmrRepositoryDefinition.class.equals(adapter)) { return cmrRepositoryDefinition; } return null; } @Override public boolean exists() { return false; } @Override public ImageDescriptor getImageDescriptor() { return ImageDescriptor.createFromImage(ImageFormatter.getApplicationDefinitionImage(application)); } @Override public String getName() { return application.getApplicationName(); } @Override public IPersistableElement getPersistable() { return null; } @Override public String getToolTipText() { return ""; } public CmrRepositoryDefinition getCmrRepositoryDefinition() { return cmrRepositoryDefinition; } /** * Gets {@link #application}. * * @return {@link #application} */ public ApplicationDefinition getApplication() { return application; } /** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((application == null) ? 0 : application.hashCode()); 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; } ApplicationDefinitionEditorInput other = (ApplicationDefinitionEditorInput) obj; if (application == null) { if (other.application != null) { return false; } } else if (!application.equals(other.application)) { return false; } if (cmrRepositoryDefinition == null) { if (other.cmrRepositoryDefinition != null) { return false; } } else if (!cmrRepositoryDefinition.equals(other.cmrRepositoryDefinition)) { return false; } return true; } }