nus-yam/ex-repair huggingface dataset:
Program: 26847
Project: 26847
Buggy source:
@Override public String setColumnAccessString(TypeName fieldType,String elementName,String fullElementName,boolean isModelContainerAdapter,String variableNameString,CodeBlock formattedAccess){
  CodeBlock.Builder newFormattedAccess=CodeBlock.builder();
  if (typeConverterFieldName == null) {
    newFormattedAccess.add("String_Node_Str",typeConverterDefinition.getModelTypeName(),ClassNames.FLOW_MANAGER,METHOD_TYPE_CONVERTER,columnDefinition.elementTypeName.box()).build();
  }
 else {
    newFormattedAccess.add(typeConverterFieldName);
  }
  newFormattedAccess.add("String_Node_Str",typeConverterDefinition.getDbTypeName(),formattedAccess);
  return getExistingColumnAccess().setColumnAccessString(fieldType,elementName,fullElementName,isModelContainerAdapter,variableNameString,newFormattedAccess.build());
}

Fixed version (ground truth):
@Override public String setColumnAccessString(TypeName fieldType,String elementName,String fullElementName,boolean isModelContainerAdapter,String variableNameString,CodeBlock formattedAccess){
  CodeBlock.Builder newFormattedAccess=CodeBlock.builder();
  if (typeConverterFieldName == null) {
    newFormattedAccess.add("String_Node_Str",typeConverterDefinition.getModelTypeName(),ClassNames.FLOW_MANAGER,METHOD_TYPE_CONVERTER,columnDefinition.elementTypeName.box()).build();
  }
 else {
    newFormattedAccess.add(typeConverterFieldName);
  }
  String newCursorAccess=formattedAccess.toString();
  if (typeConverterDefinition.getDbTypeName().equals(ClassName.get(Blob.class))) {
    newCursorAccess=String.format("String_Node_Str",newCursorAccess);
  }
  newFormattedAccess.add("String_Node_Str",typeConverterDefinition.getDbTypeName(),newCursorAccess);
  return getExistingColumnAccess().setColumnAccessString(fieldType,elementName,fullElementName,isModelContainerAdapter,variableNameString,newFormattedAccess.build());
}
Program: 26848
Project: 26848
Buggy source:
public void testJoins(){
  String query=SQLite.select(Department_Table.emp_id,Company_Table.name,Department_Table.dept).from(Company.class).join(Department.class,Join.JoinType.INNER).on(Company_Table.id.withTable().eq(Department_Table.emp_id.withTable())).getQuery();
  assertEquals("String_Node_Str" + "String_Node_Str",query.trim());
}

Fixed version (ground truth):
public void testJoins(){
  From<Company> joinQuery=SQLite.select(Department_Table.emp_id,Company_Table.name,Department_Table.dept).from(Company.class).join(Department.class,Join.JoinType.INNER).on(Company_Table.id.withTable().eq(Department_Table.emp_id.withTable()));
  String query=joinQuery.getQuery();
  assertEquals("String_Node_Str" + "String_Node_Str",query.trim());
  List<CompanyDepartmentJoin> companyDepartmentJoins=joinQuery.queryCustomList(CompanyDepartmentJoin.class);
}
Program: 26849
Project: 26849
Buggy source:
@Override public boolean exists(){
  throw new InvalidSqlViewOperationException("String_Node_Str" + getClass().getName() + "String_Node_Str");
}

Fixed version (ground truth):
@Override public boolean exists(){
  throw new InvalidSqlViewOperationException("String_Node_Str" + getClass().getName() + "String_Node_Str"+ "String_Node_Str");
}
Program: 26850
Project: 26850
Buggy source:
public void testSelectStatement(){
  Where<TestModel1> where=new Select(name).from(TestModel1.class).where(name.is("String_Node_Str"));
  assertEquals("String_Node_Str",where.getQuery().trim());
  where.query();
  Where<TestModel3> where1=new Select(name,type).from(TestModel3.class).where(name.is("String_Node_Str"),type.is("String_Node_Str"));
  assertEquals("String_Node_Str",where1.getQuery().trim());
  Where<TestModel3> where2=new Select().distinct().from(TestModel3.class).where();
  assertEquals("String_Node_Str",where2.getQuery().trim());
  where2.query();
  Where<TestModel3> where3=new Select(Method.count()).from(TestModel3.class).where();
  assertEquals("String_Node_Str",where3.getQuery().trim());
  where3.query();
  Where<TestModel3> where4=new Select().from(TestModel3.class).where(name.eq("String_Node_Str")).and(type.is("String_Node_Str"));
  assertEquals("String_Node_Str",where4.getQuery().trim());
  Where<TestModel3> where6=new Select(Method.count(type)).from(TestModel3.class).orderBy(name,true).orderBy(type,true);
  assertEquals("String_Node_Str",where6.getQuery().trim());
}

Fixed version (ground truth):
public void testSelectStatement(){
  Where<TestModel1> where=new Select(name).from(TestModel1.class).where(name.is("String_Node_Str"));
  assertEquals("String_Node_Str",where.getQuery().trim());
  where.query();
  Where<TestModel3> where1=new Select(name,type).from(TestModel3.class).where(name.is("String_Node_Str"),type.is("String_Node_Str"));
  assertEquals("String_Node_Str",where1.getQuery().trim());
  Where<TestModel3> where2=new Select().distinct().from(TestModel3.class).where();
  assertEquals("String_Node_Str",where2.getQuery().trim());
  where2.query();
  Where<TestModel3> where3=new Select(Method.count()).from(TestModel3.class).where();
  assertEquals("String_Node_Str",where3.getQuery().trim());
  where3.query();
  Where<TestModel3> where4=new Select().from(TestModel3.class).where(name.eq("String_Node_Str")).and(type.is("String_Node_Str"));
  assertEquals("String_Node_Str",where4.getQuery().trim());
  Where<TestModel3> where6=new Select(Method.count(type)).from(TestModel3.class).orderBy(name,true).orderBy(type,true);
  assertEquals("String_Node_Str",where6.getQuery().trim());
  String query=SQLite.select().from(TestModel3.class).where(TestModel3_Table.type.in(SQLite.select(TestModel2_Table.name).from(TestModel2.class).where(TestModel2_Table.name.is("String_Node_Str")))).getQuery();
  assertEquals("String_Node_Str" + "String_Node_Str",query.trim());
}
Program: 26851
Project: 26851
Buggy source:
/** 
 * Converts the given value for the column if it has a type converter. Then it turns that result into a string.
 * @param value The value of the column in Model format.
 * @return Returns the result of converting and type converting the specified value.
 */
