/******************************************************************************* * Copyright (c) 2005, 2008 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.ltk.internal.ui.refactoring.history; /** * Date node of a refactoring history. * * @since 3.2 */ public final class RefactoringHistoryDate extends RefactoringHistoryNode { /** The refactoring history node kind */ private final int fKind; /** The parent node, or <code>null</code> */ private final RefactoringHistoryNode fParent; /** The time stamp */ private final long fStamp; /** * Creates a new refactoring history node. * * @param parent * the parent node, or <code>null</code> * @param stamp * the time stamp * @param kind * the node kind */ public RefactoringHistoryDate(final RefactoringHistoryNode parent, final long stamp, final int kind) { fParent= parent; fStamp= stamp; fKind= kind; } /** * {@inheritDoc} */ public boolean equals(final Object object) { if (object instanceof RefactoringHistoryDate) { final RefactoringHistoryDate node= (RefactoringHistoryDate) object; return super.equals(object) && getTimeStamp() == node.getTimeStamp() && getKind() == node.getKind(); } return false; } /** * {@inheritDoc} */ public int getKind() { return fKind; } /** * {@inheritDoc} */ public RefactoringHistoryNode getParent() { return fParent; } /** * Returns the time stamp. * * @return the time stamp */ public long getTimeStamp() { return fStamp; } /** * {@inheritDoc} */ public int hashCode() { return (int) (super.hashCode() + 17 * getKind() + 31 * getTimeStamp()); } }