| /****************************************************************************** |
| * Copyright (c) 2002, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| ****************************************************************************/ |
| |
| package org.eclipse.gmf.runtime.common.ui.util; |
| |
| import org.eclipse.ui.IWorkbenchPage; |
| |
| /** |
| * A standard implementation of <code>IWorkbenchPartDescriptor</code> interface |
| * @author melaasar |
| */ |
| public class WorkbenchPartDescriptor implements IWorkbenchPartDescriptor { |
| |
| /** the part's id */ |
| private final String partId; |
| /** the part's class */ |
| private final Class partClass; |
| /** the part's page */ |
| private final IWorkbenchPage partPage; |
| |
| /** |
| * Creates a new instance of the workbench part descriptor |
| * |
| * @param partId The workbench part id |
| * @param partClass The workbench part class |
| * @param partPage The workbench part page |
| */ |
| public WorkbenchPartDescriptor( |
| String partId, |
| Class partClass, |
| IWorkbenchPage partPage) { |
| assert null != partId; |
| assert null != partClass; |
| assert null != partPage; |
| this.partId = partId; |
| this.partClass = partClass; |
| this.partPage = partPage; |
| } |
| |
| /** |
| * @see org.eclipse.gmf.runtime.common.ui.util.IWorkbenchPartDescriptor#getPartId() |
| */ |
| public String getPartId() { |
| return partId; |
| } |
| |
| /** |
| * @see org.eclipse.gmf.runtime.common.ui.util.IWorkbenchPartDescriptor#getPartClass() |
| */ |
| public Class getPartClass() { |
| return partClass; |
| } |
| |
| /** |
| * @see org.eclipse.gmf.runtime.common.ui.util.IWorkbenchPartDescriptor#getPartPage() |
| */ |
| public IWorkbenchPage getPartPage() { |
| return partPage; |
| } |
| |
| /** |
| * @see java.lang.Object#equals(java.lang.Object) |
| */ |
| public boolean equals(Object obj) { |
| if (obj instanceof WorkbenchPartDescriptor) { |
| WorkbenchPartDescriptor descriptor = (WorkbenchPartDescriptor) obj; |
| return descriptor.getPartId().equals(getPartId()) |
| && descriptor.getPartClass() == getPartClass() |
| && descriptor.getPartPage() == getPartPage(); |
| } |
| return false; |
| } |
| |
| /** |
| * @see java.lang.Object#hashCode() |
| */ |
| public int hashCode() { |
| int idCode = getPartId().hashCode(); |
| int classCode = getPartClass().hashCode(); |
| int pageCode = getPartPage().hashCode(); |
| return (idCode + classCode + pageCode) |
| + (idCode | ~classCode | ~pageCode); |
| } |
| |
| } |