Esempio n. 1
0
 /**
  * Convert an (annotated) Ecore resource to a Pivot Model.
  *
  * @param alias
  * @param ecoreResource the annotated Ecore resource
  * @return the Pivot root package
  */
 public static @NonNull Model importFromEcore(
     @NonNull EnvironmentFactoryInternal environmentFactory,
     String alias,
     @NonNull Resource ecoreResource) {
   Ecore2AS conversion = getAdapter(ecoreResource, environmentFactory);
   return conversion.getASModel();
 }
Esempio n. 2
0
 public Type getASType(@NonNull EObject eObject) {
   Element pivotElement = newCreateMap.get(eObject);
   if (pivotElement == null) {
     Resource resource = eObject.eResource();
     if ((resource != ecoreResource) && (resource != null)) {
       Ecore2AS converter = getAdapter(resource, environmentFactory);
       if (allConverters.add(converter)) {
         converter.getASModel();
         //					allEClassifiers.addAll(converter.allEClassifiers);
         //					allNames.addAll(converter.allNames);
         for (Map.Entry<@NonNull EObject, @NonNull Element> entry :
             converter.newCreateMap.entrySet()) {
           newCreateMap.put(entry.getKey(), entry.getValue());
         }
       }
     }
     pivotElement = newCreateMap.get(eObject);
   }
   if (pivotElement == null) {
     error("Unresolved " + eObject);
   } else if (!(pivotElement instanceof Type)) {
     error("Incompatible " + eObject);
   } else {
     return (Type) pivotElement;
   }
   return null;
 }
Esempio n. 3
0
 public <T extends Element> T getASElement(
     @NonNull Class<T> requiredClass, @NonNull EObject eObject) {
   if (pivotModel == null) {
     getASModel();
   }
   Element element = newCreateMap.get(eObject);
   if (element == null) {
     Resource resource = eObject.eResource();
     if ((resource != ecoreResource) && (resource != null)) {
       Ecore2AS converter = getAdapter(resource, environmentFactory);
       if (allConverters.add(converter)) {
         converter.getASModel();
         for (Map.Entry<@NonNull EObject, @NonNull Element> entry :
             converter.newCreateMap.entrySet()) {
           newCreateMap.put(entry.getKey(), entry.getValue());
         }
       }
     }
     element = newCreateMap.get(eObject);
   }
   if (element == null) {
     error("Unresolved " + eObject);
   } else if (!requiredClass.isAssignableFrom(element.getClass())) {
     throw new ClassCastException(
         element.getClass().getName() + " is not assignable to " + requiredClass.getName());
   }
   @SuppressWarnings("unchecked")
   T castElement = (T) element;
   return castElement;
 }
Esempio n. 4
0
 /**
  * Convert an (annotated) Ecore object to a pivot element.
  *
  * @param eObject the annotated Ecore object
  * @return the pivot element
  */
 public static Element importFromEcore(
     @NonNull EnvironmentFactoryInternal environmentFactory,
     String alias,
     @NonNull EObject eObject) {
   Resource ecoreResource = ClassUtil.nonNullEMF(eObject.eResource());
   Ecore2AS conversion = getAdapter(ecoreResource, environmentFactory);
   @SuppressWarnings("unused")
   Model pivotModel = conversion.getASModel();
   return conversion.newCreateMap.get(eObject);
 }
Esempio n. 5
0
 public @Nullable <T extends Element> T getASOfEcore(
     @NonNull Class<T> requiredClass, @NonNull EObject eObject) {
   if (pivotModel == null) {
     getASModel();
   }
   Element element = newCreateMap.get(eObject);
   if (element == null) {
     return null;
   }
   if (!requiredClass.isAssignableFrom(element.getClass())) {
     throw new ClassCastException(
         element.getClass().getName() + " is not assignable to " + requiredClass.getName());
   }
   @SuppressWarnings("unchecked")
   T castElement = (T) element;
   return castElement;
 }