- // experimenter length / definition ?
- length += entries.size() * STRUCTURE_HEADER_LENGTH;
- padding = paddingNeeded(length);
- output.writeShort(length);
-
- for (MatchEntries entry : entries) {
- MatchEntrySerializerKey<?, ?> key = new MatchEntrySerializerKey<>(
- EncodeConstants.OF13_VERSION_ID, entry.getOxmClass(), entry.getOxmMatchField());
- if (entry.getOxmClass().equals(ExperimenterClass.class)) {
- key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class)
- .getExperimenter().getValue());
- } else {
- key.setExperimenterId(null);
- }
- HeaderSerializer<MatchEntries> entrySerializer = registry.getSerializer(key);
- entrySerializer.serializeHeader(entry, output);
- }
- } else {
- padding = paddingNeeded(length);
- output.writeShort(length);
+ TypeKeyMaker<MatchEntry> keyMaker = TypeKeyMakerFactory
+ .createMatchEntriesKeyMaker(EncodeConstants.OF13_VERSION_ID);
+ ListSerializer.serializeHeaderList(entries, keyMaker, registry, output);