/**
   * Constructor.
   *
   * @param languages The IObservableList containing Languages
   * @param bodies The IObservableList containing Bodies
   * @param nestedChangeListener Execute listener.
   */
  public ExpressionList(
      IObservableList languages, IObservableList bodies, IChangeListener nestedChangeListener) {
    super(new LinkedList<Expression>(), Expression.class);
    expressions = wrappedList;

    this.languages = languages;
    this.bodies = bodies;

    languages.addChangeListener(this);
    bodies.addChangeListener(this);
    this.nestedChangeListener = nestedChangeListener;

    UMLToExpression();
  }
 /**
  * Constructor.
  *
  * @param source The EObject (Property) which the ownership is being edited
  * @param domain The Editing Domain on which the commands will be executed
  */
 public OwnerObservableValue(EObject source, EditingDomain domain) {
   this.memberEnd = (Property) source;
   this.domain = domain;
   navigableEndsObservableList =
       EMFProperties.list(UMLPackage.eINSTANCE.getAssociation_NavigableOwnedEnd())
           .observe(memberEnd.getAssociation());
   navigableEndsObservableList.addChangeListener(this);
 }