/******************************************************************************* * Copyright © 2005, 2013 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.edt.ide.core.internal.dependency; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; /** * @author svihovec * */ /*package*/ class Function implements IDependencyGraphValue{ private String projectName; private QualifiedName packageName; private SimpleName partName; public Function(String projectName, String packageName, String partName) { this.projectName = projectName; this.packageName = new QualifiedName(packageName); this.partName = new SimpleName(partName); } public Function() {} public String getProjectName(){ return projectName; } public String getPackageName(){ return packageName.getQualifiedName(); } public String getPartName(){ return partName.getSimpleName(); } public String toString(){ return projectName + "." + packageName + "." + partName; //$NON-NLS-1$ //$NON-NLS-2$ } public boolean equals(Object obj) { if(obj == this){ return true; } if(obj instanceof Function){ return ((Function)obj).projectName.equals(projectName) && ((Function)obj).packageName.equals(packageName) && ((Function)obj).partName.equals(partName); } return false; } public int hashCode() { return partName.hashCode(); } public int getNormalizedHashCode(){ return partName.getNormalizedHashCode(); } public void serialize(DataOutputStream outputStream) throws IOException { outputStream.writeUTF(projectName); packageName.serialize(outputStream); partName.serialize(outputStream); } public void deserialize(DataInputStream inputStream) throws IOException{ projectName = inputStream.readUTF(); packageName = new QualifiedName(); packageName.deserialize(inputStream); partName = new SimpleName(); partName.deserialize(inputStream); } public int getKind() { return IDependencyGraphValue.FUNCTION; } }