/******************************************************************************* * Copyright (c) 2010, 2013 Ericsson * * 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: * Francois Chouinard - Initial API and implementation *******************************************************************************/ package fr.inria.linuxtools.tmf.ui.project.model; import java.net.URI; import java.util.List; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; /** * The TMF project model interface. * * The TMF tracing project is integrated in the Common Navigator framework. * Each tracing tree element has to implement this interface to be visible in the * Project Explorer. * * @version 1.0 * @author Francois Chouinard */ public interface ITmfProjectModelElement { /** * Returns the name of the project model element. * @return the name of the project element. */ String getName(); /** * Returns the resource associated with the project model element. * @return the model resource. */ IResource getResource(); /** * Returns the path of the project model resource. * @return the resource path. */ IPath getPath(); /** * Returns the URI (location) of the resource. * @return the resource URI. */ URI getLocation(); /** * Returns the project model element. * @return the project model element. */ TmfProjectElement getProject(); /** * Returns the parent of this model element. * @return the parent of this model element. */ ITmfProjectModelElement getParent(); /** * Returns whether this model element has children or not. * @return <code>true</code> if this model has children else <code>false</code> */ boolean hasChildren(); /** * Returns a list of children model elements. * @return a list of children model elements. */ List<ITmfProjectModelElement> getChildren(); /** * Method to add a child to the model element. * @param child A child element to add. */ void addChild(ITmfProjectModelElement child); /** * Method to remove a child from the model element. * @param child A child element to remove */ void removeChild(ITmfProjectModelElement child); /** * Method to request to refresh the project. */ void refresh(); }