@SuppressWarnings("String_Node_Str") public static String convertValueToString(Object value){
  String stringVal;
  if (value != null) {
    TypeConverter typeConverter=FlowManager.getTypeConverterForClass(value.getClass());
    if (typeConverter != null) {
      value=typeConverter.getDBValue(value);
    }
  }
  if (value instanceof Number) {
    stringVal=String.valueOf(value);
  }
 else {
    if (value instanceof Where) {
      stringVal=String.format("String_Node_Str",((Where)value).getQuery().trim());
    }
 else     if (value instanceof NameAlias) {
      stringVal=((NameAlias)value).getQuery();
    }
 else     if (value instanceof SQLCondition) {
      QueryBuilder queryBuilder=new QueryBuilder();
      ((SQLCondition)value).appendConditionToQuery(queryBuilder);
      stringVal=queryBuilder.toString();
    }
 else     if (value instanceof Query) {
      stringVal=((Query)value).getQuery();
    }
 else {
      stringVal=String.valueOf(value);
      if (!stringVal.equals(Condition.Operation.EMPTY_PARAM)) {
        stringVal=DatabaseUtils.sqlEscapeString(stringVal);
      }
    }
  }
  return stringVal;
}

Fixed version (ground truth):
/** 
 * Converts the given value for the column if it has a type converter. Then it turns that result into a string.
 * @param value The value of the column in Model format.
 * @return Returns the result of converting and type converting the specified value.
 */
@SuppressWarnings("String_Node_Str") public static String convertValueToString(Object value){
  String stringVal;
  if (value != null) {
    TypeConverter typeConverter=FlowManager.getTypeConverterForClass(value.getClass());
    if (typeConverter != null) {
      value=typeConverter.getDBValue(value);
    }
  }
  if (value instanceof Number) {
    stringVal=String.valueOf(value);
  }
 else {
    if (value instanceof NameAlias) {
      stringVal=((NameAlias)value).getQuery();
    }
 else     if (value instanceof SQLCondition) {
      QueryBuilder queryBuilder=new QueryBuilder();
      ((SQLCondition)value).appendConditionToQuery(queryBuilder);
      stringVal=queryBuilder.toString();
    }
 else     if (value instanceof Query) {
      stringVal=((Query)value).getQuery();
    }
 else {
      stringVal=String.valueOf(value);
      if (!stringVal.equals(Condition.Operation.EMPTY_PARAM)) {
        stringVal=DatabaseUtils.sqlEscapeString(stringVal);
      }
    }
  }
  return stringVal;
}
Program: 26852
Project: 26852
Buggy source:
@TargetApi(VERSION_CODES.JELLY_BEAN) @Override public void onChange(boolean selfChange,Uri uri){
  String fragment=uri.getFragment();
  String tableName=uri.getAuthority();
  String columnName=null;
  String param=null;
  Set<String> queryNames=uri.getQueryParameterNames();
  SQLCondition[] columnsChanged=new SQLCondition[queryNames.size()];
  if (!queryNames.isEmpty()) {
    int index=0;
    for (    String key : queryNames) {
      param=Uri.decode(uri.getQueryParameter(key));
      columnName=key;
      columnsChanged[index]=Condition.column(new NameAlias(columnName)).value(param);
      index++;
    }
  }
  Class<? extends Model> table=registeredTables.get(tableName);
  if (!isInTransaction) {
    Action action=Action.valueOf(fragment);
    if (action != null) {
      for (      OnModelStateChangedListener modelChangeListener : modelChangeListeners) {
        modelChangeListener.onModelStateChanged(table,action);
      }
      if (columnName != null && param != null) {
        for (        OnSpecificModelStateChangedListener modelChangeListener : specificModelChangeListeners) {
          modelChangeListener.onModelStateChanged(table,action,columnsChanged);
        }
      }
    }
  }
 else {
    if (!notifyAllUris) {
      uri=SqlUtils.getNotificationUri(table,Action.CHANGE);
    }
synchronized (notificationUris) {
      notificationUris.add(uri);
    }
  }
}

