/**
  * Propagate existence of this object to the specified object. This overrides the base class to
  * set the container.
  *
  * @param container Object to contain the new object.
  * @exception IllegalActionException If the object cannot be cloned.
  * @return A new object of the same class and name as this one.
  */
 protected NamedObj _propagateExistence(NamedObj container) throws IllegalActionException {
   try {
     ComponentRelation newObject = (ComponentRelation) super._propagateExistence(container);
     // FindBugs warns that the cast of container is
     // unchecked.
     if (!(container instanceof CompositeEntity)) {
       throw new InternalErrorException(container + " is not a CompositeEntity.");
     } else {
       newObject.setContainer((CompositeEntity) container);
     }
     return newObject;
   } catch (NameDuplicationException e) {
     throw new InternalErrorException(e);
   }
 }
 /**
  * Clone the object into the specified workspace. The new object is <i>not</i> added to the
  * directory of that workspace (you must do this yourself if you want it there). The result is a
  * new relation with no links and no container.
  *
  * @param workspace The workspace for the cloned object.
  * @exception CloneNotSupportedException If one or more of the attributes cannot be cloned.
  * @return A new ComponentRelation.
  */
 public Object clone(Workspace workspace) throws CloneNotSupportedException {
   ComponentRelation newObject = (ComponentRelation) super.clone(workspace);
   newObject._container = null;
   return newObject;
 }