Skip to content

Allow model to be loaded into a specific ClassLoader #109

@sebersole

Description

@sebersole

We currently have methods to convert the various detail objects (ClassDetails, FieldDetails, ...) into java.lang.reflect forms (Class, Field, ...). But those forms implicitly use the current application classloader (which may or may not be fine).

I think an improvement here would be to move to a paradigm that is more explicit about whether the "copy loading" hapens:

interface ClassDetails {
    ...

    /**
     * Current form
     */
    <X> Class<X> toJavaClass();

    /**
     * New form
     */
    <X> Class<X> toJavaClass(ClassLoading classLoading, SourceModelContext context);
}

interface MemberDetails {
    ...

    /**
     * Current form
     */
    Member toJavaMember();

    /**
     * New form
     */
    Member toJavaMember(Class declaringClass, SourceModelContext context);
}

interface FieldDetails extends MemberDetails {
    ...

    @Override
    Field toJavaMember(Class declaringClass, SourceModelContext context);
}

interface MethodDetails extends MemberDetails {
    ...

    @Override
    Method toJavaMember(Class declaringClass, SourceModelContext context);
}

...

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions