public abstract class GenericScriptProvider<S extends IGenericScript> extends Object implements IGenericScriptFactory<S>
| 限定符和类型 | 类和说明 |
|---|---|
protected class |
GenericScriptProvider.ClassRegister |
| 限定符和类型 | 字段和说明 |
|---|---|
protected org.slf4j.Logger |
_log |
protected boolean |
autoReload
是否自动重载变更代码
|
protected IClassProvider |
classProvider
脚本库目录
|
| 限定符 | 构造器和说明 |
|---|---|
protected |
GenericScriptProvider(IClassProvider classProvider) |
| 限定符和类型 | 方法和说明 |
|---|---|
S |
buildInstance(int id)
创建一个脚本实例
|
S |
buildInstance(int id,
Object... args)
创建一个脚本实例
|
S |
buildInstance(String name)
创建一个脚本实例
|
S |
buildInstance(String name,
Object... args)
创建一个脚本实例
|
protected Set<Class<? extends S>> |
findInstanceAbleScript(Set<Class<? extends S>> scriptClazzs)
查找可实例化的脚本
|
protected <C> C |
getInstacne(Class<C> clazz) |
protected Class<? extends S> |
getScriptClass(int id) |
protected Class<? extends S> |
getScriptClass(String name) |
IClassProvider.State |
getState() |
protected boolean |
isAbstractOrInterface(Class<?> clazz) |
boolean |
isAutoReload() |
protected boolean |
isInstanceAble(Class<? extends S> clazz) |
protected boolean |
isScriptClass(Class<?> clazz)
是否是脚本类
|
protected void |
load()
加载
|
protected S |
newInstance(Class<? extends S> c) |
protected S |
newInstance(Class<? extends S> c,
Object... args) |
protected void |
onClassFind(Class<?> clazz,
GenericScriptProvider.ClassRegister classRegister)
发现类
|
protected abstract void |
onScriptClassFind(Class<? extends S> clazz,
GenericScriptProvider.ClassRegister classRegister)
发现可实例化脚本类
|
protected void |
onScriptLoaded(Set<Class<?>> loadedClasses)
当脚本加载完成后调用此方法,子类可继续过滤查找其它类
|
void |
reload()
重新加载脚本
|
void |
setAutoReload(boolean autoReload) |
protected final org.slf4j.Logger _log
protected final IClassProvider classProvider
protected volatile boolean autoReload
protected GenericScriptProvider(IClassProvider classProvider)
protected boolean isScriptClass(Class<?> clazz)
clazz - protected Set<Class<? extends S>> findInstanceAbleScript(Set<Class<? extends S>> scriptClazzs) throws InstantiationException, IllegalAccessException
scriptClazzs - InstantiationExceptionIllegalAccessExceptionprotected boolean isAbstractOrInterface(Class<?> clazz)
protected <C> C getInstacne(Class<C> clazz)
protected void onClassFind(Class<?> clazz, GenericScriptProvider.ClassRegister classRegister)
clazz - 类型classRegister - 注册器protected abstract void onScriptClassFind(Class<? extends S> clazz, GenericScriptProvider.ClassRegister classRegister)
clazz - 类型classRegister - 注册器protected void onScriptLoaded(Set<Class<?>> loadedClasses) throws Exception
classes - Exceptionpublic final boolean isAutoReload()
public final void setAutoReload(boolean autoReload)
public final IClassProvider.State getState()
public S buildInstance(int id)
IGenericScriptFactorybuildInstance 在接口中 IGenericScriptFactory<S extends IGenericScript>public S buildInstance(int id, Object... args)
IGenericScriptFactorybuildInstance 在接口中 IGenericScriptFactory<S extends IGenericScript>args - 脚本构造参数public S buildInstance(String name)
IGenericScriptFactorybuildInstance 在接口中 IGenericScriptFactory<S extends IGenericScript>public S buildInstance(String name, Object... args)
IGenericScriptFactorybuildInstance 在接口中 IGenericScriptFactory<S extends IGenericScript>args - 脚本构造参数public final void reload()
IGenericScriptFactoryreload 在接口中 IGenericScriptFactory<S extends IGenericScript>Copyright © 2020. All rights reserved.