Skip to content

Commit 21f212e

Browse files
committed
[Java] Added presence attribute to the MetaAttributes in generated codecs. Issue #483.
1 parent 0ebddf8 commit 21f212e

File tree

7 files changed

+65
-5
lines changed

7 files changed

+65
-5
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,8 @@ private void generateMetaAttributeEnum() throws IOException
14181418
"{\n" +
14191419
" EPOCH,\n" +
14201420
" TIME_UNIT,\n" +
1421-
" SEMANTIC_TYPE\n" +
1421+
" SEMANTIC_TYPE,\n" +
1422+
" PRESENCE\n" +
14221423
"}\n",
14231424
ir.applicableNamespace()));
14241425
}
@@ -2318,13 +2319,15 @@ private static void generateFieldMetaAttributeMethod(final StringBuilder sb, fin
23182319
indent + " case EPOCH: return \"%s\";\n" +
23192320
indent + " case TIME_UNIT: return \"%s\";\n" +
23202321
indent + " case SEMANTIC_TYPE: return \"%s\";\n" +
2322+
indent + " case PRESENCE: return \"%s\";\n" +
23212323
indent + " }\n\n" +
23222324
indent + " return \"\";\n" +
23232325
indent + " }\n",
23242326
formatPropertyName(token.name()),
23252327
epoch,
23262328
timeUnit,
2327-
semanticType));
2329+
semanticType,
2330+
encoding.presence().toString().toLowerCase()));
23282331
}
23292332

23302333
private CharSequence generateEnumDecoder(

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/generated/FrameCodecDecoder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public static String irIdMetaAttribute(final MetaAttribute metaAttribute)
109109
case EPOCH: return "unix";
110110
case TIME_UNIT: return "nanosecond";
111111
case SEMANTIC_TYPE: return "";
112+
case PRESENCE: return "required";
112113
}
113114

114115
return "";
@@ -162,6 +163,7 @@ public static String irVersionMetaAttribute(final MetaAttribute metaAttribute)
162163
case EPOCH: return "unix";
163164
case TIME_UNIT: return "nanosecond";
164165
case SEMANTIC_TYPE: return "";
166+
case PRESENCE: return "required";
165167
}
166168

167169
return "";
@@ -215,6 +217,7 @@ public static String schemaVersionMetaAttribute(final MetaAttribute metaAttribut
215217
case EPOCH: return "unix";
216218
case TIME_UNIT: return "nanosecond";
217219
case SEMANTIC_TYPE: return "";
220+
case PRESENCE: return "required";
218221
}
219222

220223
return "";
@@ -263,6 +266,7 @@ public static String packageNameMetaAttribute(final MetaAttribute metaAttribute)
263266
case EPOCH: return "unix";
264267
case TIME_UNIT: return "nanosecond";
265268
case SEMANTIC_TYPE: return "";
269+
case PRESENCE: return "required";
266270
}
267271

268272
return "";
@@ -347,6 +351,7 @@ public static String namespaceNameMetaAttribute(final MetaAttribute metaAttribut
347351
case EPOCH: return "unix";
348352
case TIME_UNIT: return "nanosecond";
349353
case SEMANTIC_TYPE: return "";
354+
case PRESENCE: return "required";
350355
}
351356

352357
return "";
@@ -431,6 +436,7 @@ public static String semanticVersionMetaAttribute(final MetaAttribute metaAttrib
431436
case EPOCH: return "unix";
432437
case TIME_UNIT: return "nanosecond";
433438
case SEMANTIC_TYPE: return "";
439+
case PRESENCE: return "required";
434440
}
435441

436442
return "";

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/generated/FrameCodecEncoder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ public static String packageNameMetaAttribute(final MetaAttribute metaAttribute)
203203
case EPOCH: return "unix";
204204
case TIME_UNIT: return "nanosecond";
205205
case SEMANTIC_TYPE: return "";
206+
case PRESENCE: return "required";
206207
}
207208

208209
return "";
@@ -289,6 +290,7 @@ public static String namespaceNameMetaAttribute(final MetaAttribute metaAttribut
289290
case EPOCH: return "unix";
290291
case TIME_UNIT: return "nanosecond";
291292
case SEMANTIC_TYPE: return "";
293+
case PRESENCE: return "required";
292294
}
293295

294296
return "";
@@ -375,6 +377,7 @@ public static String semanticVersionMetaAttribute(final MetaAttribute metaAttrib
375377
case EPOCH: return "unix";
376378
case TIME_UNIT: return "nanosecond";
377379
case SEMANTIC_TYPE: return "";
380+
case PRESENCE: return "required";
378381
}
379382

