public String generateSource_AddElement(ModelField modelField) {
    String fieldNameCapped = NameUtil.capName(modelField.getName());
    String fieldNameUncapped = NameUtil.uncapName(modelField.getName());
    String fieldClassName = TypeUtil.getClassName(modelField.getType());
    String fieldTypeLocalPart = TypeUtil.getLocalPart(modelField.getType());
    String fieldKeyTypeLocalPart = TypeUtil.getLocalPart(modelField.getKeyType());

    Buf buf = new Buf();
    buf.putLine2("putElement(" + fieldKeyTypeLocalPart + ", " + fieldTypeLocalPart + "Map);");
    return buf.get();
  }
  public String generateSource_PutElement(ModelField modelField) {
    String fieldType = modelField.getType();
    String fieldTypeLocalPart = TypeUtil.getLocalPart(fieldType);

    Buf buf = new Buf();
    buf.putLine2("putElement(" + fieldTypeLocalPart + "Key, " + fieldTypeLocalPart + ");");
    return buf.get();
  }
 public String generateSource_GetElements(ModelField modelField) {
   Buf buf = new Buf();
   String structure = modelField.getStructure();
   if (structure.equals("map")) {
     String fieldType = modelField.getType();
     String fieldTypeLocalPart = TypeUtil.getLocalPart(fieldType);
     buf.putLine2("return getElements(" + fieldTypeLocalPart + "Keys);");
   }
   return buf.get();
 }
  public String generateSource_SetElement(ModelField modelField) {
    String fieldNameCapped = NameUtil.capName(modelField.getName());
    String fieldNameUncapped = NameUtil.uncapName(modelField.getName());
    String fieldClassName = TypeUtil.getClassName(modelField.getType());
    String fieldTypeLocalPart = TypeUtil.getLocalPart(modelField.getType());

    Buf buf = new Buf();
    // buf.putLine2("synchronized (this."+fieldNameUncapped+") {");
    buf.putLine2("this." + fieldNameUncapped + " = " + fieldTypeLocalPart + ";");
    // buf.putLine2("}");
    return buf.get();
  }
  public String generateSource_RemoveElements(ModelField modelField) {
    String fieldNameCapped = NameUtil.capName(modelField.getName());
    String fieldNameUncapped = NameUtil.uncapName(modelField.getName());
    String fieldClassName = TypeUtil.getClassName(modelField.getType());
    String fieldTypeLocalPart = TypeUtil.getLocalPart(modelField.getType());
    String parameterName = fieldTypeLocalPart;

    String structure = modelField.getStructure();
    if (structure.equals("list")) {
      parameterName = fieldTypeLocalPart + "List";

    } else if (structure.equals("set")) {
      parameterName = fieldTypeLocalPart + "Set";

    } else if (structure.equals("map")) {
      parameterName = fieldTypeLocalPart + "Map";
    }

    Buf buf = new Buf();
    buf.putLine2("synchronized (" + fieldNameUncapped + ") {");
    buf.putLine2("	" + fieldNameUncapped + ".removeAll(" + parameterName + ");");
    buf.putLine2("}");
    return buf.get();
  }