Fixed version (ground truth):
@TargetApi(VERSION_CODES.JELLY_BEAN) @Override public void onChange(boolean selfChange,Uri uri){
  String fragment=uri.getFragment();
  String tableName=uri.getAuthority();
  String columnName=null;
  String param=null;
  Set<String> queryNames=uri.getQueryParameterNames();
  SQLCondition[] columnsChanged=new SQLCondition[queryNames.size()];
  if (!queryNames.isEmpty()) {
    int index=0;
    for (    String key : queryNames) {
      param=Uri.decode(uri.getQueryParameter(key));
      columnName=Uri.decode(key);
      columnsChanged[index]=Condition.column(new NameAlias(columnName)).value(param);
      index++;
    }
  }
  Class<? extends Model> table=registeredTables.get(tableName);
  if (!isInTransaction) {
    Action action=Action.valueOf(fragment);
    if (action != null) {
      for (      OnModelStateChangedListener modelChangeListener : modelChangeListeners) {
        modelChangeListener.onModelStateChanged(table,action);
      }
      if (columnName != null && param != null) {
        for (        OnSpecificModelStateChangedListener modelChangeListener : specificModelChangeListeners) {
          modelChangeListener.onModelStateChanged(table,action,columnsChanged);
        }
      }
    }
  }
 else {
    if (!notifyAllUris) {
      uri=SqlUtils.getNotificationUri(table,Action.CHANGE);
    }
synchronized (notificationUris) {
      notificationUris.add(uri);
    }
  }
}
Program: 26853
Project: 26853
Buggy source:
public ContentProviderDefinition(Element typeElement,ProcessorManager processorManager){
  super(typeElement,processorManager);
  ContentProvider provider=element.getAnnotation(ContentProvider.class);
  try {
    provider.database();
  }
 catch (  MirroredTypeException mte) {
    databaseName=TypeName.get(mte.getTypeMirror());
  }
  DatabaseDefinition databaseDefinition=manager.getDatabaseWriter(databaseName);
  databaseNameString=databaseDefinition.databaseName;
  setOutputClassName(databaseDefinition.classSeparator + DEFINITION_NAME);
  authority=provider.authority();
  TableEndpointValidator validator=new TableEndpointValidator();
  List<? extends Element> elements=manager.getElements().getAllMembers((TypeElement)typeElement);
  for (  Element innerElement : elements) {
    if (innerElement.getAnnotation(TableEndpoint.class) != null) {
      TableEndpointDefinition endpointDefinition=new TableEndpointDefinition(innerElement,manager);
      if (validator.validate(processorManager,endpointDefinition)) {
        endpointDefinitions.add(endpointDefinition);
      }
    }
  }
  methods=new MethodDefinition[]{new QueryMethod(this,manager),new InsertMethod(this,false),new InsertMethod(this,true),new DeleteMethod(this,manager),new UpdateMethod(this,manager)};
}

Fixed version (ground truth):
public ContentProviderDefinition(Element typeElement,ProcessorManager processorManager){
  super(typeElement,processorManager);
  ContentProvider provider=element.getAnnotation(ContentProvider.class);
  if (provider != null) {
    try {
      provider.database();
    }
 catch (    MirroredTypeException mte) {
      databaseName=TypeName.get(mte.getTypeMirror());
    }
    DatabaseDefinition databaseDefinition=manager.getDatabaseWriter(databaseName);
    databaseNameString=databaseDefinition.databaseName;
    setOutputClassName(databaseDefinition.classSeparator + DEFINITION_NAME);
    authority=provider.authority();
    TableEndpointValidator validator=new TableEndpointValidator();
    List<? extends Element> elements=manager.getElements().getAllMembers((TypeElement)typeElement);
    for (    Element innerElement : elements) {
      if (innerElement.getAnnotation(TableEndpoint.class) != null) {
        TableEndpointDefinition endpointDefinition=new TableEndpointDefinition(innerElement,manager);
        if (validator.validate(processorManager,endpointDefinition)) {
          endpointDefinitions.add(endpointDefinition);
        }
      }
    }
  }
  methods=new MethodDefinition[]{new QueryMethod(this,manager),new InsertMethod(this,false),new InsertMethod(this,true),new DeleteMethod(this,manager),new UpdateMethod(this,manager)};
}
Program: 26854
Project: 26854
Buggy source:
public ModelContainerDefinition(TypeElement classElement,ProcessorManager manager){
  super(classElement,manager);
  ModelContainer containerKey=classElement.getAnnotation(ModelContainer.class);
  boolean putDefaultValue=containerKey.putDefault();
  tableDefinition=manager.getTableDefinition(manager.getDatabase(elementTypeName),elementTypeName);
  setOutputClassName(tableDefinition.databaseDefinition.classSeparator + DBFLOW_MODEL_CONTAINER_TAG);
  methods=new MethodDefinition[]{new BindToContentValuesMethod(tableDefinition,true,true,tableDefinition.implementsContentValuesListener),new BindToContentValuesMethod(tableDefinition,false,true,tableDefinition.implementsContentValuesListener),new BindToStatementMethod(tableDefinition,true,true),new BindToStatementMethod(tableDefinition,false,true),new ExistenceMethod(tableDefinition,true),new PrimaryConditionMethod(tableDefinition,true),new ToModelMethod(tableDefinition),new LoadFromCursorMethod(tableDefinition,true,tableDefinition.implementsLoadFromCursorListener,putDefaultValue)};
}

Fixed version (ground truth):
public ModelContainerDefinition(TypeElement classElement,ProcessorManager manager){
  super(classElement,manager);
  ModelContainer containerKey=classElement.getAnnotation(ModelContainer.class);
  if (containerKey != null) {
    boolean putDefaultValue=containerKey.putDefault();
    tableDefinition=manager.getTableDefinition(manager.getDatabase(elementTypeName),elementTypeName);
    setOutputClassName(tableDefinition.databaseDefinition.classSeparator + DBFLOW_MODEL_CONTAINER_TAG);
    methods=new MethodDefinition[]{new BindToContentValuesMethod(tableDefinition,true,true,tableDefinition.implementsContentValuesListener),new BindToContentValuesMethod(tableDefinition,false,true,tableDefinition.implementsContentValuesListener),new BindToStatementMethod(tableDefinition,true,true),new BindToStatementMethod(tableDefinition,false,true),new ExistenceMethod(tableDefinition,true),new PrimaryConditionMethod(tableDefinition,true),new ToModelMethod(tableDefinition),new LoadFromCursorMethod(tableDefinition,true,tableDefinition.implementsLoadFromCursorListener,putDefaultValue)};
  }
}
Program: 26856
Project: 26856
Buggy source:
public QueryModelDefinition(Element typeElement,ProcessorManager processorManager){
  super(typeElement,processorManager);
  ModelContainer containerKey=element.getAnnotation(ModelContainer.class);
  boolean putDefaultValue=containerKey != null && containerKey.putDefault();
  QueryModel queryModel=typeElement.getAnnotation(QueryModel.class);
  try {
    queryModel.database();
  }
 catch (  MirroredTypeException mte) {
    databaseTypeName=TypeName.get(mte.getTypeMirror());
  }
  databaseDefinition=manager.getDatabaseWriter(databaseTypeName);
  allFields=queryModel.allFields();
  adapterName=getModelClassName() + databaseDefinition.classSeparator + DBFLOW_TABLE_ADAPTER;
  processorManager.addModelToDatabase(elementClassName,databaseTypeName);
  implementsLoadFromCursorListener=ProcessorUtils.implementsClass(manager.getProcessingEnvironment(),ClassNames.LOAD_FROM_CURSOR_LISTENER.toString(),(TypeElement)element);
  setOutputClassName(databaseDefinition.classSeparator + DBFLOW_QUERY_MODEL_TAG);
  methods=new MethodDefinition[]{new LoadFromCursorMethod(this,false,implementsLoadFromCursorListener,putDefaultValue)};
  createColumnDefinitions(((TypeElement)typeElement));
}

