/*******************************************************************************
* Copyright (c) 2010 Wind River Systems 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:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.dsf.ui.viewmodel.update;
import java.util.Map;
import org.eclipse.cdt.dsf.concurrent.ConfinedToDsfExecutor;
import org.eclipse.cdt.dsf.ui.viewmodel.IVMNode;
import org.eclipse.jface.viewers.TreePath;
/**
* Cache entry in a caching VM provider.
*
* @see ICachingVMProvider
* @see ICachingVMProviderExtension2
*
* @since 2.2
*/
@ConfinedToDsfExecutor("")
public interface ICacheEntry {
/**
* The VM node that this cache entry is for. This parameter is part of the
* key to finding the cache entry.
*/
public IVMNode getNode();
/**
* The viewer input object that this cache entry is for. This parameter
* is part of the key to finding the cache entry.
*/
public Object getViewerInput();
/**
* The element path that this cache entry is for. This parameter is part
* of the key to finding the cache entry.
*/
public TreePath getElementPath();
/**
* Says whether this cache entry is currently marked as dirty. If a cache
* entry is dirty, it means that it contains stale data which has not been
* flushed as indicated by the cache's update policy.
* @return
*/
public boolean isDirty();
/**
* Returns the a flag indicating whether the element pointing to this entry
* has children. Returns <code>null</code> if this value is not known by
* cache.
*/
public Boolean getHasChildren();
/**
* Returns the count of children for the element belonging to this entry.
* Returns <code>null</code> if this value is not known by cache.
*/
public Integer getChildCount();
/**
* Returns a map of children of the element belonging to this entry.
* The returned map contains integer keys which are indexes of the
* element's children. The values in the map are the child element.
* Returns <code>null</code> if this value is not known by cache.
*/
public Map<Integer, Object> getChildren();
/**
* Returns map of properties of the element belonging to this entry.
* Returns <code>null</code> if this value is not known by cache.
*/
public Map<String, Object> getProperties();
/**
* Returns the archived map of properties of the element belong to this
* entry. The archived properties are properties which were saved when
* the cache was last flushed, as indicated by the cache's active update
* policy. Returns <code>null</code> if this value is not known by cache.
*/
public Map<String, Object> getArchiveProperties();
}