use association_GetPrivate.ump;


class UnitTest {
    association_SetNToOptionalOne <<!<</*association_SetNToOptionalOne*/>>
  public boolean <<=gen.translate("setManyMethod",av)>>(<<=gen.translate("type",av)>>... <<=gen.translate("parameterMany",av)>>)
  {
    boolean wasSet = false;
    <<# if (customSetManyPrefixCode != null) { addUncaughtExceptionVariables(realSb.toString().split("\\n").length,customSetManyPrefixCode,gen.translate("setManyMethod",av)); 
    append(realSb, "\n{0}",GeneratorHelper.doIndent(customSetManyPrefixCode, "    ")); } #>>
    ArrayList<<<=gen.translate("type",av)>>> <<=gen.translate("parameterCheckNewMany",av)>> = new ArrayList<<<=gen.translate("type",av)>>>();
    for (<<=gen.translate("type",av)>> <<=gen.translate("parameterOne",av)>> : <<=gen.translate("parameterMany",av)>>)
    {
      if (<<=gen.translate("parameterCheckNewMany",av)>>.contains(<<=gen.translate("parameterOne",av)>>))
      {
        <<# if (customSetManyPostfixCode != null) { addUncaughtExceptionVariables(realSb.toString().split("\\n").length,customSetManyPostfixCode,gen.translate("setManyMethod",av));
        append(realSb, "\n{0}",GeneratorHelper.doIndent(customSetManyPostfixCode, "        ")); } #>>
        return wasSet;
      }
      else if (<<=gen.translate("parameterOne",av)>>.<<=gen.relatedTranslate("getMethod",av)>>() != null && !this.equals(<<=gen.translate("parameterOne",av)>>.<<=gen.relatedTranslate("getMethod",av)>>()))
      {
        <<# if (customSetManyPostfixCode != null) { addUncaughtExceptionVariables(realSb.toString().split("\\n").length,customSetManyPostfixCode,gen.translate("setManyMethod",av)); 
        append(realSb, "\n{0}",GeneratorHelper.doIndent(customSetManyPostfixCode, "        ")); } #>>
        return wasSet;
      }
      <<=gen.translate("parameterCheckNewMany",av)>>.add(<<=gen.translate("parameterOne",av)>>);
    }

    if (<<=gen.translate("parameterCheckNewMany",av)>>.size() != <<=gen.translate("minimumNumberOfMethod",av)>>())
    {
      <<# if (customSetManyPostfixCode != null) { addUncaughtExceptionVariables(realSb.toString().split("\\n").length,customSetManyPostfixCode,gen.translate("setManyMethod",av)); 
      append(realSb, "\n{0}",GeneratorHelper.doIndent(customSetManyPostfixCode, "      ")); } #>>
      return wasSet;
    }

    <<=gen.translate("associationMany",av)>>.removeAll(<<=gen.translate("parameterCheckNewMany",av)>>);
    
    for (<<=gen.translate("type",av)>> orphan : <<=gen.translate("associationMany",av)>>)
    {
      <<=gen.relatedTranslate("setMethod",av)>>(orphan, null);
    }
    <<=gen.translate("associationMany",av)>>.clear();
    for (<<=gen.translate("type",av)>> <<=gen.translate("parameterOne",av)>> : <<=gen.translate("parameterMany",av)>>)
    {
      <<=gen.relatedTranslate("setMethod",av)>>(<<=gen.translate("parameterOne",av)>>, this);
      <<=gen.translate("associationMany",av)>>.add(<<=gen.translate("parameterOne",av)>>);
    }
    wasSet = true;
    <<# if (customSetManyPostfixCode != null) { addUncaughtExceptionVariables(realSb.toString().split("\\n").length,customSetManyPostfixCode,gen.translate("setManyMethod",av)); 
    append(realSb, "\n{0}",GeneratorHelper.doIndent(customSetManyPostfixCode, "    ")); } #>>
    return wasSet;
  }
<<@ UnitTest.association_GetPrivate >>!>>
}