380383
return "";

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/generated/MetaAttribute.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ public enum MetaAttribute
66
{
77
EPOCH,
88
TIME_UNIT,
9-
SEMANTIC_TYPE
9+
SEMANTIC_TYPE,
10+
PRESENCE
1011
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/generated/TokenCodecDecoder.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public static String tokenOffsetMetaAttribute(final MetaAttribute metaAttribute)
109109
case EPOCH: return "unix";
110110
case TIME_UNIT: return "nanosecond";
111111
case SEMANTIC_TYPE: return "";
112+
case PRESENCE: return "required";
112113
}
113114

114115
return "";
@@ -162,6 +163,7 @@ public static String tokenSizeMetaAttribute(final MetaAttribute metaAttribute)
162163
case EPOCH: return "unix";
163164
case TIME_UNIT: return "nanosecond";
164165
case SEMANTIC_TYPE: return "";
166+
case PRESENCE: return "required";
165167
}
166168

167169
return "";
@@ -215,6 +217,7 @@ public static String fieldIdMetaAttribute(final MetaAttribute metaAttribute)
215217
case EPOCH: return "unix";
216218
case TIME_UNIT: return "nanosecond";
217219
case SEMANTIC_TYPE: return "";
220+
case PRESENCE: return "required";
218221
}
219222

220223
return "";
@@ -268,6 +271,7 @@ public static String tokenVersionMetaAttribute(final MetaAttribute metaAttribute
268271
case EPOCH: return "unix";
269272
case TIME_UNIT: return "nanosecond";
270273
case SEMANTIC_TYPE: return "";
274+
case PRESENCE: return "required";
271275
}
272276

273277
return "";
@@ -321,6 +325,7 @@ public static String componentTokenCountMetaAttribute(final MetaAttribute metaAt
321325
case EPOCH: return "unix";
322326
case TIME_UNIT: return "nanosecond";
323327
case SEMANTIC_TYPE: return "";
328+
case PRESENCE: return "required";
324329
}
325330

326331
return "";
@@ -374,6 +379,7 @@ public static String signalMetaAttribute(final MetaAttribute metaAttribute)
374379
case EPOCH: return "unix";
375380
case TIME_UNIT: return "nanosecond";
376381
case SEMANTIC_TYPE: return "";
382+
case PRESENCE: return "required";
377383
}
378384

379385
return "";
@@ -412,6 +418,7 @@ public static String primitiveTypeMetaAttribute(final MetaAttribute metaAttribut
412418
case EPOCH: return "unix";
413419
case TIME_UNIT: return "nanosecond";
414420
case SEMANTIC_TYPE: return "";
421+
case PRESENCE: return "required";
415422
}
416423

417424
return "";
@@ -450,6 +457,7 @@ public static String byteOrderMetaAttribute(final MetaAttribute metaAttribute)
450457
case EPOCH: return "unix";
451458
case TIME_UNIT: return "nanosecond";
452459
case SEMANTIC_TYPE: return "";
460+
case PRESENCE: return "required";
453461
}
454462

455463
return "";
@@ -488,6 +496,7 @@ public static String presenceMetaAttribute(final MetaAttribute metaAttribute)
488496
case EPOCH: return "unix";
489497
case TIME_UNIT: return "nanosecond";
490498
case SEMANTIC_TYPE: return "";
499+
case PRESENCE: return "required";
491500
}
492501

493502
return "";
@@ -526,6 +535,7 @@ public static String deprecatedMetaAttribute(final MetaAttribute metaAttribute)
526535
case EPOCH: return "unix";
527536
case TIME_UNIT: return "nanosecond";
528537
case SEMANTIC_TYPE: return "";
538+
case PRESENCE: return "optional";
529539
}
530540

531541
return "";
@@ -574,6 +584,7 @@ public static String nameMetaAttribute(final MetaAttribute metaAttribute)
574584
case EPOCH: return "unix";
575585
case TIME_UNIT: return "nanosecond";
576586
case SEMANTIC_TYPE: return "";
587+
case PRESENCE: return "required";
577588
}
578589

579590
return "";
@@ -658,6 +669,7 @@ public static String constValueMetaAttribute(final MetaAttribute metaAttribute)
658669
case EPOCH: return "unix";
659670
case TIME_UNIT: return "nanosecond";
660671
case SEMANTIC_TYPE: return "";
672+
case PRESENCE: return "required";
661673
}
662674

