toClass method
Converts this ClassType into a Class instance used by Jetleaf.
Logic:
- If declaration is provided, returns
Class.declared(declaration, pd)
. - If name is provided, returns
Class.forName(name, pd, package)
. - Otherwise, returns a generic
Class<T>
with the given pd and package.
Example:
final classRef = ClassType(name: 'UserService');
final userClass = classRef.toClass();
final declaredClassRef = ClassType(declaration: someTypeDeclaration);
final declaredClass = declaredClassRef.toClass();
Implementation
Class<T> toClass() {
if (declaration != null) {
return Class.declared(declaration!, pd ?? ProtectionDomain.current());
}
if (name != null) {
return Class.forName(name!, pd ?? ProtectionDomain.current(), package);
}
return Class<T>(pd ?? ProtectionDomain.current(), package);
}