Package io.protostuff.compiler.parser
Class ProtoContext
- java.lang.Object
-
- io.protostuff.compiler.parser.ProtoContext
-
public class ProtoContext extends Object
Proto context is a holder for proto file and related infrastructure - symbol tables, extension registry, etc.- Author:
- Kostiantyn Shchepanovskyi
-
-
Constructor Summary
Constructors Constructor Description ProtoContext(String filename)Create new empty context instance for a given filename.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddImport(ProtoContext importedProto)voidaddPublicImport(ProtoContext importedProto)ExtensionRegistrygetExtensionRegistry()FileReadergetFileReader()List<ProtoContext>getImports()ProtogetProto()List<ProtoContext>getPublicImports()booleanisInitialized()<T> Tpeek(Class<T> declarationClass)Peek an element from a declaration stack.<T> Tpop(Class<T> declarationClass)Pop an element from from a declaration stack.voidpush(Object declaration)Push an element to a declaration stack.<T extends Type & Element>
voidregister(String fullyQualifiedName, T type)Register user type in symbol table.<T extends Type>
Tresolve(Class<T> typeClass, String fullyQualifiedName)Resolve a type declaration by it's fully-qualified name using this proto context.Typeresolve(String fullyQualifiedName)Resolve a type declaration by it's fully-qualified name using this proto context.<T extends Type>
Tresolve(String typeName, Class<T> clazz)Resolve a type declaration by it's name using this proto context.voidsetFileReader(FileReader fileReader)voidsetInitialized(boolean initialized)StringtoString()
-
-
-
Constructor Detail
-
ProtoContext
public ProtoContext(String filename)
Create new empty context instance for a given filename.
-
-
Method Detail
-
peek
public <T> T peek(Class<T> declarationClass)
Peek an element from a declaration stack. Used by parse listeners.
-
push
public void push(Object declaration)
Push an element to a declaration stack. Used by parse listeners.
-
pop
public <T> T pop(Class<T> declarationClass)
Pop an element from from a declaration stack. Used by parse listeners.
-
register
public <T extends Type & Element> void register(String fullyQualifiedName, T type)
Register user type in symbol table. Full name should start with ".".
-
getProto
public Proto getProto()
-
resolve
public <T extends Type> T resolve(String typeName, Class<T> clazz)
Resolve a type declaration by it's name using this proto context.
-
resolve
public <T extends Type> T resolve(Class<T> typeClass, String fullyQualifiedName)
Resolve a type declaration by it's fully-qualified name using this proto context.
-
resolve
public Type resolve(String fullyQualifiedName)
Resolve a type declaration by it's fully-qualified name using this proto context.
-
isInitialized
public boolean isInitialized()
-
setInitialized
public void setInitialized(boolean initialized)
-
getImports
public List<ProtoContext> getImports()
-
addImport
public void addImport(ProtoContext importedProto)
-
getPublicImports
public List<ProtoContext> getPublicImports()
-
addPublicImport
public void addPublicImport(ProtoContext importedProto)
-
getExtensionRegistry
public ExtensionRegistry getExtensionRegistry()
-
getFileReader
public FileReader getFileReader()
-
setFileReader
public void setFileReader(FileReader fileReader)
-
-