001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.meta.metafacades;
006
007import org.andromda.metafacades.uml.ClassifierFacade;
008
009/**
010 * Represents a class in the PSM metamodel which the cartridge writer has in mind. Metafacade
011 * operations in other metafacades will return instances of PSM metaclasses. Code for these
012 * metaclasses is generated by a template which is associated with the PSMmetaclass metafacade.
013 *
014 * Metafacade interface to be used by AndroMDA cartridges.
015 */
016public interface PSMmetaclass
017    extends ClassifierFacade
018{
019    /**
020     * Indicates the metafacade type (used for metafacade mappings).
021     *
022     * @return boolean always <code>true</code>
023     */
024    public boolean isPSMmetaclassMetaType();
025
026    /**
027     * TODO: Model Documentation for
028     * org.andromda.cartridges.meta.metafacades.PSMmetaclass.implMustBeAbstract
029     * @return boolean
030     */
031    public boolean isImplMustBeAbstract();
032
033    /**
034     * Indicates whether the class has operations or not. Used to trigger a template for
035     * implementation classes.
036     * @return boolean
037     */
038    public boolean isOperationsPresent();
039}