Class BaseProtoSchemaGenerator
- java.lang.Object
-
- org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator
-
- Direct Known Subclasses:
RuntimeProtoSchemaGenerator
public abstract class BaseProtoSchemaGenerator extends Object
Generates a protobuf schema (proto file) based on annotations and also generates marshallers for the types.This class is not to be directly invoked by users. See
ProtoSchemaBuilder
instead.Generators are not expected to be stateless, so reuse must be done taking this into account.
- Since:
- 3.0
- Author:
- [email protected]
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
autoImportClasses
Indicates if class dependencies are automatically added when discovered or will generate an error.protected Set<XClass>
classes
Initial set of classes.protected String
fileName
Protobuf schema file name.static boolean
generateMarshallerDebugComments
Set this flag totrue
to enable output of debug comments in the generated marshaller source code.static boolean
generateSchemaDebugComments
Set this flag totrue
to enable output of debug comments in the generated Protobuf schema.protected String
generator
protected String
packageName
Protobuf schema package name.protected SerializationContext
serializationContext
protected XTypeFactory
typeFactory
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseProtoSchemaGenerator(XTypeFactory typeFactory, SerializationContext serializationContext, String generator, String fileName, String packageName, Set<XClass> classes, boolean autoImportClasses)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description String
generateAndRegister()
protected XClass
getAdapterFor(XClass annotatedClass)
Set<XClass>
getMarshalledClasses()
protected XClass
getTargetClass(XClass annotatedClass)
Get the marshalled class or enum.protected abstract ProtoTypeMetadata
importProtoTypeMetadata(XClass javaType)
Return an imported ProtoTypeMetadata implementation or null if it cannot be imported.protected boolean
isUnknownClass(XClass c)
protected ProtoTypeMetadata
makeEnumTypeMetadata(XClass javaType)
protected abstract AbstractMarshallerCodeGenerator
makeMarshallerCodeGenerator()
Creates a code generator for marshallers.protected ProtoTypeMetadata
makeMessageTypeMetadata(XClass javaType)
protected ProtoTypeMetadata
makeTypeMetadata(XClass javaType)
protected ProtoTypeMetadata
scanAnnotations(XClass javaType)
-
-
-
Field Detail
-
generateSchemaDebugComments
public static boolean generateSchemaDebugComments
Set this flag totrue
to enable output of debug comments in the generated Protobuf schema.
-
generateMarshallerDebugComments
public static boolean generateMarshallerDebugComments
Set this flag totrue
to enable output of debug comments in the generated marshaller source code.
-
typeFactory
protected final XTypeFactory typeFactory
-
serializationContext
protected final SerializationContext serializationContext
-
fileName
protected final String fileName
Protobuf schema file name.
-
generator
protected final String generator
-
packageName
protected final String packageName
Protobuf schema package name.
-
autoImportClasses
protected final boolean autoImportClasses
Indicates if class dependencies are automatically added when discovered or will generate an error.
-
-
Constructor Detail
-
BaseProtoSchemaGenerator
protected BaseProtoSchemaGenerator(XTypeFactory typeFactory, SerializationContext serializationContext, String generator, String fileName, String packageName, Set<XClass> classes, boolean autoImportClasses)
-
-
Method Detail
-
generateAndRegister
public String generateAndRegister()
-
makeMarshallerCodeGenerator
protected abstract AbstractMarshallerCodeGenerator makeMarshallerCodeGenerator()
Creates a code generator for marshallers.
-
scanAnnotations
protected ProtoTypeMetadata scanAnnotations(XClass javaType)
-
importProtoTypeMetadata
protected abstract ProtoTypeMetadata importProtoTypeMetadata(XClass javaType)
Return an imported ProtoTypeMetadata implementation or null if it cannot be imported.
-
makeTypeMetadata
protected ProtoTypeMetadata makeTypeMetadata(XClass javaType)
-
makeEnumTypeMetadata
protected ProtoTypeMetadata makeEnumTypeMetadata(XClass javaType)
-
makeMessageTypeMetadata
protected ProtoTypeMetadata makeMessageTypeMetadata(XClass javaType)
-
isUnknownClass
protected boolean isUnknownClass(XClass c)
-
-