final class MarshallerCodeGenerator
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private javassist.CtClass |
baseMarshallerDelegateClass |
private javassist.ClassPool |
cp |
private javassist.CtMethod |
decodeMethod |
private javassist.CtMethod |
encodeMethod |
private javassist.CtClass |
enumMarshallerDelegateClass |
private javassist.CtClass |
enumMarshallerInterface |
private javassist.CtClass |
generatedMarshallerBaseClass |
private javassist.CtMethod |
getJavaClassMethod |
private javassist.CtMethod |
getTypeNameMethod |
private javassist.CtClass |
ioException |
private static Log |
log |
private static java.lang.String |
MARSHALLER_CLASS_NAME |
private static long |
nextId
A numeric id that is appended to generated class names to avoid potential collisions.
|
private java.lang.String |
protobufSchemaPackage |
private static java.lang.String |
PROTOSTREAM_PACKAGE |
private javassist.CtClass |
rawProtobufMarshallerInterface |
private javassist.CtMethod |
readFromMethod |
private javassist.CtMethod |
writeToMethod |
| Constructor and Description |
|---|
MarshallerCodeGenerator(java.lang.String protobufSchemaPackage,
javassist.ClassPool cp) |
| Modifier and Type | Method and Description |
|---|---|
private void |
addMarshallerDelegateFields(javassist.CtClass marshallerImpl,
ProtoMessageTypeMetadata messageTypeMetadata) |
private java.lang.Class<?> |
box(java.lang.Class<?> clazz) |
private java.lang.String |
box(java.lang.String v,
java.lang.Class<?> clazz) |
private java.lang.String |
createGetter(ProtoFieldMetadata fieldMetadata) |
private java.lang.String |
createSetter(ProtoFieldMetadata fieldMetadata,
java.lang.String args) |
private java.lang.String |
generateDecodeMethod(ProtoEnumTypeMetadata enumTypeMetadata) |
private java.lang.String |
generateEncodeMethod(ProtoEnumTypeMetadata enumTypeMetadata) |
EnumMarshaller |
generateEnumMarshaller(ProtoEnumTypeMetadata petm) |
RawProtobufMarshaller |
generateMessageMarshaller(ProtoMessageTypeMetadata messageTypeMetadata) |
private java.lang.String |
generateReadFromMethod(ProtoMessageTypeMetadata messageTypeMetadata) |
private java.lang.String |
generateWriteToMethod(ProtoMessageTypeMetadata messageTypeMetadata) |
private void |
genSetField(IndentWriter iw,
ProtoFieldMetadata fieldMetadata) |
private void |
initMarshallerDelegateField(IndentWriter iw,
ProtoFieldMetadata fieldMetadata) |
private java.lang.String |
makeCollectionLocalVar(ProtoFieldMetadata fieldMetadata) |
private java.lang.String |
makeFieldWasSetFlag(ProtoFieldMetadata fieldMetadata) |
private java.lang.String |
makeMarshallerDelegateFieldName(ProtoFieldMetadata fieldMetadata) |
private java.lang.String |
makeQualifiedTypeName(java.lang.String fullName) |
private java.lang.String |
makeStreamIOMethodName(ProtoFieldMetadata fieldMetadata,
boolean isWrite) |
private static long |
nextMarshallerClassId()
Generates a unique id to be used for generating unique class names.
|
private java.lang.String |
unbox(java.lang.String v,
java.lang.Class<?> clazz) |
private static final Log log
private static final java.lang.String PROTOSTREAM_PACKAGE
private static final java.lang.String MARSHALLER_CLASS_NAME
private static long nextId
private final javassist.ClassPool cp
private final javassist.CtClass ioException
private final javassist.CtClass enumMarshallerInterface
private final javassist.CtClass rawProtobufMarshallerInterface
private final javassist.CtClass generatedMarshallerBaseClass
private final javassist.CtClass baseMarshallerDelegateClass
private final javassist.CtClass enumMarshallerDelegateClass
private final javassist.CtMethod getJavaClassMethod
private final javassist.CtMethod getTypeNameMethod
private final javassist.CtMethod readFromMethod
private final javassist.CtMethod writeToMethod
private final javassist.CtMethod decodeMethod
private final javassist.CtMethod encodeMethod
private final java.lang.String protobufSchemaPackage
public MarshallerCodeGenerator(java.lang.String protobufSchemaPackage,
javassist.ClassPool cp)
throws javassist.NotFoundException
javassist.NotFoundExceptionprivate static long nextMarshallerClassId()
public EnumMarshaller generateEnumMarshaller(ProtoEnumTypeMetadata petm) throws javassist.NotFoundException, javassist.CannotCompileException, java.lang.IllegalAccessException, java.lang.InstantiationException
javassist.NotFoundExceptionjavassist.CannotCompileExceptionjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionprivate java.lang.String generateDecodeMethod(ProtoEnumTypeMetadata enumTypeMetadata)
private java.lang.String generateEncodeMethod(ProtoEnumTypeMetadata enumTypeMetadata)
private java.lang.String makeQualifiedTypeName(java.lang.String fullName)
private java.lang.String makeFieldWasSetFlag(ProtoFieldMetadata fieldMetadata)
private java.lang.String makeCollectionLocalVar(ProtoFieldMetadata fieldMetadata)
private java.lang.String makeMarshallerDelegateFieldName(ProtoFieldMetadata fieldMetadata)
public RawProtobufMarshaller generateMessageMarshaller(ProtoMessageTypeMetadata messageTypeMetadata) throws javassist.NotFoundException, javassist.CannotCompileException, java.lang.IllegalAccessException, java.lang.InstantiationException
javassist.NotFoundExceptionjavassist.CannotCompileExceptionjava.lang.IllegalAccessExceptionjava.lang.InstantiationExceptionprivate void addMarshallerDelegateFields(javassist.CtClass marshallerImpl,
ProtoMessageTypeMetadata messageTypeMetadata)
throws javassist.CannotCompileException
javassist.CannotCompileExceptionprivate java.lang.String generateReadFromMethod(ProtoMessageTypeMetadata messageTypeMetadata)
private void genSetField(IndentWriter iw, ProtoFieldMetadata fieldMetadata)
private java.lang.String generateWriteToMethod(ProtoMessageTypeMetadata messageTypeMetadata)
private void initMarshallerDelegateField(IndentWriter iw, ProtoFieldMetadata fieldMetadata)
private java.lang.String makeStreamIOMethodName(ProtoFieldMetadata fieldMetadata, boolean isWrite)
private java.lang.Class<?> box(java.lang.Class<?> clazz)
private java.lang.String box(java.lang.String v,
java.lang.Class<?> clazz)
private java.lang.String unbox(java.lang.String v,
java.lang.Class<?> clazz)
private java.lang.String createGetter(ProtoFieldMetadata fieldMetadata)
private java.lang.String createSetter(ProtoFieldMetadata fieldMetadata, java.lang.String args)