Class AbstractMarshallerCodeGenerator
java.lang.Object
org.infinispan.protostream.annotations.impl.AbstractMarshallerCodeGenerator
- Direct Known Subclasses:
MarshallerSourceCodeGenerator
- Since:
- 4.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprivate final booleanDo nullable fields that do not have a user defined default value get a default type specific value if missing instead of just null? This is currently implemented just for arrays/collections.private final Stringprivate static final Stringprivate final XTypeFactoryprivate final boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractMarshallerCodeGenerator(XTypeFactory typeFactory, String protobufSchemaPackage) -
Method Summary
Modifier and TypeMethodDescriptionprivate StringBoxes a given value.private XClassReturn the corresponding 'boxed' Class given a Class, ornullif no type change is required.private Stringconvert(String v, ProtoFieldMetadata fieldMetadata) Cast the given value if necessary.private StringcreateGetPropExpr(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, String obj) private StringcreateSetPropExpr(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, String obj, String value) protected StringgenerateEnumDecodeMethodBody(ProtoEnumTypeMetadata enumTypeMetadata) Signature of generated method is:public java.lang.Enum decode(int $1)protected StringgenerateEnumEncodeMethodBody(ProtoEnumTypeMetadata enumTypeMetadata) Signature of generated method is:public int encode(java.lang.Enum $1)private voidgenerateFieldReadMethod(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, IndentWriter iw, boolean noFactory, Map<String, Integer> trackedFields, String getUnknownFieldSetFieldStatement, String setUnknownFieldSetFieldStatement) private StringgenerateMapFieldReadMethod(ProtoFieldMetadata fieldMetadata, IndentWriter iw, boolean readNext) abstract voidgenerateMarshaller(SerializationContext serCtx, ProtoTypeMetadata ptm) protected voidgenerateReadMethodBody(IndentWriter iw, ProtoMessageTypeMetadata messageTypeMetadata) Signature of generated method is:public java.lang.Object read(org.infinispan.protostream.ProtoStreamMarshaller.ReadContext $1, java.lang.Object $2) throws java.io.IOExceptionprotected voidgenerateWriteMethodBody(IndentWriter iw, ProtoMessageTypeMetadata messageTypeMetadata) Signature of generated method is:public void write(org.infinispan.protostream.ProtoStreamMarshaller.WriteContext $1, java.lang.Object $2) throws java.io.IOExceptionprivate voidgenSetField(IndentWriter iw, ProtoFieldMetadata fieldMetadata, Map<String, Integer> trackedFields, ProtoMessageTypeMetadata messageTypeMetadata) private StringinitMarshallerDelegateField(IndentWriter iw, ProtoFieldMetadata fieldMetadata) private Stringprivate StringMake a collection local variable name for a repeatable/array field.private StringMake local variable name for a field.private static StringmakeFieldTag(int fieldNumber, WireType wireType) private StringmakeFieldWasSet(ProtoFieldMetadata field, Map<String, Integer> trackedFields) Make statement to mark a field as set.protected StringMake field name for caching a marshaller delegate for a related message.protected StringmakeQualifiedTypeName(String fullName) Returns the protobuf qualified type name, including the package name.private StringmakeStreamIOMethodName(ProtoFieldMetadata fieldMetadata, boolean isWrite) private StringmakeTestFieldWasNotSet(Collection<ProtoFieldMetadata> fields, Map<String, Integer> trackedFields) Make boolean expression to test that at least one fields from a given collection of fields was not set.private StringmakeTestFieldWasNotSet(ProtoFieldMetadata field, Map<String, Integer> trackedFields) Make boolean expression to test that a field was not set.private StringtoJavaLiteral(Object value, XClass javaType) Converts a givenvalueinstance to a Java language literal of typejavaType.private Stringprivate voidwriteFieldValue(ProtoFieldMetadata fieldMetadata, IndentWriter iw, String v) private voidwriteFieldValue(ProtoFieldMetadata fieldMetadata, IndentWriter iw, String v, String out)
-
Field Details
-
PROTOSTREAM_PACKAGE
-
ADAPTER_FIELD_NAME
- See Also:
-
typeFactory
-
noDefaults
private final boolean noDefaultsDo nullable fields that do not have a user defined default value get a default type specific value if missing instead of just null? This is currently implemented just for arrays/collections. TODO Maybe numbers should also receive a 0 default value and booleans a false value. But what about strings? Empty string does not sound like a good fit. See the spec we do not fully implement here: Optional- See Also:
-
protobufSchemaPackage
-
useGenerics
private final boolean useGenerics- See Also:
-
-
Constructor Details
-
AbstractMarshallerCodeGenerator
-
-
Method Details
-
generateEnumDecodeMethodBody
Signature of generated method is:public java.lang.Enum decode(int $1) -
generateEnumEncodeMethodBody
Signature of generated method is:public int encode(java.lang.Enum $1) -
makeQualifiedTypeName
Returns the protobuf qualified type name, including the package name. -
makeTestFieldWasNotSet
private String makeTestFieldWasNotSet(Collection<ProtoFieldMetadata> fields, Map<String, Integer> trackedFields) Make boolean expression to test that at least one fields from a given collection of fields was not set. -
makeTestFieldWasNotSet
Make boolean expression to test that a field was not set. -
makeFieldWasSet
Make statement to mark a field as set. -
makeFieldLocalVar
Make local variable name for a field. -
makeCollectionLocalVar
Make a collection local variable name for a repeatable/array field. -
makeArrayLocalVar
-
makeMarshallerDelegateFieldName
Make field name for caching a marshaller delegate for a related message. -
generateReadMethodBody
protected void generateReadMethodBody(IndentWriter iw, ProtoMessageTypeMetadata messageTypeMetadata) Signature of generated method is:public java.lang.Object read(org.infinispan.protostream.ProtoStreamMarshaller.ReadContext $1, java.lang.Object $2) throws java.io.IOException -
generateFieldReadMethod
private void generateFieldReadMethod(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, IndentWriter iw, boolean noFactory, Map<String, Integer> trackedFields, String getUnknownFieldSetFieldStatement, String setUnknownFieldSetFieldStatement) -
generateMapFieldReadMethod
private String generateMapFieldReadMethod(ProtoFieldMetadata fieldMetadata, IndentWriter iw, boolean readNext) -
makeFieldTag
-
toJavaLiteral
Converts a givenvalueinstance to a Java language literal of typejavaType. The input value is expected to conform to the given type (no checks are performed). -
genSetField
private void genSetField(IndentWriter iw, ProtoFieldMetadata fieldMetadata, Map<String, Integer> trackedFields, ProtoMessageTypeMetadata messageTypeMetadata) -
generateWriteMethodBody
protected void generateWriteMethodBody(IndentWriter iw, ProtoMessageTypeMetadata messageTypeMetadata) Signature of generated method is:public void write(org.infinispan.protostream.ProtoStreamMarshaller.WriteContext $1, java.lang.Object $2) throws java.io.IOException -
writeFieldValue
-
writeFieldValue
private void writeFieldValue(ProtoFieldMetadata fieldMetadata, IndentWriter iw, String v, String out) -
initMarshallerDelegateField
-
makeStreamIOMethodName
-
convert
Cast the given value if necessary. This is usually needed for the types that we are forced to represent as 32-bit integers because of Protobuf's lack of support for integral types of 8 and 16 bits. -
box
Return the corresponding 'boxed' Class given a Class, ornullif no type change is required. -
box
Boxes a given value. The Class parameter can benullto indicate that no boxing should actually be performed. -
unbox
-
createGetPropExpr
private String createGetPropExpr(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, String obj) -
createSetPropExpr
private String createSetPropExpr(ProtoMessageTypeMetadata messageTypeMetadata, ProtoFieldMetadata fieldMetadata, String obj, String value) -
generateMarshaller
public abstract void generateMarshaller(SerializationContext serCtx, ProtoTypeMetadata ptm) throws Exception - Throws:
Exception
-