Fixed version (ground truth):
public QueryModelDefinition(Element typeElement,ProcessorManager processorManager){
  super(typeElement,processorManager);
  ModelContainer containerKey=element.getAnnotation(ModelContainer.class);
  boolean putDefaultValue=containerKey != null && containerKey.putDefault();
  QueryModel queryModel=typeElement.getAnnotation(QueryModel.class);
  if (queryModel != null) {
    try {
      queryModel.database();
    }
 catch (    MirroredTypeException mte) {
      databaseTypeName=TypeName.get(mte.getTypeMirror());
    }
    databaseDefinition=manager.getDatabaseWriter(databaseTypeName);
    setOutputClassName(databaseDefinition.classSeparator + DBFLOW_QUERY_MODEL_TAG);
    allFields=queryModel.allFields();
    adapterName=getModelClassName() + databaseDefinition.classSeparator + DBFLOW_TABLE_ADAPTER;
  }
  processorManager.addModelToDatabase(elementClassName,databaseTypeName);
  if (element instanceof TypeElement) {
    implementsLoadFromCursorListener=ProcessorUtils.implementsClass(manager.getProcessingEnvironment(),ClassNames.LOAD_FROM_CURSOR_LISTENER.toString(),(TypeElement)element);
  }
  methods=new MethodDefinition[]{new LoadFromCursorMethod(this,false,implementsLoadFromCursorListener,putDefaultValue)};
  if (typeElement instanceof TypeElement) {
    createColumnDefinitions(((TypeElement)typeElement));
  }
}
Program: 26858
Project: 26858
Buggy source:
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  ContentProviderDefinition contentProviderDefinition=new ContentProviderDefinition(element,processorManager);
  processorManager.addContentProviderDefinition(contentProviderDefinition);
}

Fixed version (ground truth):
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  ContentProviderDefinition contentProviderDefinition=new ContentProviderDefinition(element,processorManager);
  if (contentProviderDefinition.elementClassName != null) {
    processorManager.addContentProviderDefinition(contentProviderDefinition);
  }
}
Program: 26859
Project: 26859
Buggy source:
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  DatabaseDefinition managerWriter=new DatabaseDefinition(processorManager,element);
  processorManager.addFlowManagerWriter(managerWriter);
}

Fixed version (ground truth):
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  DatabaseDefinition managerWriter=new DatabaseDefinition(processorManager,element);
  if (validator.validate(processorManager,managerWriter)) {
    processorManager.addFlowManagerWriter(managerWriter);
  }
}
Program: 26860
Project: 26860
Buggy source:
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  ModelContainerDefinition modelContainerDefinition=new ModelContainerDefinition((TypeElement)element,processorManager);
  processorManager.addModelContainerDefinition(modelContainerDefinition);
}

Fixed version (ground truth):
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  if (element instanceof TypeElement) {
    ModelContainerDefinition modelContainerDefinition=new ModelContainerDefinition((TypeElement)element,processorManager);
    if (validator.validate(processorManager,modelContainerDefinition)) {
      processorManager.addModelContainerDefinition(modelContainerDefinition);
    }
  }
}
Program: 26861
Project: 26861
Buggy source:
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  ModelViewDefinition modelViewDefinition=new ModelViewDefinition(processorManager,element);
  processorManager.addModelViewDefinition(modelViewDefinition);
  try {
    modelViewDefinition.writeViewTable();
  }
 catch (  IOException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  ModelViewDefinition modelViewDefinition=new ModelViewDefinition(processorManager,element);
  if (viewValidator.validate(processorManager,modelViewDefinition)) {
    processorManager.addModelViewDefinition(modelViewDefinition);
    try {
      modelViewDefinition.writeViewTable();
    }
 catch (    IOException e) {
      e.printStackTrace();
    }
  }
}
Program: 26862
Project: 26862
Buggy source:
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  QueryModelDefinition queryModelDefinition=new QueryModelDefinition(element,processorManager);
  processorManager.addQueryModelDefinition(queryModelDefinition);
}

Fixed version (ground truth):
@Override protected void onProcessElement(ProcessorManager processorManager,Element element){
  QueryModelDefinition queryModelDefinition=new QueryModelDefinition(element,processorManager);
  if (queryModelDefinition.databaseTypeName != null) {
    processorManager.addQueryModelDefinition(queryModelDefinition);
  }
}
Program: 26863
Project: 26863
Buggy source:
public String addColumnForTypeConverter(ColumnDefinition columnDefinition,ClassName typeConverterName){
  List<ColumnDefinition> columnDefinitions=associatedTypeConverters.get(typeConverterName);
  if (columnDefinitions == null) {
    columnDefinitions=new ArrayList<>();
  }
  columnDefinitions.add(columnDefinition);
  return "String_Node_Str" + typeConverterName.simpleName();
}

Fixed version (ground truth):
public String addColumnForTypeConverter(ColumnDefinition columnDefinition,ClassName typeConverterName){
  List<ColumnDefinition> columnDefinitions=associatedTypeConverters.get(typeConverterName);
  if (columnDefinitions == null) {
    columnDefinitions=new ArrayList<>();
    associatedTypeConverters.put(typeConverterName,columnDefinitions);
  }
  columnDefinitions.add(columnDefinition);
  return "String_Node_Str" + typeConverterName.simpleName();
}
Program: 26865
Project: 26865
Buggy source:
public TypeConverterAccess(ProcessorManager manager,ColumnDefinition columnDefinition,String typeConverterFieldName){
  this(manager,columnDefinition);
  this.typeConverterFieldName=typeConverterFieldName;
}