663675
return "";
@@ -742,6 +754,7 @@ public static String minValueMetaAttribute(final MetaAttribute metaAttribute)
742754
case EPOCH: return "unix";
743755
case TIME_UNIT: return "nanosecond";
744756
case SEMANTIC_TYPE: return "";
757+
case PRESENCE: return "required";
745758
}
746759

747760
return "";
@@ -826,6 +839,7 @@ public static String maxValueMetaAttribute(final MetaAttribute metaAttribute)
826839
case EPOCH: return "unix";
827840
case TIME_UNIT: return "nanosecond";
828841
case SEMANTIC_TYPE: return "";
842+
case PRESENCE: return "required";
829843
}
830844

831845
return "";
@@ -910,6 +924,7 @@ public static String nullValueMetaAttribute(final MetaAttribute metaAttribute)
910924
case EPOCH: return "unix";
911925
case TIME_UNIT: return "nanosecond";
912926
case SEMANTIC_TYPE: return "";
927+
case PRESENCE: return "required";
913928
}
914929

915930
return "";
@@ -994,6 +1009,7 @@ public static String characterEncodingMetaAttribute(final MetaAttribute metaAttr
9941009
case EPOCH: return "unix";
9951010
case TIME_UNIT: return "nanosecond";
9961011
case SEMANTIC_TYPE: return "";
1012+
case PRESENCE: return "required";
9971013
}
9981014

9991015
return "";
@@ -1078,6 +1094,7 @@ public static String epochMetaAttribute(final MetaAttribute metaAttribute)
10781094
case EPOCH: return "unix";
10791095
case TIME_UNIT: return "nanosecond";
10801096
case SEMANTIC_TYPE: return "";
1097+
case PRESENCE: return "required";
10811098
}
10821099

10831100
return "";
@@ -1162,6 +1179,7 @@ public static String timeUnitMetaAttribute(final MetaAttribute metaAttribute)
11621179
case EPOCH: return "unix";
11631180
case TIME_UNIT: return "nanosecond";
11641181
case SEMANTIC_TYPE: return "";
1182+
case PRESENCE: return "required";
11651183
}
11661184

11671185
return "";
@@ -1246,6 +1264,7 @@ public static String semanticTypeMetaAttribute(final MetaAttribute metaAttribute
12461264
case EPOCH: return "unix";
12471265
case TIME_UNIT: return "nanosecond";
12481266
case SEMANTIC_TYPE: return "";
1267+
case PRESENCE: return "required";
12491268
}
12501269

12511270
return "";
@@ -1330,6 +1349,7 @@ public static String descriptionMetaAttribute(final MetaAttribute metaAttribute)
13301349
case EPOCH: return "unix";
13311350
case TIME_UNIT: return "nanosecond";
13321351
case SEMANTIC_TYPE: return "";
1352+
case PRESENCE: return "required";
13331353
}
13341354

13351355
return "";
@@ -1414,6 +1434,7 @@ public static String referencedNameMetaAttribute(final MetaAttribute metaAttribu
14141434
case EPOCH: return "unix";
14151435
case TIME_UNIT: return "nanosecond";
14161436
case SEMANTIC_TYPE: return "";
1437+
case PRESENCE: return "required";
14171438
}
14181439

14191440
return "";
@@ -1550,7 +1571,7 @@ public StringBuilder appendTo(final StringBuilder builder)
15501571
builder.append("presence=");
15511572
builder.append(presence());
15521573
builder.append('|');
1553-
//Token{signal=BEGIN_FIELD, name='deprecated', referencedName='null', description='null', id=30, version=0, deprecated=0, encodedLength=0, offset=24, componentTokenCount=3, encoding=Encoding{presence=REQUIRED, primitiveType=null, byteOrder=LITTLE_ENDIAN, minValue=null, maxValue=null, nullValue=null, constValue=null, characterEncoding='null', epoch='unix', timeUnit=nanosecond, semanticType='null'}}
1574+
//Token{signal=BEGIN_FIELD, name='deprecated', referencedName='null', description='null', id=30, version=0, deprecated=0, encodedLength=0, offset=24, componentTokenCount=3, encoding=Encoding{presence=OPTIONAL, primitiveType=null, byteOrder=LITTLE_ENDIAN, minValue=null, maxValue=null, nullValue=null, constValue=null, characterEncoding='null', epoch='unix', timeUnit=nanosecond, semanticType='null'}}
15541575
//Token{signal=ENCODING, name='deprecatedVersionType', referencedName='null', description='null', id=-1, version=0, deprecated=0, encodedLength=4, offset=24, componentTokenCount=1, encoding=Encoding{presence=OPTIONAL, primitiveType=INT32, byteOrder=LITTLE_ENDIAN, minValue=null, maxValue=null, nullValue=0, constValue=null, characterEncoding='null', epoch='unix', timeUnit=nanosecond, semanticType='null'}}
15551576
builder.append("deprecated=");
15561577
builder.append(deprecated());

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/generated/TokenCodecEncoder.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ public static String nameMetaAttribute(final MetaAttribute metaAttribute)
363363
case EPOCH: return "unix";
364364
case TIME_UNIT: return "nanosecond";
365365
case SEMANTIC_TYPE: return "";
366+
case PRESENCE: return "required";
366367
}
367368

