anchor.diff:  ---------
   There may be situations where an existing data object needs to be migrated to also represent other types. Using the
   above example the fact that the director also acted in the movie might have been discovered after the data object
  -has been created using the type Director. CDO offers a way to perform a migration at runtime and allows adding (or
  +has been created using the type Director. XO offers a way to perform a migration at runtime and allows adding (or
   removing) roles (i.e. types):
   
   TempleOfDoom.java
  
positive.code: public class TempleOfDoom {
  
    public static void main(String[] args) {
      CdoManagerFactory cmf = Cdo.createCdoManagerFactory("movies");
      CdoManager cm = cmf.createCdoManager();
      cm.currentTransaction.begin();
      Actor harrison = cm.create(Actor.class);
      harrison.setName("Harrison Ford");
  
      // Create Steven as composite object using more than one role
      CompositeObject steven = cm.create(Director.class, Actor.class);
  
      // Use Steven in the role of an actor
      steven.as(Actor.class).setName("Steven Spielberg");
  
      Movie temple = cm.create(Movie.class);
      temple.setTitle("Temple Of Doom");
  
      // Use Steven in the role of a director as the "director" property of the type Movie requires it
  
negative.code:     raiders.getActors().add(harrison);
  
      // Commit the transaction
      xm.currentTransaction.commit();
  
      // Close the XOManager
      xm.close();
  
      // Close the XOManagerFactory (on shutdown of the application)
      xmf.close();
    }
  }
  ----
  