Fixed version (ground truth):
public TypeConverterAccess(ProcessorManager manager,ColumnDefinition columnDefinition,TypeConverterDefinition typeConverterDefinition,String typeConverterFieldName){
  super(columnDefinition);
  this.manager=manager;
  this.typeConverterFieldName=typeConverterFieldName;
  this.typeConverterDefinition=typeConverterDefinition;
}
Program: 26866
Project: 26866
Buggy source:
@Override public void addToType(TypeSpec.Builder typeBuilder){
  Set<ClassName> customTypeConverters=baseTableDefinition.getAssociatedTypeConverters().keySet();
  for (  ClassName className : customTypeConverters) {
    typeBuilder.addField(FieldSpec.builder(className,"String_Node_Str" + className.simpleName().toString(),Modifier.PRIVATE,Modifier.FINAL).initializer("String_Node_Str",className).build());
  }
}

Fixed version (ground truth):
@Override public void addToType(TypeSpec.Builder typeBuilder){
  Set<ClassName> customTypeConverters=baseTableDefinition.getAssociatedTypeConverters().keySet();
  for (  ClassName className : customTypeConverters) {
    typeBuilder.addField(FieldSpec.builder(className,"String_Node_Str" + className.simpleName(),Modifier.PRIVATE,Modifier.FINAL).initializer("String_Node_Str",className).build());
  }
}
Program: 26867
Project: 26867
Buggy source:
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  CodeBlock.Builder codeBuilder=CodeBlock.builder();
  if (typeConverterFieldName == null) {
    codeBuilder.add("String_Node_Str",typeConverterDefinition.getDbTypeName(),ClassNames.FLOW_MANAGER,METHOD_TYPE_CONVERTER,columnDefinition.elementTypeName.box());
  }
 else {
    codeBuilder.add(typeConverterFieldName);
  }
  codeBuilder.add("String_Node_Str",getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter));
  return codeBuilder.build().toString();
}

Fixed version (ground truth):
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  CodeBlock.Builder codeBuilder=CodeBlock.builder();
  if (typeConverterFieldName == null) {
    codeBuilder.add("String_Node_Str",typeConverterDefinition.getDbTypeName(),ClassNames.FLOW_MANAGER,METHOD_TYPE_CONVERTER,columnDefinition.elementTypeName.box());
  }
 else {
    codeBuilder.add(typeConverterFieldName);
  }
  codeBuilder.add("String_Node_Str",typeConverterDefinition.getModelTypeName(),getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter));
  return codeBuilder.build().toString();
}
Program: 26868
Project: 26868
Buggy source:
@Override String getShortAccessString(TypeName fieldType,String elementName,boolean isModelContainerAdapter){
  return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getShortAccessString(fieldType,elementName,isModelContainerAdapter)).build().toString();
}

Fixed version (ground truth):
@Override String getShortAccessString(TypeName fieldType,String elementName,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    return getExistingColumnAccess().getShortAccessString(fieldType,elementName,isModelContainerAdapter);
  }
 else {
    return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getShortAccessString(fieldType,elementName,isModelContainerAdapter)).build().toString();
  }
}
Program: 26869
Project: 26869
Buggy source:
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter)).build().toString();
}

Fixed version (ground truth):
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    return getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter);
  }
 else {
    return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter)).build().toString();
  }
}
Program: 26870
Project: 26870
Buggy source:
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    String method=SQLiteType.getMethod(fieldType);
    if (method == null) {
      method="String_Node_Str";
    }
    return variableNameString + "String_Node_Str" + method+ "String_Node_Str"+ elementName+ "String_Node_Str";
  }
 else {
    return variableNameString + "String_Node_Str" + fullElementName;
  }
}

Fixed version (ground truth):
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    String method=SQLiteType.getModelContainerMethod(fieldType);
    if (method == null) {
      method="String_Node_Str";
    }
    return variableNameString + "String_Node_Str" + method+ "String_Node_Str"+ elementName+ "String_Node_Str";
  }
 else {
    return variableNameString + "String_Node_Str" + fullElementName;
  }
}
Program: 26871
Project: 26871
Buggy source:
@Override public MethodSpec getMethodSpec(){
  MethodSpec.Builder methodBuilder=MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC,Modifier.FINAL).addParameter(tableDefinition.getParameterClassName(isModelContainerAdapter),ModelUtils.getVariable(isModelContainerAdapter)).returns(ClassNames.CONDITION_GROUP);
  CodeBlock.Builder code=CodeBlock.builder().add("String_Node_Str",ClassNames.CONDITION_GROUP);
  for (  ColumnDefinition columnDefinition : tableDefinition.getPrimaryColumnDefinitions()) {
    code.add("String_Node_Str",tableDefinition.getPropertyClassName(),columnDefinition.columnName,columnDefinition.getRawColumnAccessString(isModelContainerAdapter));
  }
  methodBuilder.addCode(code.addStatement("String_Node_Str").build());
  return methodBuilder.build();
}

