Package net.morimekta.providence.reflect
Class ProgramRegistry
- java.lang.Object
-
- net.morimekta.providence.types.TypeRegistry
-
- net.morimekta.providence.types.WritableTypeRegistry
-
- net.morimekta.providence.reflect.ProgramRegistry
-
public class ProgramRegistry extends net.morimekta.providence.types.WritableTypeRegistryThis is a registry for a single program. Meaning it also handles how includes work and contains meta info about the program it is representing. The registry can reference each other recursively. Each registry will have a specific package context, and needs to be built up in a recursive manner. This way each type registry will only have access to the described types actually referenced and included in the given thrift program file.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> java.util.Optional<T>getConstantValue(net.morimekta.providence.types.TypeReference reference)java.util.Optional<net.morimekta.providence.descriptor.PDeclaredDescriptor<?>>getDeclaredType(net.morimekta.providence.types.TypeReference reference)java.util.List<net.morimekta.providence.descriptor.PDeclaredDescriptor<?>>getDeclaredTypes()CProgramgetProgram()java.lang.StringgetProgramContext()ProgramDeclarationgetProgramType()java.util.Optional<ProgramRegistry>getRegistry(java.lang.String program)java.util.Optional<net.morimekta.providence.descriptor.PService>getService(net.morimekta.providence.types.TypeReference reference)java.util.Optional<net.morimekta.providence.types.TypeReference>getTypedef(net.morimekta.providence.types.TypeReference reference)booleanisKnownProgram(java.lang.String program)voidregisterConstant(net.morimekta.providence.types.TypeReference reference, net.morimekta.providence.descriptor.PValueProvider<?> value)voidregisterService(net.morimekta.providence.descriptor.PService service)<T> voidregisterType(net.morimekta.providence.descriptor.PDeclaredDescriptor<T> declaredType)voidregisterTypedef(net.morimekta.providence.types.TypeReference reference, net.morimekta.providence.types.TypeReference target)
-
-
-
Method Detail
-
getProgramContext
public java.lang.String getProgramContext()
-
getProgram
public CProgram getProgram()
-
getProgramType
public ProgramDeclaration getProgramType()
-
getRegistry
@Nonnull public java.util.Optional<ProgramRegistry> getRegistry(@Nonnull java.lang.String program)
-
getDeclaredType
@Nonnull public java.util.Optional<net.morimekta.providence.descriptor.PDeclaredDescriptor<?>> getDeclaredType(@Nonnull net.morimekta.providence.types.TypeReference reference)- Specified by:
getDeclaredTypein classnet.morimekta.providence.types.TypeRegistry
-
getService
@Nonnull public java.util.Optional<net.morimekta.providence.descriptor.PService> getService(@Nonnull net.morimekta.providence.types.TypeReference reference)- Specified by:
getServicein classnet.morimekta.providence.types.TypeRegistry
-
getConstantValue
@Nonnull public <T> java.util.Optional<T> getConstantValue(@Nonnull net.morimekta.providence.types.TypeReference reference)- Specified by:
getConstantValuein classnet.morimekta.providence.types.TypeRegistry
-
getTypedef
@Nonnull public java.util.Optional<net.morimekta.providence.types.TypeReference> getTypedef(@Nonnull net.morimekta.providence.types.TypeReference reference)- Specified by:
getTypedefin classnet.morimekta.providence.types.TypeRegistry
-
getDeclaredTypes
public java.util.List<net.morimekta.providence.descriptor.PDeclaredDescriptor<?>> getDeclaredTypes()
- Specified by:
getDeclaredTypesin classnet.morimekta.providence.types.TypeRegistry
-
isKnownProgram
public boolean isKnownProgram(@Nonnull java.lang.String program)- Specified by:
isKnownProgramin classnet.morimekta.providence.types.TypeRegistry
-
registerTypedef
public void registerTypedef(@Nonnull net.morimekta.providence.types.TypeReference reference, @Nonnull net.morimekta.providence.types.TypeReference target)- Specified by:
registerTypedefin classnet.morimekta.providence.types.WritableTypeRegistry
-
registerType
public <T> void registerType(net.morimekta.providence.descriptor.PDeclaredDescriptor<T> declaredType)
- Specified by:
registerTypein classnet.morimekta.providence.types.WritableTypeRegistry
-
registerService
public void registerService(@Nonnull net.morimekta.providence.descriptor.PService service)- Specified by:
registerServicein classnet.morimekta.providence.types.WritableTypeRegistry
-
registerConstant
public void registerConstant(@Nonnull net.morimekta.providence.types.TypeReference reference, @Nonnull net.morimekta.providence.descriptor.PValueProvider<?> value)- Specified by:
registerConstantin classnet.morimekta.providence.types.WritableTypeRegistry
-
-