public void onBeginGroup(final Token token, final int groupIndex, final int numInGroup) { namedScope.push(token.name() + "."); }
public void onBeginMessage(final Token token) { namedScope.push(token.name() + "."); }
public void onGroupHeader(final Token token, final int numInGroup) { printScope(); out.append(token.name()) .append(" Group Header : numInGroup=") .append(Integer.toString(numInGroup)) .println(); }
public void onGroupHeader(final Token token, final int numInGroup) { property(token.name()); output.append("[\n"); }
private int captureHeader(final List<Token> tokens) { final List<Token> headerTokens = new ArrayList<>(); int index = 0; Token token = tokens.get(index); final String headerName = token.name(); headerTokens.add(token); do { token = tokens.get(++index); headerTokens.add(token); } while (Signal.END_COMPOSITE != token.signal() || !headerName.equals(token.name())); irHeader = headerTokens; return index; }
public void onEncoding( final Token fieldToken, final DirectBuffer buffer, final int index, final Token typeToken, final int actingVersion) { final CharSequence value = readEncodingAsString(buffer, index, typeToken, actingVersion); printScope(); out.append(compositeLevel > 0 ? typeToken.name() : fieldToken.name()) .append('=') .append(value) .println(); }
public static int findEndSignal( final List<Token> tokens, final int startIndex, final Signal signal, final String name) { int result = tokens.size() - 1; for (int i = startIndex, endIndex = tokens.size() - 1; i < endIndex; i++) { final Token token = tokens.get(i); if (signal == token.signal() && name.equals(token.name())) { result = i; break; } } return result; }
private static void generateFieldIdMethod(final StringBuilder sb, final Token token, final String indent) { sb.append(String.format( "\n" + indent + " public static int %sId()\n" + indent + " {\n" + indent + " return %d;\n" + indent + " }\n", formatPropertyName(token.name()), token.id())); }
private static void generateFieldSinceVersionMethod(final StringBuilder sb, final Token token, final String indent) { sb.append(String.format( "\n" + indent + " public static int %sSinceVersion()\n" + indent + " {\n" + indent + " return %d;\n" + indent + " }\n", formatPropertyName(token.name()), token.version())); }
private CharSequence generateEnumValues(final List<Token> tokens, final Token encodingToken) { final StringBuilder sb = new StringBuilder(); final Encoding encoding = encodingToken.encoding(); for (final Token token : tokens) { sb.append(INDENT).append(INDENT).append(token.name()).append(" = ") .append(token.encoding().constValue()).append(",\n"); } final PrimitiveValue nullVal = encoding.applicableNullValue(); sb.append(INDENT).append(INDENT).append("NULL_VALUE = ").append(nullVal).append("\n"); return sb; }
private void generateFieldIdMethod(final StringBuilder sb, final Token token, final String indent) { sb.append(String.format("\n" + indent + "public const int %sId = %d;\n", CSharpUtil.formatPropertyName(token.name()), token.id())); generateSinceActingDeprecated(sb, indent, CSharpUtil.formatPropertyName(token.name()), token); }
private static Token findPrimitiveTokenByTokenName(final List<Token> tokens, final String targetName) { for (final Token token : tokens) { if (targetName.equalsIgnoreCase(token.name()) && token.encoding() != null && token.encoding().primitiveType() != null) { return token; } } throw new IllegalStateException(format("%s not specified for group", targetName)); }
public static List<NamedToken> gatherNamedNonConstantFieldTokens(final List<Token> fields) { final List<NamedToken> namedTokens = new ArrayList<>(); forEachField(fields, (f, t) -> { if (!f.isConstantEncoding()) { namedTokens.add(new NamedToken(f.name(), t)); } }); return namedTokens; } }
public static SplitCompositeTokens splitInnerTokens(final List<Token> tokens) { final List<Token> constantTokens = new ArrayList<>(); final List<NamedToken> namedNonConstantTokens = new ArrayList<>(); for (int i = 1, end = tokens.size() - 1; i < end; ) { final Token encodingToken = tokens.get(i); if (encodingToken.isConstantEncoding()) { constantTokens.add(encodingToken); } else { namedNonConstantTokens.add(new NamedToken(encodingToken.name(), encodingToken)); } i += encodingToken.componentTokenCount(); } return new SplitCompositeTokens(constantTokens, namedNonConstantTokens); } }
private CharSequence generateEnumValues(final List<Token> tokens, final Token encodingToken) { final StringBuilder sb = new StringBuilder(); final Encoding encoding = encodingToken.encoding(); sb.append( " enum Value \n" + " {\n"); for (final Token token : tokens) { final CharSequence constVal = generateLiteral( token.encoding().primitiveType(), token.encoding().constValue().toString()); sb.append(" ").append(token.name()).append(" = ").append(constVal).append(",\n"); } sb.append(String.format( " NULL_VALUE = %1$s", generateLiteral(encoding.primitiveType(), encoding.applicableNullValue().toString()))); sb.append("\n };\n\n"); return sb; }
private static void generateMessageEncoder( final OutputManager outputManager, final MessageComponents components, final List<GroupTreeNode> groupTree, final Optional<FieldsRepresentationSummary> fieldsRepresentation, final int headerSize) throws IOException { final Token msgToken = components.messageToken; final String messageTypeName = formatTypeName(msgToken.name()); final RustCodecType codecType = RustCodecType.Encoder; String topType = codecType.generateDoneCoderType(outputManager, messageTypeName); topType = generateTopVarDataCoders(messageTypeName, components.varData, outputManager, topType, codecType); topType = generateGroupsCoders(groupTree, outputManager, topType, codecType); topType = generateFixedFieldCoder(messageTypeName, outputManager, topType, fieldsRepresentation, codecType); topType = codecType.generateMessageHeaderCoder(messageTypeName, outputManager, topType, headerSize); generateEntryPoint(messageTypeName, outputManager, topType, codecType); }
private static void generateMessageDecoder( final OutputManager outputManager, final MessageComponents components, final List<GroupTreeNode> groupTree, final Optional<FieldsRepresentationSummary> fieldsRepresentation, final int headerSize) throws IOException { final Token msgToken = components.messageToken; final String messageTypeName = formatTypeName(msgToken.name()); final RustCodecType codecType = RustCodecType.Decoder; String topType = codecType.generateDoneCoderType(outputManager, messageTypeName); topType = generateTopVarDataCoders(messageTypeName, components.varData, outputManager, topType, codecType); topType = generateGroupsCoders(groupTree, outputManager, topType, codecType); topType = generateFixedFieldCoder(messageTypeName, outputManager, topType, fieldsRepresentation, codecType); topType = codecType.generateMessageHeaderCoder(messageTypeName, outputManager, topType, headerSize); generateEntryPoint(messageTypeName, outputManager, topType, codecType); }