Fixed version (ground truth):
@Override public MethodSpec getMethodSpec(){
  MethodSpec.Builder methodBuilder=MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC,Modifier.FINAL).addParameter(tableDefinition.getParameterClassName(isModelContainerAdapter),ModelUtils.getVariable(isModelContainerAdapter)).returns(ClassNames.CONDITION_GROUP);
  CodeBlock.Builder code=CodeBlock.builder().add("String_Node_Str",ClassNames.CONDITION_GROUP);
  for (  ColumnDefinition columnDefinition : tableDefinition.getPrimaryColumnDefinitions()) {
    code.add("String_Node_Str",tableDefinition.getPropertyClassName(),columnDefinition.columnName,columnDefinition.getPropertyComparisonAccessStatement(isModelContainerAdapter));
  }
  methodBuilder.addCode(code.addStatement("String_Node_Str").build());
  return methodBuilder.build();
}
Program: 26872
Project: 26872
Buggy source:
private String getFinalAccessStatement(CodeBlock.Builder codeBuilder,boolean isModelContainerAdapter,String statement){
  String finalAccessStatement=statement;
  if (columnAccess instanceof TypeConverterAccess || columnAccess instanceof ModelContainerAccess || isModelContainerAdapter) {
    finalAccessStatement=getRefName();
    TypeName typeName;
    if (columnAccess instanceof TypeConverterAccess) {
      typeName=((TypeConverterAccess)columnAccess).typeConverterDefinition.getDbTypeName();
    }
 else     if (columnAccess instanceof ModelContainerAccess) {
      typeName=ModelUtils.getModelContainerType(manager,elementTypeName);
    }
 else {
      typeName=ModelUtils.getModelContainerType(manager,elementTypeName);
      statement=ModelUtils.getVariable(isModelContainerAdapter) + "String_Node_Str" + statement+ "String_Node_Str"+ referencedTableClassName+ "String_Node_Str";
    }
    codeBuilder.addStatement("String_Node_Str",typeName,finalAccessStatement,statement);
  }
  return finalAccessStatement;
}

Fixed version (ground truth):
String getFinalAccessStatement(CodeBlock.Builder codeBuilder,boolean isModelContainerAdapter,String statement){
  String finalAccessStatement=statement;
  if (columnAccess instanceof TypeConverterAccess || columnAccess instanceof ModelContainerAccess || isModelContainerAdapter) {
    finalAccessStatement=getRefName();
    TypeName typeName;
    if (columnAccess instanceof TypeConverterAccess) {
      typeName=((TypeConverterAccess)columnAccess).typeConverterDefinition.getDbTypeName();
    }
 else     if (columnAccess instanceof ModelContainerAccess) {
      typeName=ModelUtils.getModelContainerType(manager,elementTypeName);
    }
 else {
      typeName=ModelUtils.getModelContainerType(manager,elementTypeName);
      statement=ModelUtils.getVariable(isModelContainerAdapter) + "String_Node_Str" + statement+ "String_Node_Str"+ referencedTableClassName+ "String_Node_Str";
    }
    codeBuilder.addStatement("String_Node_Str",typeName,finalAccessStatement,statement);
  }
  return finalAccessStatement;
}
Program: 26873
Project: 26873
Buggy source:
@Override public CodeBlock getContentValuesStatement(boolean isModelContainerAdapter){
  CodeBlock.Builder builder=CodeBlock.builder();
  String statement=columnAccess.getColumnAccessString(elementTypeName,elementName,elementName,ModelUtils.getVariable(isModelContainerAdapter),isModelContainerAdapter);
  String finalAccessStatement=getFinalAccessStatement(builder,isModelContainerAdapter,statement);
  builder.beginControlFlow("String_Node_Str",finalAccessStatement);
  CodeBlock.Builder elseBuilder=CodeBlock.builder();
  for (  ForeignKeyReferenceDefinition referenceDefinition : foreignKeyReferenceDefinitionList) {
    builder.add(referenceDefinition.getContentValuesStatement(isModelContainerAdapter));
    elseBuilder.addStatement("String_Node_Str",BindToContentValuesMethod.PARAM_CONTENT_VALUES,referenceDefinition.columnName);
  }
  builder.nextControlFlow("String_Node_Str").add(elseBuilder.build()).endControlFlow();
  return builder.build();
}

Fixed version (ground truth):
@Override public CodeBlock getContentValuesStatement(boolean isModelContainerAdapter){
  CodeBlock.Builder builder=CodeBlock.builder();
  String statement=columnAccess.getColumnAccessString(elementTypeName,elementName,elementName,ModelUtils.getVariable(isModelContainerAdapter),isModelContainerAdapter);
  String finalAccessStatement=getFinalAccessStatement(builder,isModelContainerAdapter,statement);
  builder.addStatement("String_Node_Str",statement);
  builder.beginControlFlow("String_Node_Str",finalAccessStatement);
  CodeBlock.Builder elseBuilder=CodeBlock.builder();
  for (  ForeignKeyReferenceDefinition referenceDefinition : foreignKeyReferenceDefinitionList) {
    builder.add(referenceDefinition.getContentValuesStatement(isModelContainerAdapter));
    elseBuilder.addStatement("String_Node_Str",BindToContentValuesMethod.PARAM_CONTENT_VALUES,referenceDefinition.columnName);
  }
  builder.nextControlFlow("String_Node_Str").add(elseBuilder.build()).endControlFlow();
  return builder.build();
}
Program: 26874
Project: 26874
Buggy source:
CodeBlock getContentValuesStatement(boolean isModelContainerAdapter){
  String shortAccess=tableColumnAccess.getShortAccessString(isModelContainerAdapter,foreignKeyFieldName);
  String columnShortAccess=columnAccess.getShortAccessString(isModelContainerAdapter,foreignColumnName);
  String combined=shortAccess + (isModelContainerAdapter ? "String_Node_Str" : "String_Node_Str") + columnShortAccess;
  return DefinitionUtils.getContentValuesStatement(columnShortAccess,combined,columnName,columnClassName,isModelContainerAdapter,simpleColumnAccess,getForeignKeyColumnVariable(isModelContainerAdapter)).build();
}

