@Override public void visitValField(final int offsetInCompiledBlock, final JBBPNamedFieldInfo nameFieldInfo, final JBBPIntegerValueEvaluator expression) { final String fieldName = prepFldName(nameFieldInfo.getFieldName()); FieldType type = FieldType.VAL; registerNamedField(nameFieldInfo, type); final String fieldModifier = makeModifier(nameFieldInfo); processSkipRemainingFlag(); final String textFieldType = type.asJavaSingleFieldType(); if (this.builder.generateFields) { getCurrentStruct().getFields().printf("%s %s %s;%n", fieldModifier, textFieldType, fieldName); } final String valIn = evaluatorToString(NAME_INPUT_STREAM, offsetInCompiledBlock, expression, this.flagSet, false); final String valOut = evaluatorToString(NAME_OUTPUT_STREAM, offsetInCompiledBlock, expression, this.flagSet, false); getCurrentStruct().getReadFunc().println(String.format("this.%s = %s;", fieldName, valIn)); getCurrentStruct().getWriteFunc().println(String.format("this.%s = %s;", fieldName, valOut)); if (this.builder.addGettersSetters) { registerGetterSetter(textFieldType, fieldName, true); } }
final String fieldName = nullableNameFieldInfo == null ? makeAnonymousFieldName() : prepFldName(nullableNameFieldInfo.getFieldName()); final String fieldModifier = makeModifier(nullableNameFieldInfo); this.specialSection.printf("private static final JBBPNamedFieldInfo %s = %s;%n", specialFieldName_fieldNameInfo, "new JBBPNamedFieldInfo(\"" + prepFldName(nullableNameFieldInfo.getFieldName()) + "\",\"" + nullableNameFieldInfo.getFieldPath() + "\"," + nullableNameFieldInfo.getFieldOffsetInCompiledBlock() + ")" );
@Override public void visitStructureStart(final int offsetInCompiledBlock, final JBBPNamedFieldInfo nullableNameFieldInfo, final JBBPIntegerValueEvaluator nullableArraySize) { final String structName = (nullableNameFieldInfo == null ? makeAnonymousStructName() : prepFldName(nullableNameFieldInfo.getFieldName())).toLowerCase(Locale.ENGLISH); final String structBaseTypeName = structName.toUpperCase(Locale.ENGLISH); final String arraySizeIn = nullableArraySize == null ? null : evaluatorToString(NAME_INPUT_STREAM, offsetInCompiledBlock, nullableArraySize, this.flagSet, true);
final String fieldName = nullableNameFieldInfo == null ? makeAnonymousFieldName() : prepFldName(nullableNameFieldInfo.getFieldName()); final String fieldModifier = makeModifier(nullableNameFieldInfo); this.specialSection.printf("private static final JBBPNamedFieldInfo %s = %s;%n", specialFieldName_fieldNameInfo, "new JBBPNamedFieldInfo(\"" + prepFldName(nullableNameFieldInfo.getFieldName()) + "\",\"" + nullableNameFieldInfo.getFieldPath() + "\"," + nullableNameFieldInfo.getFieldOffsetInCompiledBlock() + ")" );
@Override public void visitBitField(final int offsetInCompiledBlock, final JBBPNamedFieldInfo nullableNameFieldInfo, final JBBPIntegerValueEvaluator notNullFieldSize, final JBBPIntegerValueEvaluator nullableArraySize) { final String fieldName = nullableNameFieldInfo == null ? makeAnonymousFieldName() : prepFldName(nullableNameFieldInfo.getFieldName());
@Override public void visitPrimitiveField(final int offsetInCompiledBlock, final int primitiveType, final JBBPNamedFieldInfo nullableNameFieldInfo, final JBBPByteOrder byteOrder, final boolean readWholeStreamAsArray, final boolean altFieldType, final JBBPIntegerValueEvaluator nullableArraySize) { final String fieldName = nullableNameFieldInfo == null ? makeAnonymousFieldName() : prepFldName(nullableNameFieldInfo.getFieldName()); FieldType type = FieldType.findForCode(primitiveType);