Skip to content

Commit

Permalink
Put back wildcardImports in grammar and efficient implementation of r…
Browse files Browse the repository at this point in the history
…esolveWildcardImport()
  • Loading branch information
Thomas Degueule committed Aug 26, 2015
1 parent 90a1a9b commit 80bb8c2
Show file tree
Hide file tree
Showing 24 changed files with 20,778 additions and 19,567 deletions.
Expand Up @@ -29,7 +29,6 @@
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="aspectedClass" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"
transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="aspectWildcardImport" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="ecoreFragment" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage"
containment="true"/>
</eClassifiers>
Expand Down Expand Up @@ -136,6 +135,7 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="aspectTypeRef" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="aspectWildcardImport" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
Expand Down
Expand Up @@ -32,7 +32,6 @@
<genClasses ecoreClass="Melange.ecore#//Aspect">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Melange.ecore#//Aspect/aspectTypeRef"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Melange.ecore#//Aspect/aspectedClass"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute Melange.ecore#//Aspect/aspectWildcardImport"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Melange.ecore#//Aspect/ecoreFragment"/>
</genClasses>
<genClasses ecoreClass="Melange.ecore#//Inheritance">
Expand Down Expand Up @@ -103,6 +102,7 @@
</genClasses>
<genClasses ecoreClass="Melange.ecore#//Weave">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Melange.ecore#//Weave/aspectTypeRef"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute Melange.ecore#//Weave/aspectWildcardImport"/>
</genClasses>
<genClasses image="false" ecoreClass="Melange.ecore#//NamedElement">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute Melange.ecore#//NamedElement/name"/>
Expand Down
Expand Up @@ -18,7 +18,6 @@
* <ul>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectTypeRef <em>Aspect Type Ref</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectedClass <em>Aspected Class</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectWildcardImport <em>Aspect Wildcard Import</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getEcoreFragment <em>Ecore Fragment</em>}</li>
* </ul>
* </p>
Expand Down Expand Up @@ -80,32 +79,6 @@ public interface Aspect extends EObject {
*/
void setAspectedClass(EClass value);

/**
* Returns the value of the '<em><b>Aspect Wildcard Import</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Aspect Wildcard Import</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Aspect Wildcard Import</em>' attribute.
* @see #setAspectWildcardImport(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getAspect_AspectWildcardImport()
* @model
* @generated
*/
String getAspectWildcardImport();

/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectWildcardImport <em>Aspect Wildcard Import</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Aspect Wildcard Import</em>' attribute.
* @see #getAspectWildcardImport()
* @generated
*/
void setAspectWildcardImport(String value);

/**
* Returns the value of the '<em><b>Ecore Fragment</b></em>' containment reference.
* <!-- begin-user-doc -->
Expand Down
Expand Up @@ -407,23 +407,14 @@ public interface MelangePackage extends EPackage {
*/
int ASPECT__ASPECTED_CLASS = 1;

/**
* The feature id for the '<em><b>Aspect Wildcard Import</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ASPECT__ASPECT_WILDCARD_IMPORT = 2;

/**
* The feature id for the '<em><b>Ecore Fragment</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int ASPECT__ECORE_FRAGMENT = 3;
int ASPECT__ECORE_FRAGMENT = 2;

/**
* The number of structural features of the '<em>Aspect</em>' class.
Expand All @@ -432,7 +423,7 @@ public interface MelangePackage extends EPackage {
* @generated
* @ordered
*/
int ASPECT_FEATURE_COUNT = 4;
int ASPECT_FEATURE_COUNT = 3;

/**
* The number of operations of the '<em>Aspect</em>' class.
Expand Down Expand Up @@ -1212,14 +1203,23 @@ public interface MelangePackage extends EPackage {
*/
int WEAVE__ASPECT_TYPE_REF = OPERATOR_FEATURE_COUNT + 0;

/**
* The feature id for the '<em><b>Aspect Wildcard Import</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int WEAVE__ASPECT_WILDCARD_IMPORT = OPERATOR_FEATURE_COUNT + 1;

/**
* The number of structural features of the '<em>Weave</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int WEAVE_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 1;
int WEAVE_FEATURE_COUNT = OPERATOR_FEATURE_COUNT + 2;

/**
* The number of operations of the '<em>Weave</em>' class.
Expand Down Expand Up @@ -1411,17 +1411,6 @@ public interface MelangePackage extends EPackage {
*/
EReference getAspect_AspectedClass();

/**
* Returns the meta object for the attribute '{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectWildcardImport <em>Aspect Wildcard Import</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Aspect Wildcard Import</em>'.
* @see fr.inria.diverse.melange.metamodel.melange.Aspect#getAspectWildcardImport()
* @see #getAspect()
* @generated
*/
EAttribute getAspect_AspectWildcardImport();

/**
* Returns the meta object for the containment reference '{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getEcoreFragment <em>Ecore Fragment</em>}'.
* <!-- begin-user-doc -->
Expand Down Expand Up @@ -2024,6 +2013,17 @@ public interface MelangePackage extends EPackage {
*/
EReference getWeave_AspectTypeRef();

/**
* Returns the meta object for the attribute '{@link fr.inria.diverse.melange.metamodel.melange.Weave#getAspectWildcardImport <em>Aspect Wildcard Import</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Aspect Wildcard Import</em>'.
* @see fr.inria.diverse.melange.metamodel.melange.Weave#getAspectWildcardImport()
* @see #getWeave()
* @generated
*/
EAttribute getWeave_AspectWildcardImport();

/**
* Returns the meta object for class '{@link fr.inria.diverse.melange.metamodel.melange.NamedElement <em>Named Element</em>}'.
* <!-- begin-user-doc -->
Expand Down Expand Up @@ -2218,14 +2218,6 @@ interface Literals {
*/
EReference ASPECT__ASPECTED_CLASS = eINSTANCE.getAspect_AspectedClass();

/**
* The meta object literal for the '<em><b>Aspect Wildcard Import</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute ASPECT__ASPECT_WILDCARD_IMPORT = eINSTANCE.getAspect_AspectWildcardImport();

/**
* The meta object literal for the '<em><b>Ecore Fragment</b></em>' containment reference feature.
* <!-- begin-user-doc -->
Expand Down Expand Up @@ -2702,6 +2694,14 @@ interface Literals {
*/
EReference WEAVE__ASPECT_TYPE_REF = eINSTANCE.getWeave_AspectTypeRef();

/**
* The meta object literal for the '<em><b>Aspect Wildcard Import</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EAttribute WEAVE__ASPECT_WILDCARD_IMPORT = eINSTANCE.getWeave_AspectWildcardImport();

/**
* The meta object literal for the '{@link fr.inria.diverse.melange.metamodel.melange.impl.NamedElementImpl <em>Named Element</em>}' class.
* <!-- begin-user-doc -->
Expand Down
Expand Up @@ -14,6 +14,7 @@
* The following features are supported:
* <ul>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Weave#getAspectTypeRef <em>Aspect Type Ref</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Weave#getAspectWildcardImport <em>Aspect Wildcard Import</em>}</li>
* </ul>
* </p>
*
Expand Down Expand Up @@ -48,4 +49,30 @@ public interface Weave extends Operator {
*/
void setAspectTypeRef(JvmTypeReference value);

/**
* Returns the value of the '<em><b>Aspect Wildcard Import</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Aspect Wildcard Import</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Aspect Wildcard Import</em>' attribute.
* @see #setAspectWildcardImport(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getWeave_AspectWildcardImport()
* @model
* @generated
*/
String getAspectWildcardImport();

/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Weave#getAspectWildcardImport <em>Aspect Wildcard Import</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Aspect Wildcard Import</em>' attribute.
* @see #getAspectWildcardImport()
* @generated
*/
void setAspectWildcardImport(String value);

} // Weave
Expand Up @@ -26,7 +26,6 @@
* <ul>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.impl.AspectImpl#getAspectTypeRef <em>Aspect Type Ref</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.impl.AspectImpl#getAspectedClass <em>Aspected Class</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.impl.AspectImpl#getAspectWildcardImport <em>Aspect Wildcard Import</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.impl.AspectImpl#getEcoreFragment <em>Ecore Fragment</em>}</li>
* </ul>
* </p>
Expand Down Expand Up @@ -54,26 +53,6 @@ public class AspectImpl extends MinimalEObjectImpl.Container implements Aspect {
*/
protected EClass aspectedClass;

/**
* The default value of the '{@link #getAspectWildcardImport() <em>Aspect Wildcard Import</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAspectWildcardImport()
* @generated
* @ordered
*/
protected static final String ASPECT_WILDCARD_IMPORT_EDEFAULT = null;

/**
* The cached value of the '{@link #getAspectWildcardImport() <em>Aspect Wildcard Import</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAspectWildcardImport()
* @generated
* @ordered
*/
protected String aspectWildcardImport = ASPECT_WILDCARD_IMPORT_EDEFAULT;

/**
* The cached value of the '{@link #getEcoreFragment() <em>Ecore Fragment</em>}' containment reference.
* <!-- begin-user-doc -->
Expand Down Expand Up @@ -184,27 +163,6 @@ public void setAspectedClass(EClass newAspectedClass) {
eNotify(new ENotificationImpl(this, Notification.SET, MelangePackage.ASPECT__ASPECTED_CLASS, oldAspectedClass, aspectedClass));
}

/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getAspectWildcardImport() {
return aspectWildcardImport;
}

/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setAspectWildcardImport(String newAspectWildcardImport) {
String oldAspectWildcardImport = aspectWildcardImport;
aspectWildcardImport = newAspectWildcardImport;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MelangePackage.ASPECT__ASPECT_WILDCARD_IMPORT, oldAspectWildcardImport, aspectWildcardImport));
}

/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
Expand Down Expand Up @@ -277,8 +235,6 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) {
case MelangePackage.ASPECT__ASPECTED_CLASS:
if (resolve) return getAspectedClass();
return basicGetAspectedClass();
case MelangePackage.ASPECT__ASPECT_WILDCARD_IMPORT:
return getAspectWildcardImport();
case MelangePackage.ASPECT__ECORE_FRAGMENT:
return getEcoreFragment();
}
Expand All @@ -299,9 +255,6 @@ public void eSet(int featureID, Object newValue) {
case MelangePackage.ASPECT__ASPECTED_CLASS:
setAspectedClass((EClass)newValue);
return;
case MelangePackage.ASPECT__ASPECT_WILDCARD_IMPORT:
setAspectWildcardImport((String)newValue);
return;
case MelangePackage.ASPECT__ECORE_FRAGMENT:
setEcoreFragment((EPackage)newValue);
return;
Expand All @@ -323,9 +276,6 @@ public void eUnset(int featureID) {
case MelangePackage.ASPECT__ASPECTED_CLASS:
setAspectedClass((EClass)null);
return;
case MelangePackage.ASPECT__ASPECT_WILDCARD_IMPORT:
setAspectWildcardImport(ASPECT_WILDCARD_IMPORT_EDEFAULT);
return;
case MelangePackage.ASPECT__ECORE_FRAGMENT:
setEcoreFragment((EPackage)null);
return;
Expand All @@ -345,28 +295,10 @@ public boolean eIsSet(int featureID) {
return aspectTypeRef != null;
case MelangePackage.ASPECT__ASPECTED_CLASS:
return aspectedClass != null;
case MelangePackage.ASPECT__ASPECT_WILDCARD_IMPORT:
return ASPECT_WILDCARD_IMPORT_EDEFAULT == null ? aspectWildcardImport != null : !ASPECT_WILDCARD_IMPORT_EDEFAULT.equals(aspectWildcardImport);
case MelangePackage.ASPECT__ECORE_FRAGMENT:
return ecoreFragment != null;
}
return super.eIsSet(featureID);
}

/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();

StringBuffer result = new StringBuffer(super.toString());
result.append(" (aspectWildcardImport: ");
result.append(aspectWildcardImport);
result.append(')');
return result.toString();
}

} //AspectImpl

0 comments on commit 80bb8c2

Please sign in to comment.