code: protected void addAlias(MonolingualTextValue alias) {
          String lang = alias.getLanguageCode();
          AliasesWithUpdate currentAliasesUpdate = newAliases.get(lang);
          
          NameWithUpdate currentLabel = newLabels.get(lang);
          // If there isn't any label for that language, put the alias there
          if (currentLabel == null) {
              newLabels.put(lang, new NameWithUpdate(alias, true));
          // If the new alias is equal to the current label, skip it
          } else if (!currentLabel.value.equals(alias)) {
          	if (currentAliasesUpdate == null) {
          		currentAliasesUpdate = new AliasesWithUpdate(new ArrayList<MonolingualTextValue>(), true);
          	}
          	List<MonolingualTextValue> currentAliases = currentAliasesUpdate.aliases;
          	if(!currentAliases.contains(alias)) {
          		currentAliases.add(alias);
          		currentAliasesUpdate.added.add(alias);
          		currentAliasesUpdate.write = true;
          	}
          	newAliases.put(lang, currentAliasesUpdate);
          }
      }
docs: Adds an individual alias. It will be merged with the current
  list of aliases, or added as a label if there is no label for
  this item in this language yet.
  
  @param alias
  the alias to add