Beispiel #1
0
  public GenericObject deepClone() {
    final GenericObject retValue = new GenericObject(parent, name);

    for (WritableObject obj : allWritable) {
      if (obj instanceof GenericObject) {
        GenericObject go = ((GenericObject) obj).deepClone();
        retValue.addChild(go);
      } else if (obj instanceof GenericList) {
        GenericList gl = ((GenericList) obj).clone();
        retValue.addList(gl);
      } else if (obj instanceof ObjectVariable) {
        ObjectVariable ov = ((ObjectVariable) obj).clone();
        retValue.values.add(ov);
        retValue.allWritable.add(ov);
      } else if (obj instanceof InlineComment) {
        Comment com = ((InlineComment) obj).clone();
        retValue.generalComments.add(com);
        retValue.allWritable.add(com);
      }
    }

    if (headComment != null) retValue.setHeadComment(headComment.getComment());
    if (inlineComment != null) retValue.setInlineComment(inlineComment.getComment());

    return retValue;
  }
Beispiel #2
0
  /**
   * Creates and returns a shallow copy of this object. Note that children are not cloned, but the
   * lists of children are.
   *
   * @return a shallow copy of this object.
   */
  @Override
  public GenericObject clone() {
    final GenericObject retValue = new GenericObject(parent, name);

    retValue.children.addAll(children);
    retValue.lists.addAll(lists);
    retValue.values.addAll(values);
    retValue.generalComments.addAll(generalComments);
    retValue.allWritable.addAll(allWritable);

    if (headComment != null) retValue.setHeadComment(headComment.getComment());
    if (inlineComment != null) retValue.setInlineComment(inlineComment.getComment());

    return retValue;
  }
Beispiel #3
0
 /**
  * Simple recursive method to find the root node.
  *
  * @since EUGFile 1.01.03
  */
 public GenericObject getRoot() {
   return (parent == null ? this : parent.getRoot());
 }