public class JrpcgenEnum extends JrpcgenComplexType
JrpcgenEnum class represents a single enumeration
from an rpcgen "x"-file. It is a "container" for the elements (constants)
belonging to this enumeration.| Modifier and Type | Class and Description |
|---|---|
static class |
JrpcgenEnum.Element |
JrpcgenXdrDefinition.Table, JrpcgenXdrDefinition.Typedocumentation| Constructor and Description |
|---|
JrpcgenEnum(JrpcgenContext context,
String identifier,
JrpcgenConst.Table elements)
Constructs a
JrpcgenEnum and sets the identifier and all
its enumeration elements. |
| Modifier and Type | Method and Description |
|---|---|
void |
dump()
Dumps the enumeration together with its elements to
System.out. |
<T extends Appendable> |
dump(T appendable) |
void |
generateJavaFile()
Concrete implementations are asked to generate a Java file
containing an implementation of the Java class mapping
the complex type.
|
JrpcgenConst.Table |
getElements() |
String |
getJavaClass()
The complex type is mapped by a Java class.
|
String |
getJavaName()
The Java name is equal to the definition name
and therefore equal to the identifier of the complex
type.
|
String |
getXdrClass()
The Java class mapping the complex type usually implements
the interface
XdrAble. |
String |
toString()
Returns the fully qualified identifier.
|
void |
writeEqualsExpression(JrpcgenJavaFile javaFile,
String variableLeft,
String variableRight,
boolean negate)
Writes an equals expression to the passed Java file using the passed names of the left hand side
and the right hand side variable.
|
void |
writeJavaToXdr(JrpcgenJavaFile javaFile,
JrpcgenJavaFile.Expression expression)
Wirtes the passed expression to the passed Java file.
|
void |
writeJavaToXdr(JrpcgenJavaFile javaFile,
String variable)
At this level of a complex type the passed variable represents both the
Java as well as the XDR representation and will be written as is to the
passed Java file.
|
void |
writeXdrConstructorCall(JrpcgenJavaFile javaFile,
String constructorParameter)
Writes a default constructor call or a constructor call with one parameter
with the XDR class provided by this mapping.
|
void |
writeXdrDecodingCall(JrpcgenJavaFile javaFile,
String xdrStream)
Writes an XDR encoding call on the result of the passed expression with the passed name of an XDR
decoding stream to the passed Java file.
|
void |
writeXdrDynamicVectorDecodingCall(JrpcgenJavaFile javaFile,
String xdrStream)
Writes an XDR decoding call for a dynamic vector of the mapping type to the passed Java file.
|
void |
writeXdrDynamicVectorEncodingCall(JrpcgenJavaFile javaFile,
String xdrStream,
String variable)
Writes an XDR encoding call for a dynamic vector of the mapping type to the passed Java file.
|
void |
writeXdrEncodingCall(JrpcgenJavaFile javaFile,
String xdrStream,
String variable)
Writes an XDR encoding call on the passed variable with the passed name of an XDR encoding
stream to the passed Java file.
|
void |
writeXdrFixedVectorDecodingCall(JrpcgenJavaFile javaFile,
String xdrStream,
String size)
Writes an XDR decoding call for a fixed vector of the mapping type to the passed Java file.
|
void |
writeXdrFixedVectorEncodingCall(JrpcgenJavaFile javaFile,
String xdrStream,
String variable,
String size)
Writes an XDR encoding call for a fixed vector of the mapping type to the passed Java file.
|
void |
writeXdrToJava(JrpcgenJavaFile javaFile,
String result)
At this level of a complex type the passed variable represents both the
Java as well as the XDR representation and will be written as is to the
passed Java file.
|
void |
writeXdrVectorCodingMethods(JrpcgenJavaFile javaFile,
JrpcgenContext context)
Writes static encoding and decoding methods for fixed and dynamic vectors of the mapping
to the passed Java file.
|
getDefinitionName, isBaseType, isBooleanType, isOpaqueType, isStringType, isVoid, writeXdrConstructorCall, writeXdrEncodingCallgetIdentifier, getXdrType, isConst, isEnum, isStruct, isTypedef, isUnionappendDeprecatedOrNothing, appendDeprecatedOrNothing, documentationIsEmpty, documentationIsProvided, emptyDocumentation, getDocumentation, getIdentedDocu, getIdentedDocu, isDeprecated, writeDocumentation, writeDocumentationpublic JrpcgenEnum(JrpcgenContext context, String identifier, JrpcgenConst.Table elements)
JrpcgenEnum and sets the identifier and all
its enumeration elements.context - The context the new enumeration belongs to.identifier - Identifier to be declared.enums - Vector of enumeration elements of class JrpcgenConst.public final JrpcgenConst.Table getElements()
public void generateJavaFile()
JrpcgenComplexTypegenerateJavaFile in class JrpcgenComplexTypepublic void writeXdrVectorCodingMethods(JrpcgenJavaFile javaFile, JrpcgenContext context)
JrpcgenComplexTypeHowever, the static encoding and decoding methods for fixed and dynamic vectors of the mapping type will be written only if they are required as a result of the foregoing parsing process. During the parsing phase vector uses of the mapping type are recognized and stored in maps for types in fixed and dynamic vector uses, respectively. The rules of generation are as follows:
writeXdrVectorCodingMethods in class JrpcgenComplexTypejavaFile - The Java file, where the static methods are going to be placed.context - The context of the current jrpcgen run.public String getJavaName()
JrpcgenComplexTypegetJavaName in interface JrpcgenTypeMappinggetJavaName in class JrpcgenComplexTypepublic String getJavaClass()
JrpcgenComplexTypegetJavaClass in interface JrpcgenTypeMappinggetJavaClass in class JrpcgenComplexTypepublic String getXdrClass()
JrpcgenComplexTypeXdrAble. Therefore the name of the XDR
class is equal to the definition name and the identifier of
the complex type, respectively.getXdrClass in interface JrpcgenTypeMappinggetXdrClass in class JrpcgenComplexTypepublic void writeXdrConstructorCall(JrpcgenJavaFile javaFile, String constructorParameter)
JrpcgenComplexTypenull as value of
the parameter parameter will result in a default constructor call
written to the passed Java file. Otherwise the value of the parameter
parameter will be written as parameter to the constuctor call.writeXdrConstructorCall in interface JrpcgenTypeMappingwriteXdrConstructorCall in class JrpcgenComplexTypejavaFile - The Java file, where the constructor call is going to be placed.constructorParameter - null to generate a default constructor call, a parameter
name to generate a constructor call with one parameter.public void writeJavaToXdr(JrpcgenJavaFile javaFile, String variable)
JrpcgenComplexTypewriteJavaToXdr in interface JrpcgenTypeMappingwriteJavaToXdr in class JrpcgenComplexTypejavaFile - The Java file, where the variable is going to be placed.variable - The name of a variable in Java representation.public void writeJavaToXdr(JrpcgenJavaFile javaFile, JrpcgenJavaFile.Expression expression)
JrpcgenComplexTypewriteJavaToXdr in interface JrpcgenTypeMappingwriteJavaToXdr in class JrpcgenComplexTypejavaFile - The Java file, where the passed expression is going to be placed.expression - An expression to be called with the passed Java file.public void writeXdrToJava(JrpcgenJavaFile javaFile, String result)
JrpcgenComplexTypewriteXdrToJava in interface JrpcgenTypeMappingwriteXdrToJava in class JrpcgenComplexTypejavaFile - The Java file, where the result is going to be placed.result - The name of a variable in XDR representation.public void writeXdrEncodingCall(JrpcgenJavaFile javaFile, String xdrStream, String variable)
JrpcgenComplexTypeXdrAble and therefore the XDR encoding call will be
similar to variable.xdrEncode(xdrStream).writeXdrEncodingCall in interface JrpcgenTypeMappingwriteXdrEncodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR encoding call is going to be placed.xdrStream - The name of the XDR encoding stream instance to be used in the statement.variable - The name of the variable to be used in the statement.public void writeXdrFixedVectorEncodingCall(JrpcgenJavaFile javaFile, String xdrStream, String variable, String size)
JrpcgenComplexTypexdrEncodeFixedVector(XdrEncodingStream, MappingType, int)
in the generated code of the mapping type MappingType as done by a call to the method
JrpcgenComplexType.writeXdrVectorCodingMethods(JrpcgenJavaFile, JrpcgenContext) within the implementation
of the method JrpcgenComplexType.generateJavaFile(). Thereby MappingType is a placeholder
for the name of concrete mapping type at this point.writeXdrFixedVectorEncodingCall in interface JrpcgenTypeMappingwriteXdrFixedVectorEncodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR encoding call is going to be placed.xdrStream - The name of the XDR encoding instance to be used in the statement.variable - The name of the variable to be used in the statement.size - A string specifying the size of the fixed vector.public void writeXdrDynamicVectorEncodingCall(JrpcgenJavaFile javaFile, String xdrStream, String variable)
JrpcgenComplexTypexdrEncodeDynamicVector(XdrEncodingStream, MappingType) in the generated code of the
mapping type as done by a call to the method
#wirteXdrVectorCodingMethods(JrpcgenJavaFile, JrpcgenContext) within the
implementation of the method JrpcgenComplexType.generateJavaFile(). Thereby MappingType
is a placeholder for the name of the concrete mapping type at this point.writeXdrDynamicVectorEncodingCall in interface JrpcgenTypeMappingwriteXdrDynamicVectorEncodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR encoding call is going to be placed.xdrStream - The name of the XDR encoding instance to be used in the statement.variable - The name of the variable to be used in the statement.public void writeXdrDecodingCall(JrpcgenJavaFile javaFile, String xdrStream)
JrpcgenComplexTypeXdrAble and therefore the XDR decoding call will be similar to
an constructor call with the name of the XDR decoding stream as parameter.writeXdrDecodingCall in interface JrpcgenTypeMappingwriteXdrDecodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR decoding call is going to be placed.xdrStream - The name of the XDR decoding stream instance to be used in the statement.public void writeXdrFixedVectorDecodingCall(JrpcgenJavaFile javaFile, String xdrStream, String size)
JrpcgenComplexTypexdrDecodeFixedVector(XdrDecodingStream, int) within the implementation
of the generated code of the mapping type MappingType as done by a call to the method
JrpcgenComplexType.writeXdrVectorCodingMethods(JrpcgenJavaFile, JrpcgenContext) within the implementation
of the method JrpcgenComplexType.generateJavaFile(). Thereby MappingType is a placeholder
for the name of the concrete mapping type at this point.writeXdrFixedVectorDecodingCall in interface JrpcgenTypeMappingwriteXdrFixedVectorDecodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR decoding call is going to be placed.xdrStream - The name of the XDR decoding stream instance to be used in the statement.size - A string specifying the size of the fixed vector.public void writeXdrDynamicVectorDecodingCall(JrpcgenJavaFile javaFile, String xdrStream)
JrpcgenComplexTypexdrDecodeDynamicVector(XdrDecodingStream)
in the generated code of the mapping type as done by a call to method
JrpcgenComplexType.writeXdrVectorCodingMethods(JrpcgenJavaFile, JrpcgenContext) within the implementation
of the method JrpcgenComplexType.generateJavaFile().writeXdrDynamicVectorDecodingCall in interface JrpcgenTypeMappingwriteXdrDynamicVectorDecodingCall in class JrpcgenComplexTypejavaFile - The Java file, where the XDR decoding call is going to be placed.xdrStream - The name of the XDR decoding stream instance to be used in the statement.public void writeEqualsExpression(JrpcgenJavaFile javaFile, String variableLeft, String variableRight, boolean negate)
JrpcgenComplexTypetrue on equality or on inequality. At this level of complex types the
generated code will be similar to
java.utils.Objects.equals(variableLeft, variableRight)for
negate=false and
! java.utils.Objects.equals(variableLeft, variableRight)for
negate=true.writeEqualsExpression in interface JrpcgenTypeMappingwriteEqualsExpression in class JrpcgenComplexTypejavaFile - The Java file, where the equality expression is going to be placed.variableLeft - The name of the variable to be used as the left hand side in the statement.variableRight - The name of the variable to be used as the right hand side in the statement.negate - false to let the resulting statement return true on equality,
true to let the resulting statement return true on inequality.public String toString()
public void dump()
System.out.public <T extends Appendable> T dump(T appendable)
Copyright © 2025. All rights reserved.