blob: a8efb29f6f71a1b1de2f982a4340ef5e42336e45 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.core.internal.dependencies;
import org.eclipse.core.dependencies.IDependency;
import org.eclipse.core.dependencies.IElement;
class Element implements IElement {
private Object id;
private Object versionId;
private IDependency[] dependencies;
private boolean singleton;
private Object userObject;
public Element(Object id, Object versionId, IDependency[] dependencies, boolean singleton, Object userObject) {
Assert.isNotNull(id);
Assert.isNotNull(versionId);
Assert.isNotNull(dependencies);
this.id = id;
this.versionId = versionId;
this.dependencies = dependencies;
this.singleton = singleton;
this.userObject = userObject;
}
public Object getId() {
return id;
}
public Object getVersionId() {
return versionId;
}
public IDependency[] getDependencies() {
return dependencies;
}
public IDependency getDependency(Object id) {
for (int i = 0; i < dependencies.length; i++)
if (dependencies[i].getRequiredObjectId().equals(id))
return dependencies[i];
return null;
}
public boolean isSingleton() {
return singleton;
}
public Object getUserObject() {
return userObject;
}
public String toString() {
return this.id + "_" + this.versionId; //$NON-NLS-1$
}
public boolean equals(Object obj) {
if (!(obj instanceof Element))
return false;
Element other = (Element) obj;
return (other.userObject != null && other.userObject.equals(this.userObject)) || (this.id.equals(other.id) && this.versionId.equals(other.versionId) && other.userObject == null && this.userObject == null);
}
public int hashCode() {
return (id.hashCode() << 16) | (versionId.hashCode() & 0xFFFF);
}
}