package compareAlgorithm; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; /** * Class for EClass * * @author Shoeb Shaikh * */ public class ECoreClass { private EList<EClassifier> classList; private EClass eClass; private boolean abstrct; private boolean intrfce; /** * Constructors. * * @param ePackage * used to extract all classifiers. */ ECoreClass(ECorePackage ePackage) { classList = ePackage.getePackage().getEClassifiers(); eClass = null; abstrct = false; intrfce = false; } /** * Gets a classifier from classifier list at position index * * @param index * position of desired classifier * @return EClass object */ public EClass getEClass(int index) { setEClass(index); return (EClass) classList.get(index); } /** * Returns the active EClass object. * * @return EClass object or null if none exist */ public EClass getEClass() { return eClass; } /** * Sets an active EClass object to an element in eClass at position index. * No operation if classList is not defined. * * @param index * position in classList */ public void setEClass(int index) { if (classList != null) { eClass = (EClass) classList.get(index); abstrct = eClass.isAbstract(); intrfce = eClass.isInterface(); } } /** * Returns if EClass is an abstract * * @return boolean */ public boolean isAbstrct() { return abstrct; } /** * Returns if EClass is an interface * * @return boolean */ public boolean isIntrfce() { return intrfce; } /** * Returns the size of classList * * @return size of classList */ public int size() { return classList.size(); } }