in maven2-plugins/myfaces-faces-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/faces/generator/component/MyFacesComponentGenerator.java [159:271]
protected void writePropertyListMethods(PrettyWriter out, PropertyBean property, Collection ignoreList)
{
String propName = property.getPropertyName();
String generic;
String type;
boolean isValidator = GeneratorHelper.isValidator(property, _is12);
if (isValidator)
{
generic = "<Validator>";
type = "Validator";
}
else if (property.getAttributeClassParameters().length == 1)
{
generic = Util.getGenericsFromProperty(property);
type = Util.getClassFromFullClass(property.getAttributeClassParameters()[0]);
}
else
{
throw new IllegalArgumentException("only one Generic Parameter is allowed for Lists");
}
String singularName = getSingular(propName);
String propVar = Util.getVariableFromName(singularName);
String description = property.getDescription();
String addMethod = Util.getPrefixedPropertyName("add", singularName);
String removeMethod = Util.getPrefixedPropertyName("remove", singularName);
String getMethod = Util.getPrefixedPropertyName("get", singularName + "s");
String fieldPropName = property.getFieldPropertyName() + (isValidator ? "List" : "");
out.println();
out.println("// Property: " + propName);
out.println("private List" + generic + " " + fieldPropName + ";");
if (ignoreList == null || !ignoreList.contains(addMethod))
{
out.println();
out.println("/**");
if (description != null)
{
out.println(" * Adds a " + convertMultilineComment(description));
}
out.println(" */");
out.println("public void " + addMethod + "( " + type + " " +
propVar + ")");
out.println("{");
out.indent();
out.println("if (" + propVar + " == null) throw new NullPointerException(\"" + propVar + "\");");
out.println("if (" + fieldPropName + " == null)");
out.println(" " + fieldPropName + " = new ArrayList" + generic + "();");
out.println();
out.println(fieldPropName + ".add(" + propVar + ");");
out.unindent();
out.println("}");
}
if (ignoreList == null || !ignoreList.contains(removeMethod))
{
out.println();
out.println("/**");
if (description != null)
{
out.println(" * Removes a " + convertMultilineComment(description));
}
out.println(" */");
out.println("public void " + removeMethod + "( " + type + " " + propVar + ")");
out.println("{");
out.indent();
out.println("if (" + propVar + " == null || " + fieldPropName + " == null)");
out.println(" return;");
out.println();
out.println(fieldPropName + ".remove(" + propVar + ");");
out.unindent();
out.println("}");
}
if (ignoreList == null || !ignoreList.contains(getMethod))
{
if (isValidator)
{
out.println("private static final " + type + "[] EMPTY_" + type.toUpperCase() + "_ARRAY = new " + type + "[0];");
}
out.println();
out.println("/**");
if (description != null)
{
out.println(" * Gets all " + convertMultilineComment(description));
}
out.println(" */");
if (isValidator)
{
out.println("public " + type + "[] " + getMethod + "()");
}
else
{
out.println("public List" + generic + " " + getMethod + "()");
}
out.println("{");
out.indent();
if (isValidator)
{
out.println("return " + fieldPropName + "== null? EMPTY_" + type.toUpperCase() + "_ARRAY : " + fieldPropName + ".toArray(new " + type + "[" + fieldPropName + ".size()]);");
}
else
{
out.println("if (" + fieldPropName + " == null)");
out.indent();
out.println(fieldPropName + " = new ArrayList<" + type + ">();");
out.unindent();
out.println("return " + fieldPropName + ";");
}
out.unindent();
out.println("}");
}
}