Ejemplo n.º 1
0
  public static ResearchItem copy(ResearchItem res, String newKey, String newCat, int dC, int dR) {
    ResearchItem rItem;

    if (res.icon_resource != null)
      rItem =
          new ResearchItem(
              newKey,
              newCat,
              res.tags,
              dC,
              dR,
              res.getComplexity(),
              Object[].class.cast(res.icon_resource));
    else
      rItem =
          new ResearchItem(
              newKey,
              newCat,
              res.tags,
              dC,
              dR,
              res.getComplexity(),
              Object[].class.cast(res.icon_item));

    rItem.parents = res.parents;
    rItem.parentsHidden = res.parentsHidden;
    rItem.siblings = res.siblings;
    rItem.setPages(res.getPages());

    rItem.setHidden();

    if (res.isAutoUnlock()) rItem.setAutoUnlock();

    if (res.isFlipped()) rItem.setFlipped();

    if (res.isHidden()) rItem.setHidden();

    if (res.isRound()) rItem.setRound();

    if (res.isSecondary()) rItem.setSecondary();

    if (res.isSpecial()) rItem.setSpecial();

    if (res.isStub()) rItem.setStub();

    if (res.siblings != null && res.siblings.length > 0) {
      String[] sibStr = new String[res.siblings.length + 1];
      for (int i = 0; i < res.siblings.length; ++i) sibStr[i] = res.siblings[i];

      sibStr[sibStr.length - 1] = newKey;

      res.setSiblings(sibStr);
    } else {
      res.setSiblings(newKey);
    }

    if (rItem.siblings != null && rItem.siblings.length > 0) {
      String[] sibStr = new String[rItem.siblings.length + 1];
      for (int i = 0; i < rItem.siblings.length; ++i) sibStr[i] = rItem.siblings[i];

      sibStr[sibStr.length - 1] = res.key;

      rItem.setSiblings(sibStr);
    } else {
      rItem.setSiblings(res.key);
    }

    return rItem;
  }