2020import com .netflix .hollow .core .HollowDataset ;
2121import com .netflix .hollow .core .schema .HollowObjectSchema ;
2222import com .netflix .hollow .core .schema .HollowObjectSchema .FieldType ;
23+
24+ import java .util .ArrayList ;
25+ import java .util .List ;
2326import java .util .Set ;
2427
2528import static com .netflix .hollow .api .codegen .HollowCodeGenerationUtils .includeType ;
@@ -60,17 +63,18 @@ public String generate() {
6063 builder .append ("\n @SuppressWarnings(\" all\" )\n " );
6164 builder .append ("public class " + schema .getName () + "PerfAPI extends HollowObjectTypePerfAPI {\n \n " );
6265
66+ List <Integer > fieldPositions = new ArrayList <>(schema .numFields ());
67+
6368 builder .append (" public static final String fieldNames[] = { " );
6469 int addedFields = 0 ;
6570 for (int i =0 ;i <schema .numFields ();i ++) {
66- if (dataset != null && schema .getFieldType (i ) == HollowObjectSchema .FieldType .REFERENCE &&
67- !includeType (schema .getReferencedType (i ), dataset )) {
71+ if (dataset != null && schema .getFieldType (i ) == HollowObjectSchema .FieldType .REFERENCE && !includeType (schema .getReferencedType (i ), dataset )) {
6872 continue ;
6973 }
70-
7174 if (addedFields > 0 ) {
7275 builder .append (", " );
7376 }
77+ fieldPositions .add (i );
7478 builder .append ("\" " ).append (schema .getFieldName (i )).append ("\" " );
7579 addedFields ++;
7680 }
@@ -81,14 +85,11 @@ public String generate() {
8185 builder .append (" super(dataAccess, typeName, api, fieldNames);\n " );
8286 builder .append (" }\n \n " );
8387
84- for (int i =0 ;i <schema .numFields ();i ++) {
85- if (dataset != null && schema .getFieldType (i ) == HollowObjectSchema .FieldType .REFERENCE && !includeType (schema .getReferencedType (i ), dataset )) {
86- continue ;
87- }
88-
89- FieldType fieldType = schema .getFieldType (i );
90- String fieldName = schema .getFieldName (i );
91- String referencedType = schema .getReferencedType (i );
88+ for (int i =0 ;i <fieldPositions .size ();i ++) {
89+ int position = fieldPositions .get (i );
90+ String fieldName = schema .getFieldName (position );
91+ FieldType fieldType = schema .getFieldType (position );
92+ String referencedType = schema .getReferencedType (position );
9293 appendFieldMethod (builder , fieldType , fieldName , i , referencedType );
9394 }
9495
0 commit comments