/**
 * <copyright>
 * </copyright>
 *
 * $Id: Tool.java,v 1.1 2006/01/24 15:43:02 xblanc Exp $
 */
package org.eclipse.mddi.modelbus.description.concrete;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

import org.eclipse.mddi.modelbus.description.abstract_.ModelingServiceInterface;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Tool</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getName <em>Name</em>}</li>
 *   <li>{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getInterface <em>Interface</em>}</li>
 *   <li>{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getPlatform <em>Platform</em>}</li>
 *   <li>{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getProperty <em>Property</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.eclipse.mddi.modelbus.description.concrete.ConcretePackage#getTool()
 * @model 
 * @generated
 */
public interface Tool extends EObject {
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    String copyright = "Copyright (c) 2002-2003 IST-2004-2006-511731 ModelWare - ModelBus.  All rights reserved.This software is published under the terms of the ModelBus Software License in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. A copy of ModelBus Software License is provided with this distribution in doc/LICENSE.txt file.";

    /**
     * Returns the value of the '<em><b>Name</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Name</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Name</em>' attribute.
     * @see #setName(String)
     * @see org.eclipse.mddi.modelbus.description.concrete.ConcretePackage#getTool_Name()
     * @model 
     * @generated
     */
    String getName();

    /**
     * Sets the value of the '{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getName <em>Name</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Name</em>' attribute.
     * @see #getName()
     * @generated
     */
    void setName(String value);

    /**
     * Returns the value of the '<em><b>Interface</b></em>' reference.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Interface</em>' reference isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Interface</em>' reference.
     * @see #setInterface(ModelingServiceInterface)
     * @see org.eclipse.mddi.modelbus.description.concrete.ConcretePackage#getTool_Interface()
     * @model required="true"
     * @generated
     */
    ModelingServiceInterface getInterface();

    /**
     * Sets the value of the '{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getInterface <em>Interface</em>}' reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Interface</em>' reference.
     * @see #getInterface()
     * @generated
     */
    void setInterface(ModelingServiceInterface value);

    /**
     * Returns the value of the '<em><b>Platform</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Platform</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Platform</em>' attribute.
     * @see #setPlatform(String)
     * @see org.eclipse.mddi.modelbus.description.concrete.ConcretePackage#getTool_Platform()
     * @model 
     * @generated
     */
    String getPlatform();

    /**
     * Sets the value of the '{@link org.eclipse.mddi.modelbus.description.concrete.Tool#getPlatform <em>Platform</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Platform</em>' attribute.
     * @see #getPlatform()
     * @generated
     */
    void setPlatform(String value);

    /**
     * Returns the value of the '<em><b>Property</b></em>' containment reference list.
     * The list contents are of type {@link org.eclipse.mddi.modelbus.description.concrete.Property}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Property</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Property</em>' containment reference list.
     * @see org.eclipse.mddi.modelbus.description.concrete.ConcretePackage#getTool_Property()
     * @model type="org.eclipse.mddi.modelbus.description.concrete.Property" containment="true"
     * @generated
     */
    EList getProperty();

} // Tool
