/*******************************************************************************
* Copyright © 2011, 2013 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*
*******************************************************************************/
package org.eclipse.edt.mof.egl;
import java.util.List;
/**
* Abstract super class for all Classifiers. Classifiers represent the
* different kinds of type structures that are represented in the model.
*
* @version 8.0.0
*
*/
public interface Classifier extends NamedElement, Type {
/**
* List of TypeParameter that can be associated with
* given classifier. Type arguments are then matched
* against these parameters in GenericType instances
*
* @see TypeParameter
* @see GenericType
* @return
*/
List<TypeParameter> getTypeParameters();
/**
* @return File name where the Classifier declaration was created
*/
String getFileName();
/**
* Set value of file name where given declaration was made
* @param value
*/
void setFileName(String value);
/**
*
* @return whether or not the given declaration had compile errors in it
*/
Boolean hasCompileErrors();
/**
* Set boolean value for whether or not the given declaration
* has compile errors in it
* @param value
*/
void setHasCompileErrors(Boolean value);
/**
*
* @return declared package name of the receiver
*/
String getPackageName();
/**
*
* @return declared case sensitive package name of the receiver
*/
String getCaseSensitivePackageName();
/**
* Set package name of the receiver
* @param value
*/
void setPackageName(String value);
List<Stereotype> getStereotypes();
/**
* Return the first (often only) Stereotype out of the list of stereotypes
* @return Stereotype
*/
public Stereotype getStereotype();
/**
* Return a boolean stating whether or not the given Classifier can be the target of a NEW expression
* @return
*/
public boolean isInstantiable();
}