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
ProtoSchemaBuilderinstead.Generators are not expected to be stateless, so reuse must be done taking this into account.
- Since:
- 3.0
- Author:
- anistor@redhat.com
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanautoImportClassesIndicates if class dependencies are automatically added when discovered or will generate an error.protected Set<XClass>classesInitial set of classes.protected StringfileNameProtobuf schema file name.static booleangenerateMarshallerDebugCommentsSet this flag totrueto enable output of debug comments in the generated marshaller source code.static booleangenerateSchemaDebugCommentsSet this flag totrueto enable output of debug comments in the generated Protobuf schema.protected Stringgeneratorprotected StringpackageNameProtobuf schema package name.protected SerializationContextserializationContextprotected XTypeFactorytypeFactory
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseProtoSchemaGenerator(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 StringgenerateAndRegister()protected XClassgetAdapterFor(XClass annotatedClass)Set<XClass>getMarshalledClasses()protected XClassgetTargetClass(XClass annotatedClass)Get the marshalled class or enum.protected abstract ProtoTypeMetadataimportProtoTypeMetadata(XClass javaType)Return an imported ProtoTypeMetadata implementation or null if it cannot be imported.protected booleanisUnknownClass(XClass c)protected ProtoTypeMetadatamakeEnumTypeMetadata(XClass javaType)protected abstract AbstractMarshallerCodeGeneratormakeMarshallerCodeGenerator()Creates a code generator for marshallers.protected ProtoTypeMetadatamakeMessageTypeMetadata(XClass javaType)protected ProtoTypeMetadatamakeTypeMetadata(XClass javaType)protected ProtoTypeMetadatascanAnnotations(XClass javaType)
-
-
-
Field Detail
-
generateSchemaDebugComments
public static boolean generateSchemaDebugComments
Set this flag totrueto enable output of debug comments in the generated Protobuf schema.
-
generateMarshallerDebugComments
public static boolean generateMarshallerDebugComments
Set this flag totrueto 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)
-
-