/** Add a new StringNode to the list */
  public StringNode addStringNode(StringNode stringNode) {
    StringNode newStringNode = stringNode;

    // check if it's is an array
    if (stringNode.isArray()) {
      StringArray stringArray = findStringArray(stringNode.getKey());
      int position = -1;
      // if (stringNode.getKey().contains("_"))
      if (StringArray.isArrayItem(stringNode.getKey())) {
        // position =
        // Integer.parseInt(stringNode.getKey().split("_")[1]);
        position = StringArray.findItemPosition(stringNode.getKey());
      }
      newStringNode =
          stringArray.addValue(stringNode.getValue(), ((position != -1) ? position : null));
    }

    newStringNode.setLocalizationFile(this);
    stringNodes.add(newStringNode);
    stringNodesMap.put(newStringNode.getKey(), newStringNode);

    this.setDirty(true);

    return newStringNode;
  }
  /**
   * Remove blank array items
   *
   * @param nodes all nodes
   * @return only non blank array items
   */
  private List<StringNode> removeBlankArrayItems(List<StringNode> nodes) {
    List<StringNode> noBlankArrayItems = new ArrayList<StringNode>();

    for (StringNode node : nodes) {
      if (node.isArray()) {
        if (!node.getValue().equals("")) {
          noBlankArrayItems.add(node);
        }
      } else {
        noBlankArrayItems.add(node);
      }
    }
    return noBlankArrayItems;
  }
 /** Remove a StringNode from the list */
 public void removeStringNode(StringNode stringNode) {
   if (stringNodes.contains(stringNode)) {
     stringNodes.remove(stringNode);
     stringNodesMap.remove(stringNode.getKey());
     this.setDirty(true);
     // check if it's is an array
     if (stringNode.isArray()) {
       stringNode.getStringArray().removeValue(stringNode);
       if (stringNode.getStringArray().getValues().size() == 0) {
         this.stringArrays.remove(stringNode.getStringArray());
       }
     }
   }
 }