Avro C#
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Properties
Avro::CodeGen Class Reference

List of all members.

Public Member Functions

 CodeGen ()
 Default constructor.
virtual void AddProtocol (Protocol protocol)
 Adds a protocol object to generate code for.
virtual void AddSchema (Schema schema)
 Adds a schema object to generate code for.
virtual CodeCompileUnit GenerateCode ()
 Generates code for the given protocol and schema objects.
virtual void WriteCompileUnit (string outputFile)
 Writes the generated compile unit into one file.
virtual void WriteTypes (string outputdir)
 Writes each types in each namespaces into individual files.

Static Public Member Functions

static Schema getNullableType (UnionSchema schema)
 Gets the schema of a union with null.

Protected Member Functions

virtual CodeNamespace addNamespace (string name)
 Adds a namespace object for the given name into the dictionary if it doesn't exist yet.
virtual void processSchemas ()
 Generates code for the schema objects.
virtual void processProtocols ()
 Generates code for the protocol objects.
virtual SchemaNames generateNames (Protocol protocol)
 Generate list of named schemas from given protocol.
virtual SchemaNames generateNames (Schema schema)
 Generate list of named schemas from given schema.
virtual void addName (Schema schema, SchemaNames names)
 Recursively search the given schema for named schemas and adds them to the given container.
virtual void processFixed (Schema schema)
 Creates a class declaration for fixed schema.
virtual void processEnum (Schema schema)
 Creates an enum declaration.
virtual CodeTypeDeclaration processRecord (Schema schema)
 Creates a class declaration.
virtual void createSchemaField (Schema schema, CodeTypeDeclaration ctd, bool overrideFlag)
 Creates the static schema field for class types.
virtual CodeCommentStatement createDocComment (string comment)
 Creates an XML documentation for the given comment.

Protected Attributes

Dictionary< string, CodeNamespace > namespaceLookup = new Dictionary<string, CodeNamespace>(StringComparer.Ordinal)
 List of generated namespaces.

Properties

CodeCompileUnit CompileUnit [get, set]
 Object that contains all the generated types.
IList< SchemaSchemas [get, set]
 List of schemas to generate code for.
IList< ProtocolProtocols [get, set]
 List of protocols to generate code for.

Constructor & Destructor Documentation

Avro::CodeGen::CodeGen ( ) [inline]

Default constructor.


Member Function Documentation

virtual void Avro::CodeGen::addName ( Schema  schema,
SchemaNames  names 
) [inline, protected, virtual]

Recursively search the given schema for named schemas and adds them to the given container.

Parameters:
schemaschema object to search
nameslist of named schemas
virtual CodeNamespace Avro::CodeGen::addNamespace ( string  name) [inline, protected, virtual]

Adds a namespace object for the given name into the dictionary if it doesn't exist yet.

Parameters:
namename of namespace
Returns:
virtual void Avro::CodeGen::AddProtocol ( Protocol  protocol) [inline, virtual]

Adds a protocol object to generate code for.

Parameters:
protocolprotocol object
virtual void Avro::CodeGen::AddSchema ( Schema  schema) [inline, virtual]

Adds a schema object to generate code for.

Parameters:
schemaschema object
virtual CodeCommentStatement Avro::CodeGen::createDocComment ( string  comment) [inline, protected, virtual]

Creates an XML documentation for the given comment.

Parameters:
commentcomment
Returns:
CodeCommentStatement object
virtual void Avro::CodeGen::createSchemaField ( Schema  schema,
CodeTypeDeclaration  ctd,
bool  overrideFlag 
) [inline, protected, virtual]

Creates the static schema field for class types.

Parameters:
schemaschema
ctdCodeTypeDeclaration for the class
virtual CodeCompileUnit Avro::CodeGen::GenerateCode ( ) [inline, virtual]

Generates code for the given protocol and schema objects.

Returns:
CodeCompileUnit object
virtual SchemaNames Avro::CodeGen::generateNames ( Schema  schema) [inline, protected, virtual]

Generate list of named schemas from given schema.

Parameters:
schemaschema to process
Returns:
virtual SchemaNames Avro::CodeGen::generateNames ( Protocol  protocol) [inline, protected, virtual]

Generate list of named schemas from given protocol.

Parameters:
protocolprotocol to process
Returns:
static Schema Avro::CodeGen::getNullableType ( UnionSchema  schema) [inline, static]

Gets the schema of a union with null.

Parameters:
schemaunion schema
Returns:
schema that is nullible
virtual void Avro::CodeGen::processEnum ( Schema  schema) [inline, protected, virtual]

Creates an enum declaration.

Parameters:
schemaenum schema
nsnamespace
virtual void Avro::CodeGen::processFixed ( Schema  schema) [inline, protected, virtual]

Creates a class declaration for fixed schema.

Parameters:
schemafixed schema
nsnamespace object
virtual void Avro::CodeGen::processProtocols ( ) [inline, protected, virtual]

Generates code for the protocol objects.

virtual CodeTypeDeclaration Avro::CodeGen::processRecord ( Schema  schema) [inline, protected, virtual]

Creates a class declaration.

Parameters:
schemarecord schema
nsnamespace
Returns:
virtual void Avro::CodeGen::processSchemas ( ) [inline, protected, virtual]

Generates code for the schema objects.

virtual void Avro::CodeGen::WriteCompileUnit ( string  outputFile) [inline, virtual]

Writes the generated compile unit into one file.

Parameters:
outputFilename of output file to write to
virtual void Avro::CodeGen::WriteTypes ( string  outputdir) [inline, virtual]

Writes each types in each namespaces into individual files.

Parameters:
outputdirname of directory to write to

Member Data Documentation

Dictionary<string, CodeNamespace> Avro::CodeGen::namespaceLookup = new Dictionary<string, CodeNamespace>(StringComparer.Ordinal) [protected]

List of generated namespaces.


Property Documentation

CodeCompileUnit Avro::CodeGen::CompileUnit [get, set]

Object that contains all the generated types.

IList<Protocol> Avro::CodeGen::Protocols [get, set]

List of protocols to generate code for.

IList<Schema> Avro::CodeGen::Schemas [get, set]

List of schemas to generate code for.


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Enumerations Properties