All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nuiton.eugene.models.object.ObjectModelElement Maven / Gradle / Ivy

/*
 * #%L
 * EUGene :: EUGene
 * 
 * $Id: ObjectModelElement.java 1014 2010-11-28 20:13:58Z tchemit $
 * $HeadURL: http://svn.nuiton.org/svn/eugene/tags/eugene-2.3.2/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelElement.java $
 * %%
 * Copyright (C) 2004 - 2010 CodeLutin
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as 
 * published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * This program is distributed 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.  See the
 * GNU General Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * .
 * #L%
 */

package org.nuiton.eugene.models.object;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * ObjectModelElement.
 * 
 * @author Cédric Pineau 
 * Copyright Code Lutin
 * @version $Revision: 1014 $
 *
 * Last update : $Date: 2010-11-28 21:13:58 +0100 (Sun, 28 Nov 2010) $
 * by : */
public interface ObjectModelElement {

    /**
    * Returns the name of this element.
    * 
    * @return the name of this element.
    */
    String getName();

    /**
    * Returns the element in which this element is defined, or null if there's none.
    * 
    * @return  the ObjectModelElement in which this element is defined, or null if there's none.
    */
    ObjectModelElement getDeclaringElement();

    /**
    * Returns the whole documentation associated with this element (description + source documentation).
    * 
    * @return the whole documentation associated with this element.
    */
    String getDocumentation();

    /**
    * The description of this element is the upper part of the element's
    * documentation.
    * 
    * The other part of the document can be accessed with 
    * {@link #getSourceDocumentation()}
    * 
    * @return the description associated with this element.
    */
    String getDescription();

    /**
     * Returns the source documentation part associated with this element.
     * Source documentation is at end of documentation and are separated of
     * over documentation by "--"
     *
     * @return the source documentation part associated with this element.
     */
    String getSourceDocumentation();

    /**
    * Returns the stereotypes names associated with this element.
    * 
    * @return a Collection containing all stereotypes names associated with this element as String.
    */
    Collection getStereotypes();

    /**
    * Returns whether this element has a stereotype corresponding to the given name, or not.
    * 
    * @param stereotypeName stereotype name
    * @return a boolean indicating whether this element has a stereotype corresponding to the given name, or not.
    */
    boolean hasStereotype(String stereotypeName);

    /**
    * Returns the tagValues associated with this element.
    * For each entry, the key is the name of the tagValue, the value is the value of the tagValue :-) 
    * 
    * @return a Map containing all tagValues associated with this element
    */
    Map getTagValues();

    /**
    * Returns the tagValue corresponding to the given name, or null if the element has no associated tagValue for this name.
    * 
    * @param tagValue tag value name
    * @return the value of the found tagValue, or null if the element has no associated tagValue for this name.
    */
    String getTagValue(String tagValue);

    /**
    * Returns whether this element has a tagValue corresponding to the given name, or not.
    * 
    * @param tagValue tag value name
    * @return a boolean indicating whether this element has a tagValue corresponding to the given name, or not.
    */
    boolean hasTagValue(String tagValue);

    /**
     * Return if this element has static declaration, only valid when 
     * getDeclaringElement is classifier. Not possible for the moment 
     * to have static innerClass (from XMI 1.2 and 2.1).
     * @return true if element is static
     */
    boolean isStatic();

    /**
    * Returns all comments lied to this particular model element
    * 
    * @return a List containing all comments for this element as Strings.
    */
    List getComments();

} //ObjectModelElement




© 2015 - 2025 Weber Informatics LLC | Privacy Policy