Fixed version (ground truth):
CodeBlock getContentValuesStatement(boolean isModelContainerAdapter){
  String shortAccess=tableColumnAccess.getShortAccessString(isModelContainerAdapter,foreignKeyFieldName);
  shortAccess=foreignKeyColumnDefinition.getForeignKeyReferenceAccess(isModelContainerAdapter,shortAccess);
  String columnShortAccess=columnAccess.getShortAccessString(isModelContainerAdapter,foreignColumnName);
  String combined=shortAccess + (isModelContainerAdapter ? "String_Node_Str" : "String_Node_Str") + columnShortAccess;
  return DefinitionUtils.getContentValuesStatement(columnShortAccess,combined,columnName,columnClassName,isModelContainerAdapter,simpleColumnAccess,getForeignKeyColumnVariable(isModelContainerAdapter)).build();
}
Program: 26877
Project: 26877
Buggy source:
public static CodeBlock.Builder getLoadFromCursorMethod(String elementName,String fullElementName,TypeName elementTypeName,String columnName,boolean isModelContainerAdapter,BaseColumnAccess columnAccess){
  String method="String_Node_Str";
  if (SQLiteType.containsMethod(elementTypeName)) {
    method=SQLiteType.getMethod(elementTypeName);
  }
 else   if (columnAccess instanceof TypeConverterAccess) {
    method=SQLiteType.getMethod(((TypeConverterAccess)columnAccess).typeConverterDefinition.getDbTypeName());
  }
  CodeBlock.Builder codeBuilder=CodeBlock.builder();
  String indexName="String_Node_Str" + columnName;
  codeBuilder.addStatement("String_Node_Str",indexName,LoadFromCursorMethod.PARAM_CURSOR,columnName);
  codeBuilder.beginControlFlow("String_Node_Str",indexName,LoadFromCursorMethod.PARAM_CURSOR,indexName);
  codeBuilder.addStatement(columnAccess.setColumnAccessString(elementTypeName,elementName,fullElementName,isModelContainerAdapter,ModelUtils.getVariable(isModelContainerAdapter),CodeBlock.builder().add("String_Node_Str",LoadFromCursorMethod.PARAM_CURSOR,method,indexName).build()));
  codeBuilder.endControlFlow();
  return codeBuilder;
}

Fixed version (ground truth):
public static CodeBlock.Builder getLoadFromCursorMethod(String elementName,String fullElementName,TypeName elementTypeName,String columnName,boolean isModelContainerAdapter,BaseColumnAccess columnAccess){
  String method="String_Node_Str";
  if (SQLiteType.containsMethod(elementTypeName)) {
    method=SQLiteType.getMethod(elementTypeName);
  }
 else   if (columnAccess instanceof TypeConverterAccess) {
    method=SQLiteType.getMethod(((TypeConverterAccess)columnAccess).typeConverterDefinition.getDbTypeName());
  }
 else   if (columnAccess instanceof EnumColumnAccess) {
    method=SQLiteType.getMethod(ClassName.get(String.class));
  }
  CodeBlock.Builder codeBuilder=CodeBlock.builder();
  String indexName="String_Node_Str" + columnName;
  codeBuilder.addStatement("String_Node_Str",indexName,LoadFromCursorMethod.PARAM_CURSOR,columnName);
  codeBuilder.beginControlFlow("String_Node_Str",indexName,LoadFromCursorMethod.PARAM_CURSOR,indexName);
  codeBuilder.addStatement(columnAccess.setColumnAccessString(elementTypeName,elementName,fullElementName,isModelContainerAdapter,ModelUtils.getVariable(isModelContainerAdapter),CodeBlock.builder().add("String_Node_Str",LoadFromCursorMethod.PARAM_CURSOR,method,indexName).build()));
  codeBuilder.endControlFlow();
  return codeBuilder;
}
Program: 26878
Project: 26878
Buggy source:
@Override String getShortAccessString(TypeName fieldType,String elementName,boolean isModelContainerAdapter){
  return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getShortAccessString(fieldType,elementName,isModelContainerAdapter)).build().toString();
}

Fixed version (ground truth):
@Override String getShortAccessString(TypeName fieldType,String elementName,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    return getExistingColumnAccess().getShortAccessString(ArrayTypeName.of(TypeName.BYTE),elementName,isModelContainerAdapter);
  }
 else {
    return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getShortAccessString(fieldType,elementName,isModelContainerAdapter)).build().toString();
  }
}
Program: 26879
Project: 26879
Buggy source:
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter)).build().toString();
}

Fixed version (ground truth):
@Override String getColumnAccessString(TypeName fieldType,String elementName,String fullElementName,String variableNameString,boolean isModelContainerAdapter){
  if (isModelContainerAdapter) {
    return getExistingColumnAccess().getColumnAccessString(ArrayTypeName.of(TypeName.BYTE),elementName,fullElementName,variableNameString,isModelContainerAdapter);
  }
 else {
    return CodeBlock.builder().add("String_Node_Str",getExistingColumnAccess().getColumnAccessString(fieldType,elementName,fullElementName,variableNameString,isModelContainerAdapter)).build().toString();
  }
}
Program: 26880
Project: 26880
Buggy source:
@Override String setColumnAccessString(TypeName fieldType,String elementName,String fullElementName,boolean isModelContainerAdapter,String variableNameString,CodeBlock formattedAccess){
  CodeBlock newFormattedAccess=CodeBlock.builder().add("String_Node_Str",ClassName.get(Blob.class),formattedAccess).build();
  return getExistingColumnAccess().setColumnAccessString(fieldType,elementName,fullElementName,isModelContainerAdapter,variableNameString,newFormattedAccess);
}

Fixed version (ground truth):
@Override String setColumnAccessString(TypeName fieldType,String elementName,String fullElementName,boolean isModelContainerAdapter,String variableNameString,CodeBlock formattedAccess){
  CodeBlock newFormattedAccess=CodeBlock.builder().add("String_Node_Str",ClassName.get(Blob.class),formattedAccess).build();
  return getExistingColumnAccess().setColumnAccessString(ArrayTypeName.of(TypeName.BYTE),elementName,fullElementName,isModelContainerAdapter,variableNameString,newFormattedAccess);
}
Program: 26883
Project: 26883
Buggy source:
@Override public byte[] getBlbValue(String key){
  try {
    if (getData() != null) {
      Object value=getData().get(key);
      if (value instanceof Blob) {
        return ((Blob)value).getBlob();
      }
 else {
        return (byte[])value;
      }
    }
  }
 catch (  JSONException e) {
    FlowLog.logError(e);
    return null;
  }
}

