UTIL_TypeResolver.INT_ClassTypeResolver
Class
global interface UTIL_TypeResolver.INT_ClassTypeResolverKnown Derived Types: UTIL_TypeResolver.BaseClassResolver, UTIL_TypeResolver.BaseClassResolver.resolveType(String)
Interface for resolving Type objects from class names and chaining resolvers. Custom resolvers must be exception-safe. The default chain implementation (PackageClassResolver.resolveType) delegates to nextResolver?.resolveType(...) via the ?? operator and DOES NOT catch and fall through on exception. A custom resolver that throws will propagate the exception to the caller, bypassing any later resolver in the chain. Implementations should either return null for "I cannot resolve this — try the next resolver" OR catch their own exceptions and convert them to null before returning.
Since: 1.0
Methods
| Method | Description |
|---|---|
| global abstract Type resolveType(String typeName) | Resolves a Type object from a class name. |
| global abstract UTIL_TypeResolver.INT_ClassTypeResolver setNext(UTIL_TypeResolver.INT_ClassTypeResolver nextTypeResolver) | Sets the next resolver in the chain. |
Method Details
resolveType
global abstract Type resolveType(String typeName)Resolves a Type object from a class name. Returning null signals "I cannot resolve this — chain falls through to the next resolver." Throwing propagates to the caller without consulting later resolvers — see the exception-safety contract on the interface ApexDoc.
Parameters:
typeName(String) - The name of the class to resolve.
Returns: Type - The resolved Type object, or null if not found.
Since: 1.0
Example:
INT_ClassTypeResolver resolver = new UTIL_TypeResolver.PackageClassResolver();
Type resolvedType = resolver.resolveType('UTIL_TypeResolver_TEST.MyPackagePrivateClass');setNext
global abstract UTIL_TypeResolver.INT_ClassTypeResolver setNext(UTIL_TypeResolver.INT_ClassTypeResolver nextTypeResolver)Sets the next resolver in the chain.
Parameters:
nextTypeResolver(UTIL_TypeResolver.INT_ClassTypeResolver) - The next resolver to try if this one fails.
Returns: UTIL_TypeResolver.INT_ClassTypeResolver - The next resolver in the chain.
Since: 1.0
Example:
INT_ClassTypeResolver resolver = new UTIL_TypeResolver.PackageClassResolver();
INT_ClassTypeResolver nextResolver = new CustomClassResolver();
resolver.setNext(nextResolver);