blob: 7c2c793c9f141171b41b0bcb9da71863a49152b4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2006 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.ui.internal.dialogs;
import org.eclipse.core.runtime.Assert;
/**
* A preference history entry.
*
* @since 3.1
*/
final class PreferenceHistoryEntry {
private String id;
private String label;
private Object argument;
/**
* Creates a new entry.
*
* @param id the preference page id
* @param label the label to display, usually the preference page label
* @param argument an argument to pass to the preference page, may be
* <code>null</code>
*/
public PreferenceHistoryEntry(String id, String label, Object argument) {
Assert.isLegal(id != null);
Assert.isLegal(label != null);
this.id= id;
this.label= label;
this.argument= argument;
}
/**
* Returns the preference page id.
*
* @return the preference page id
*/
public String getId() {
return id;
}
/**
* Returns the preference page argument.
*
* @return the preference page argument
*/
public Object getArgument() {
return argument;
}
/**
* Returns the preference page label.
*
* @return the preference page label
*/
public String getLabel() {
return label;
}
/*
* @see java.lang.Object#toString()
*/
public String toString() {
if (argument == null) {
return id;
}
return id + "(" + argument + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
/*
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
if (obj instanceof PreferenceHistoryEntry) {
PreferenceHistoryEntry other= (PreferenceHistoryEntry) obj;
return id.equals(other.id)
&& (argument == null && other.argument == null
|| argument.equals(other.argument));
}
return super.equals(obj);
}
/*
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
int argHash= argument == null ? 0 : argument.hashCode() & 0x0000ffff;
return id.hashCode() << 16 | argHash;
}
}