public interface ConfigurationBuilder
for convenience methods that assume the
underlying ClassHierarchy object delegates to the default
classloader, and enable many compile time static checks.,
which pushes additional type checks to class load
time. This allows Tint, Tang's static analysis tool, to detect a wide
range of runtime configuration errors at build time.| Modifier and Type | Method and Description |
|---|---|
void |
addConfiguration(Configuration c)
Add all configuration parameters from the given Configuration object.
|
void |
bind(Node iface,
Node impl)
Bind classes to each other, based on their full class names; alternatively,
bound a NamedParameter configuration option to a configuration value.
|
<T> void |
bind(String iface,
String impl)
Bind classes to each other, based on their full class names; alternatively,
bound a NamedParameter configuration option to a configuration value.
|
<T> void |
bindConstructor(ClassNode<T> iface,
ClassNode<? extends ExternalConstructor<? extends T>> impl)
Register an ExternalConstructor implementation with Tang.
|
<T> void |
bindList(NamedParameterNode<List<T>> iface,
List implList)
Bind an list of implementations(Class or String) to an given NamedParameter.
|
void |
bindList(String iface,
List implList) |
<T> void |
bindSetEntry(NamedParameterNode<Set<T>> iface,
Node impl) |
<T> void |
bindSetEntry(NamedParameterNode<Set<T>> iface,
String impl) |
void |
bindSetEntry(String iface,
Node impl) |
void |
bindSetEntry(String iface,
String impl) |
Configuration |
build()
Produce an immutable Configuration object that contains the current
bindings and ClassHierarchy of this ConfigurationBuilder.
|
String |
classPrettyDefaultString(String longName)
Pretty print the default implementation / value of the provided class / NamedParamter.
|
String |
classPrettyDescriptionString(String longName)
Pretty print the human readable documentation of the provided class / NamedParamter.
|
ClassHierarchy |
getClassHierarchy()
Each ConfigurationBuilder instance is associated with a ClassHierarchy.
|
void |
registerLegacyConstructor(ClassNode<?> cn,
ClassNode<?>... args)
Force Tang to treat the specified constructor as though it had an @Inject
annotation.
|
void |
registerLegacyConstructor(ClassNode<?> c,
ConstructorArg... args)
Force Tang to treat the specified constructor as though it had an @Inject
annotation.
|
void |
registerLegacyConstructor(String cn,
String... args)
Force Tang to treat the specified constructor as though it had an @Inject
annotation.
|
void addConfiguration(Configuration c) throws BindException
c - BindExceptionClassHierarchy getClassHierarchy()
void registerLegacyConstructor(ClassNode<?> cn, ClassNode<?>... args) throws BindException
cn - The class the constructor instantiates.args - The types of the arguments taken by the constructor, in declaration order.BindException - if the constructor does not exist, or if it has already been bound as a legacy constructor.void registerLegacyConstructor(String cn, String... args) throws BindException
cn - The full name of the class the constructor instantiates.args - The full names of the types of the arguments taken by the constructor, in declaration order.BindException - if the constructor does not exist, or if it has already been bound as a legacy constructor.void registerLegacyConstructor(ClassNode<?> c, ConstructorArg... args) throws BindException
cn - The class the constructor instantiates.args - The parsed ConstructorArg objects correspdonding to the types of the arguments taken by the constructor, in declaration order.BindException - if the constructor does not exist, or if it has already been bound as a legacy constructor.<T> void bind(String iface, String impl) throws BindException
iface - The full name of the interface that should resolve to impl,
or the NamedParameter to be set.impl - The full name of the implementation that will be used in
place of impl, or the value the NamedParameter should be set to.BindException - If (In the case of interfaces and implementations)
the underlying ClassHierarchy does not recognice iface and
impl as known, valid classes, or if impl is not a in
implementation of iface, or (in the case of NamedParameters
and values) if iface is not a NamedParameter, or if impl
fails to parse as the type the iface expects.void bind(Node iface, Node impl) throws BindException
key - The interface / NamedParmaeter to be bound.value - The implementation / value iface should be set to.BindException - if there is a type checking errorfor a more complete description.<T> void bindConstructor(ClassNode<T> iface, ClassNode<? extends ExternalConstructor<? extends T>> impl) throws BindException
iface - The class or interface to be instantiated.impl - The ExternalConstructor class that will be used to instantiate iface.BindException - If impl does not instantiate a subclass of iface.String classPrettyDefaultString(String longName) throws BindException
BindExceptionString classPrettyDescriptionString(String longName) throws BindException
BindExceptionConfiguration build()
<T> void bindSetEntry(NamedParameterNode<Set<T>> iface, Node impl) throws BindException
BindException<T> void bindSetEntry(NamedParameterNode<Set<T>> iface, String impl) throws BindException
BindExceptionvoid bindSetEntry(String iface, String impl) throws BindException
BindExceptionvoid bindSetEntry(String iface, Node impl) throws BindException
BindException<T> void bindList(NamedParameterNode<List<T>> iface, List implList) throws BindException
iface - The list named parameter to be instantiatedimplList - The list of class or value will be used to instantiated the named parameterBindExceptionvoid bindList(String iface, List implList) throws BindException
BindExceptionCopyright © 2015 The Apache Software Foundation. All rights reserved.