public void addArgument(IPeopleQueryArgument argument) {

    if (getArgumentMap().containsKey(argument.getName())) {
      throw new RuntimeException(
          "There is already exists an argument with name "
              + argument.getName()
              + " within the people query.");
    }

    List<Peoplequeryargument> peopleQueryArgEntities = peopleQueryEntity.getPeoplequeryarguments();

    /* If the people query doesn't contain any arguments yet the list
     * of people query arguments is null.
     */
    if (peopleQueryArgEntities == null) {
      peopleQueryArgEntities = new ArrayList<Peoplequeryargument>();
      peopleQueryEntity.setPeoplequeryarguments(peopleQueryArgEntities);
    }

    Peoplequeryargument peopleQueryArgEntity = (Peoplequeryargument) argument.getAdaptee();
    /*
     * There is a bidirectional relation between people
     * query entities and people query argument entities consequently
     * both sides of the relationship have to be set.
     */
    peopleQueryArgEntities.add(peopleQueryArgEntity);
    peopleQueryArgEntity.setPeoplequeryBean(peopleQueryEntity);
  }
  protected String getPeopleQueryArgumentName(Peoplequeryargument peoplequeryArgument) {

    /* The lpg argument definition contains the name of the people query argument. */
    LpgArgumentdef lpgArgumentDef = peoplequeryArgument.getLpgArgumentdef();
    /* Should always evaluate to true since a people query argument can only be created based on
     * an lpg argument definition */
    if (lpgArgumentDef != null) {
      return lpgArgumentDef.getName();
    }
    return null;
  }