blob: a0fb4812e4c3f811f889da85e22651d714f461a6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Tasktop Technologies 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:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.context.core;
import java.util.Collection;
import java.util.List;
import org.eclipse.mylyn.monitor.core.InteractionEvent;
/**
* A model of task context weighted by interaction based on frequency and recency of access, as determined by the
* degree-of-interest weighting mechanism.
*
* @author Mik Kersten
* @author Shawn Minto
* @author David Green bug 257977 isInteresting
* @noimplement This interface is not intended to be implemented by clients.
* @since 2.0
*/
public interface IInteractionContext {
/**
* Returns the unique handle identifier of the context.
*
* @return null if no unique handle, e.g. if a composite context
* @since 2.0
*/
public abstract String getHandleIdentifier();
/**
* Returns a list of all interesting interaction elements. Modifying the list will not affect the context.
*
* @since 2.0
*/
public abstract List<InteractionEvent> getInteractionHistory();
/**
* indicate if the interaction element identified by the given handle is interesting
*
* @param elementHandle
* the {@link IInteractionElement#getHandleIdentifier() handle identifier}
*
* @return true if an {@link #getInteresting() interesting} interaction element exists with the given handle
* @since 3.2
*/
public boolean isInteresting(String elementHandle);
/**
* Returns a list of all interesting interaction elements. Modifying the list will not affect the context.
*
* @since 2.0
*/
public List<IInteractionElement> getInteresting();
/**
* Returns a list of all interaction elements that are landmarks. Modifying the list will not affect the context.
*
* @since 2.2
*/
public List<IInteractionElement> getLandmarks();
/**
*
* @since 2.0
*/
public abstract IInteractionElement get(String element);
/**
*
* @since 2.0
*/
public abstract IInteractionElement getActiveNode();
/**
*
* @since 2.0
*/
public abstract void delete(IInteractionElement element);
/**
* @since 3.2
*/
public abstract void delete(Collection<IInteractionElement> elements);
/**
* @since 2.0
*/
public abstract void updateElementHandle(IInteractionElement element, String newHandle);
/**
* Returns a list of all interaction elements. Modifying the list will not affect the context.
*
* @since 2.0
*/
public abstract List<IInteractionElement> getAllElements();
/**
* @since 3.0
*/
public IInteractionContextScaling getScaling();
/**
* @since 2.2
*/
public String getContentLimitedTo();
/**
* @since 2.2
*/
public void setContentLimitedTo(String contentLimitedTo);
}