public Name join(String identifier){
  validateLowerUnderscore(identifier);
  List<NamePiece> newPieceList=new ArrayList<>();
  newPieceList.addAll(namePieces);
  newPieceList.add(new NamePiece(identifier,CaseFormat.LOWER_UNDERSCORE));
  return new Name(newPieceList);
}

public Name join ( String identifier ) { validateLowerUnderscore ( identifier ) ; List < NamePiece > newPieceList = new ArrayList < > ( ) ; newPieceList . addAll ( namePieces ) ; newPieceList . add ( new NamePiece ( identifier , CaseFormat . LOWER_UNDERSCORE ) ) ; return new Name ( newPieceList ) ; }
returns a new name containing the pieces from this name plus the given identifier added on the end .
