Top Description Inners Constructors Methods
org.apache.avro.io.parsing

public Class ValidatingGrammarGenerator

extends Object
Class Inheritance
Known Direct Subclasses
org.apache.avro.io.parsing.JsonGrammarGenerator, org.apache.avro.io.parsing.ResolvingGrammarGenerator
Imports
java.util.HashMap, .List, .Map, org.apache.avro.Schema, .Schema.Field

The class that generates validating grammar.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
ValidatingGrammarGenerator.LitS

A wrapper around Schema that does "==" equality.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Symbol
generate(Schema schema)

Returns the non-terminal that is the start symbol for the grammar for the given schema sc.

public Symbol

Returns:

The start symbol for the schema
generate
(Schema
The schema for which the start symbol is required
sc
,
Map<ValidatingGrammarGenerator.LitS, Symbol>
A map of schema to symbol mapping done so far.
seen
)

Returns the non-terminal that is the start symbol for the grammar for the given schema sc.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

ValidatingGrammarGeneratorback to summary
public ValidatingGrammarGenerator()

Method Detail

generateback to summary
public Symbol generate(Schema schema)

Returns the non-terminal that is the start symbol for the grammar for the given schema sc.

generateback to summary
public Symbol generate(Schema sc, Map<ValidatingGrammarGenerator.LitS, Symbol> seen)

Returns the non-terminal that is the start symbol for the grammar for the given schema sc. If there is already an entry for the given schema in the given map seen then that entry is returned. Otherwise a new symbol is generated and an entry is inserted into the map.

Parameters
sc:Schema

The schema for which the start symbol is required

seen:Map<ValidatingGrammarGenerator.LitS, Symbol>

A map of schema to symbol mapping done so far.

Returns:Symbol

The start symbol for the schema

org.apache.avro.io.parsing back to summary

pack-priv Class ValidatingGrammarGenerator.LitS

extends Object
Class Inheritance

A wrapper around Schema that does "==" equality.

Field Summary

Modifier and TypeField and Description
public final Schema

Constructor Summary

AccessConstructor and Description
public
LitS(Schema actual)

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Two LitS are equal if and only if their underlying schema is the same (not merely equal).
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for the object.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

actualback to summary
public final Schema actual

Constructor Detail

LitSback to summary
public LitS(Schema actual)

Method Detail

equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Two LitS are equal if and only if their underlying schema is the same (not merely equal).

Parameters
o:Object

Doc from java.lang.Object.equals.

the reference object with which to compare.

Returns:boolean

Doc from java.lang.Object.equals.

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object.

Annotations
@Override