コード例 #1
0
  /**
   * Clone the library 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). If the library
   * has not yet been populated, then the clone will also not have been populated.
   *
   * @param workspace The workspace for the cloned object.
   * @exception CloneNotSupportedException If the library contains level crossing transitions so
   *     that its connections cannot be cloned, or if one of the attributes cannot be cloned.
   * @return A new LazyTypedCompositeActor.
   */
  public Object clone(Workspace workspace) throws CloneNotSupportedException {
    // To prevent populating during cloning, we set a flag.
    _cloning = true;

    try {
      LazyTypedCompositeActor result = (LazyTypedCompositeActor) super.clone(workspace);

      // There may or may not be configure text, but it won't be the
      // same as what we are cloning (instantiating) from.
      result._base = null;
      result._configureDone = false;
      result._populating = false;
      result._configureSource = null;
      result._configureText = null;

      result._cloning = false;
      return result;
    } finally {
      _cloning = false;
    }
  }