String arglist = buildActualSeparatorArguments(listType);
String arglist = buildActualSeparatorArguments(type);
    private void genSeparatorGetterAndSetter(Field field) {        String fieldName = StringConversions.makeCapitalizedIdentifier(field.getId());        String fieldClass =            TypeGenerator.qualifiedClassName(                getJavaGenerationParameters(),                field.getType());        String fieldId = JavaGenerator.getFieldId(field.getId());        String fieldGetter = buildSeparatorFieldGetter(field);        // TODO: find a way to reuse generation of getters in        // AlternativeGenerator for lists of builtins        println("  public " + fieldClass + " " + fieldGetter + " {");        println("    if (!isEmpty() && !isSingle()) {");        println("      return " + fieldId + ";");        println("    }");        println(            "    throw new UnsupportedOperationException(\"This "                + getClassName()                + " does not have a "                + field.getId()                + ":\" + this);");        println("  }");        println();        println(            "  public "                + getClassName()                + " set"                + fieldName                + "("                + fieldClass                + " arg) {");        println("    if (!isEmpty() && !isSingle()) {");        String arglist = buildActualSeparatorArguments(listType);        arglist = arglist.replaceAll(fieldId, "arg");        println(            "      return "                + factoryGetter()                + ".make"                + getClassName()                + "(getHead(), "                + arglist                + "getTail());");        println("    }");        println(            "    throw new RuntimeException(\"This "                + getClassName()                + " does not have a "                + fieldId                + ".\");");        println("  }");        println();    }