368369
return "";
@@ -449,6 +450,7 @@ public static String constValueMetaAttribute(final MetaAttribute metaAttribute)
449450
case EPOCH: return "unix";
450451
case TIME_UNIT: return "nanosecond";
451452
case SEMANTIC_TYPE: return "";
453+
case PRESENCE: return "required";
452454
}
453455

454456
return "";
@@ -535,6 +537,7 @@ public static String minValueMetaAttribute(final MetaAttribute metaAttribute)
535537
case EPOCH: return "unix";
536538
case TIME_UNIT: return "nanosecond";
537539
case SEMANTIC_TYPE: return "";
540+
case PRESENCE: return "required";
538541
}
539542

540543
return "";
@@ -621,6 +624,7 @@ public static String maxValueMetaAttribute(final MetaAttribute metaAttribute)
621624
case EPOCH: return "unix";
622625
case TIME_UNIT: return "nanosecond";
623626
case SEMANTIC_TYPE: return "";
627+
case PRESENCE: return "required";
624628
}
625629

626630
return "";
@@ -707,6 +711,7 @@ public static String nullValueMetaAttribute(final MetaAttribute metaAttribute)
707711
case EPOCH: return "unix";
708712
case TIME_UNIT: return "nanosecond";
709713
case SEMANTIC_TYPE: return "";
714+
case PRESENCE: return "required";
710715
}
711716

712717
return "";
@@ -793,6 +798,7 @@ public static String characterEncodingMetaAttribute(final MetaAttribute metaAttr
793798
case EPOCH: return "unix";
794799
case TIME_UNIT: return "nanosecond";
795800
case SEMANTIC_TYPE: return "";
801+
case PRESENCE: return "required";
796802
}
797803

798804
return "";
@@ -879,6 +885,7 @@ public static String epochMetaAttribute(final MetaAttribute metaAttribute)
879885
case EPOCH: return "unix";
880886
case TIME_UNIT: return "nanosecond";
881887
case SEMANTIC_TYPE: return "";
888+
case PRESENCE: return "required";
882889
}
883890

884891
return "";
@@ -965,6 +972,7 @@ public static String timeUnitMetaAttribute(final MetaAttribute metaAttribute)
965972
case EPOCH: return "unix";
966973
case TIME_UNIT: return "nanosecond";
967974
case SEMANTIC_TYPE: return "";
975+
case PRESENCE: return "required";
968976
}
969977

970978
return "";
@@ -1051,6 +1059,7 @@ public static String semanticTypeMetaAttribute(final MetaAttribute metaAttribute
10511059
case EPOCH: return "unix";
10521060
case TIME_UNIT: return "nanosecond";
10531061
case SEMANTIC_TYPE: return "";
1062+
case PRESENCE: return "required";
10541063
}
10551064

10561065
return "";
@@ -1137,6 +1146,7 @@ public static String descriptionMetaAttribute(final MetaAttribute metaAttribute)
11371146
case EPOCH: return "unix";
11381147
case TIME_UNIT: return "nanosecond";
11391148
case SEMANTIC_TYPE: return "";
1149+
case PRESENCE: return "required";
11401150
}
11411151

11421152
return "";
@@ -1223,6 +1233,7 @@ public static String referencedNameMetaAttribute(final MetaAttribute metaAttribu
12231233
case EPOCH: return "unix";
12241234
case TIME_UNIT: return "nanosecond";
12251235
case SEMANTIC_TYPE: return "";
1236+
case PRESENCE: return "required";
12261237
}
12271238

12281239
return "";

0 commit comments

Comments
 (0)