Fixed version (ground truth):
@Override public byte[] getBlbValue(String key){
  try {
    if (getData() != null) {
      Object value=getData().get(key);
      if (value instanceof Blob) {
        return ((Blob)value).getBlob();
      }
 else {
        return (byte[])value;
      }
    }
  }
 catch (  JSONException e) {
    FlowLog.logError(e);
  }
  return null;
}
Program: 26884
Project: 26884
Buggy source:
CodeBlock getSQLiteStatementMethod(AtomicInteger index,boolean isModelContainerAdapter){
  String shortAccess=tableColumnAccess.getShortAccessString(isModelContainerAdapter,foreignKeyFieldName);
  String columnShortAccess=getShortColumnAccess(isModelContainerAdapter);
  String combined=shortAccess + (isModelContainerAdapter ? "String_Node_Str" : "String_Node_Str") + columnShortAccess;
  return DefinitionUtils.getSQLiteStatementMethod(index,columnShortAccess,combined,columnClassName,isModelContainerAdapter,simpleColumnAccess,getForeignKeyColumnVariable(isModelContainerAdapter)).build();
}

Fixed version (ground truth):
CodeBlock getSQLiteStatementMethod(AtomicInteger index,boolean isModelContainerAdapter){
  String shortAccess=tableColumnAccess.getShortAccessString(isModelContainerAdapter,foreignKeyFieldName);
  shortAccess=foreignKeyColumnDefinition.getForeignKeyReferenceAccess(isModelContainerAdapter,shortAccess);
  String columnShortAccess=getShortColumnAccess(isModelContainerAdapter);
  String combined=shortAccess + (isModelContainerAdapter ? "String_Node_Str" : "String_Node_Str") + columnShortAccess;
  return DefinitionUtils.getSQLiteStatementMethod(index,columnShortAccess,combined,columnClassName,isModelContainerAdapter,simpleColumnAccess,getForeignKeyColumnVariable(isModelContainerAdapter)).build();
}
Program: 26885
Project: 26885
Buggy source:
private String getShortColumnAccess(boolean isModelContainerAdapter){
  return isModelContainerAdapter ? modelContainerAccess.getShortAccessString(isModelContainerAdapter,foreignColumnName) : columnAccess.getShortAccessString(isModelContainerAdapter,foreignColumnName);
}

Fixed version (ground truth):
private String getShortColumnAccess(boolean isModelContainerAdapter){
  return isModelContainerAdapter ? foreignColumnName : columnAccess.getShortAccessString(isModelContainerAdapter,foreignColumnName);
}
Program: 26886
Project: 26886
Buggy source:
@Override public void onWriteDefinition(TypeSpec.Builder typeBuilder){
  typeBuilder.addField(FieldSpec.builder(ParameterizedTypeName.get(ClassName.get(Map.class),ClassName.get(String.class),ClassName.get(Class.class)),"String_Node_Str",Modifier.PRIVATE,Modifier.FINAL).initializer("String_Node_Str",ParameterizedTypeName.get(HashMap.class)).build());
  CodeBlock.Builder constructorCode=CodeBlock.builder();
  for (  ColumnDefinition columnDefinition : tableDefinition.columnDefinitions) {
    constructorCode.addStatement("String_Node_Str","String_Node_Str",columnDefinition.columnName,columnDefinition.elementTypeName);
  }
  typeBuilder.addMethod(MethodSpec.constructorBuilder().addCode(constructorCode.build()).addModifiers(Modifier.PUBLIC).build());
  typeBuilder.addMethod(MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC,Modifier.FINAL).addParameter(ClassName.get(String.class),"String_Node_Str").addStatement("String_Node_Str","String_Node_Str","String_Node_Str").returns(ClassName.get(Class.class)).build());
  InternalAdapterHelper.writeGetModelClass(typeBuilder,elementClassName);
  InternalAdapterHelper.writeGetTableName(typeBuilder,tableDefinition.tableName);
  for (  MethodDefinition method : methods) {
    MethodSpec methodSpec=method.getMethodSpec();
    if (methodSpec != null) {
      typeBuilder.addMethod(methodSpec);
    }
  }
}

Fixed version (ground truth):
@Override public void onWriteDefinition(TypeSpec.Builder typeBuilder){
  typeBuilder.addField(FieldSpec.builder(ParameterizedTypeName.get(ClassName.get(Map.class),ClassName.get(String.class),ClassName.get(Class.class)),"String_Node_Str",Modifier.PRIVATE,Modifier.FINAL).initializer("String_Node_Str",ParameterizedTypeName.get(HashMap.class)).build());
  CodeBlock.Builder constructorCode=CodeBlock.builder();
  for (  ColumnDefinition columnDefinition : tableDefinition.columnDefinitions) {
    constructorCode.addStatement("String_Node_Str","String_Node_Str",columnDefinition.columnName,columnDefinition.erasedTypeName);
  }
  typeBuilder.addMethod(MethodSpec.constructorBuilder().addCode(constructorCode.build()).addModifiers(Modifier.PUBLIC).build());
  typeBuilder.addMethod(MethodSpec.methodBuilder("String_Node_Str").addAnnotation(Override.class).addModifiers(Modifier.PUBLIC,Modifier.FINAL).addParameter(ClassName.get(String.class),"String_Node_Str").addStatement("String_Node_Str","String_Node_Str","String_Node_Str").returns(ClassName.get(Class.class)).build());
  InternalAdapterHelper.writeGetModelClass(typeBuilder,elementClassName);
  InternalAdapterHelper.writeGetTableName(typeBuilder,tableDefinition.tableName);
  for (  MethodDefinition method : methods) {
    MethodSpec methodSpec=method.getMethodSpec();
    if (methodSpec != null) {
      typeBuilder.addMethod(methodSpec);
    }
  }
}