@Check
 public void checkUniqueListItemInDecomposition(final Decomposition decomposition) {
   final HashSet<ListItem> visitedListItems = CollectionLiterals.<ListItem>newHashSet();
   EList<ListItem> items = decomposition.getItems();
   ListIterator<ListItem> i = items.listIterator();
   while (i.hasNext()) {
     {
       ListItem d = i.next();
       boolean _contains = visitedListItems.contains(d);
       if (_contains) {
         String _name = d.getName();
         String _plus = ("duplicate item reference \'" + _name);
         String _plus_1 = (_plus + "\' in list");
         EReference _decomposition_Items =
             IntentSpecificationPackage.eINSTANCE.getDecomposition_Items();
         String _name_1 = d.getName();
         this.warning(
             _plus_1,
             _decomposition_Items,
             IntentSpecificationValidator.UNIQUE_LIST_ITEM_DECOMPOSITION,
             _name_1);
       }
       visitedListItems.add(d);
     }
   }
 }
 @Check
 public void checkUniqueDecompositionInIntent(final Intent intent) {
   final HashSet<String> visitedDecompositionTypeNames = CollectionLiterals.<String>newHashSet();
   EList<Decomposition> decompositions = intent.getDecompositions();
   ListIterator<Decomposition> i = decompositions.listIterator();
   while (i.hasNext()) {
     {
       Decomposition _next = i.next();
       Decomposition d = ((Decomposition) _next);
       DecompositionType _type = d.getType();
       String typeName = _type.getTypeName();
       boolean _contains = visitedDecompositionTypeNames.contains(typeName);
       if (_contains) {
         EReference _intent_Decompositions =
             IntentSpecificationPackage.eINSTANCE.getIntent_Decompositions();
         String _name = d.getName();
         this.warning(
             (("duplicate decomposition type \'" + typeName) + "\' in intent"),
             _intent_Decompositions,
             IntentSpecificationValidator.UNIQUE_DECOMPOSITION_INTENT,
             _name);
       }
       visitedDecompositionTypeNames.add(typeName);
     }
   }
 }
 @Check
 public void checkUniqueIntentsInRefinement(final Refinement refinement) {
   final HashSet<String> visitedIntentTypeNames = CollectionLiterals.<String>newHashSet();
   EList<Intent> intents = refinement.getIntents();
   ListIterator<Intent> i = intents.listIterator();
   while (i.hasNext()) {
     {
       Intent _next = i.next();
       Intent d = ((Intent) _next);
       IntentType _type = d.getType();
       String typeName = _type.getTypeName();
       boolean _contains = visitedIntentTypeNames.contains(typeName);
       if (_contains) {
         EReference _refinement_Intents =
             IntentSpecificationPackage.eINSTANCE.getRefinement_Intents();
         String _name = d.getName();
         this.warning(
             (("duplicate intent type \'" + typeName) + "\' in refinement"),
             _refinement_Intents,
             IntentSpecificationValidator.UNIQUE_INTENTS_REFINEMENT,
             _name);
       }
       visitedIntentTypeNames.add(typeName);
     }
   }
 }
 @Check
 public void checkUniqueModelItemInListItem(final ListItem item) {
   final HashSet<ModelItem> visitedModelItems = CollectionLiterals.<ModelItem>newHashSet();
   EList<ModelItem> items = item.getModelReferences();
   ListIterator<ModelItem> i = items.listIterator();
   while (i.hasNext()) {
     {
       ModelItem _next = i.next();
       ModelItem d = ((ModelItem) _next);
       boolean _contains = visitedModelItems.contains(d);
       if (_contains) {
         String _name = d.getName();
         String _plus = ("duplicate model reference \'" + _name);
         String _plus_1 = (_plus + "\' in models");
         EReference _listItem_ModelReferences =
             IntentSpecificationPackage.eINSTANCE.getListItem_ModelReferences();
         String _name_1 = d.getName();
         this.warning(
             _plus_1,
             _listItem_ModelReferences,
             IntentSpecificationValidator.UNIQUE_MODEL_ITEM_LIST_ITEM,
             _name_1);
       }
       visitedModelItems.add(d);
     }
   }
 }
 public java.util.ListIterator<E> listIterator(int index) {
   return copy.listIterator(index);
 }
 public java.util.ListIterator<E> listIterator() {
   return copy.listIterator();
 }