public final class ResourceFactory
extends java.lang.Object
name规则: 1: "$"有特殊含义, 不能表示"$"资源本身 2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
详情见: https://redkale.org
限定符和类型 | 类和说明 |
---|---|
static interface |
ResourceFactory.ResourceLoader |
限定符和类型 | 字段和说明 |
---|---|
static java.lang.String |
RESOURCE_PARENT_NAME |
限定符和类型 | 方法和说明 |
---|---|
static void |
checkResourceName(java.lang.String name)
检查资源名是否合法
name规则:
1: "$"有特殊含义, 表示资源本身,"$"不能单独使用
2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
|
<A> boolean |
contains(boolean recursive,
java.lang.String name,
java.lang.Class<? extends A> clazz)
判断是否包含指定资源名和资源类型的资源对象
|
ResourceFactory |
createChild()
创建ResourceFactory子节点
|
<A> A |
find(java.lang.Class<? extends A> clazz) |
<A> A |
find(java.lang.String name,
java.lang.Class<? extends A> clazz) |
<A> A |
find(java.lang.String name,
java.lang.reflect.Type clazz) |
<A> A |
findChild(java.lang.String name,
java.lang.Class<? extends A> clazz) |
ResourceFactory.ResourceLoader |
findLoader(java.lang.reflect.Type ft,
java.lang.reflect.Field field) |
ResourceFactory |
findResourceFactory(java.lang.String name,
java.lang.reflect.Type clazz)
查找指定资源名和资源类型的资源对象所在的ResourceFactory, 没有则返回null
|
static java.lang.String |
formatResourceName(java.lang.String name) |
java.util.List<ResourceFactory> |
getChildren()
获取所有ResourceFactory子节点
|
<T> boolean |
inject(java.lang.Object src) |
<T> boolean |
inject(java.lang.Object src,
java.util.function.BiConsumer<java.lang.Object,java.lang.reflect.Field> consumer) |
<T> boolean |
inject(java.lang.Object src,
T attachment) |
<T> boolean |
inject(java.lang.Object src,
T attachment,
java.util.function.BiConsumer<java.lang.Object,java.lang.reflect.Field> consumer) |
<A> java.util.List<A> |
query(java.util.function.BiPredicate<java.lang.String,java.lang.Object> predicate) |
<A> java.util.List<A> |
query(java.lang.Class<? extends A> clazz) |
<A> java.util.List<A> |
query(java.lang.reflect.Type clazz) |
<A> A |
register(A rs)
将对象以name=""注入到资源池中,并同步已被注入的资源
|
<A> A |
register(boolean autoSync,
A rs)
将对象以name=""注入到资源池中,并同步已被注入的资源
|
<A> A |
register(boolean autoSync,
java.lang.Class<? extends A> clazz,
A rs)
将对象指定类型且name=""注入到资源池中
|
<A> A |
register(boolean autoSync,
java.lang.String name,
A rs)
将对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
boolean value)
将boolean对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
byte value)
将byte对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
double value)
将double对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
float value)
将float对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
int value)
将int对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
long value)
将long对象以指定资源名注入到资源池中
|
void |
register(boolean autoSync,
java.lang.String name,
short value)
将short对象以指定资源名注入到资源池中
|
<A> A |
register(boolean autoSync,
java.lang.String name,
java.lang.reflect.Type clazz,
A rs)
将对象以指定资源名和类型注入到资源池中
|
<A> A |
register(java.lang.Class<? extends A> clazz,
A rs)
将对象指定类型且name=""注入到资源池中,并同步已被注入的资源
|
void |
register(ResourceFactory.ResourceLoader rs,
java.lang.reflect.Type... clazzs) |
<T extends java.lang.annotation.Annotation> |
register(ResourceInjectLoader<T> loader) |
<A> A |
register(java.lang.String name,
A rs)
将对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
boolean value)
将boolean对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
byte value)
将byte对象以指定资源名注入到资源池中,并同步已被注入的资源
|
<A> A |
register(java.lang.String name,
java.lang.Class<? extends A> clazz,
A rs)
将对象以指定资源名和类型注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
double value)
将double对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
float value)
将float对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
int value)
将int对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
long value)
将long对象以指定资源名注入到资源池中,并同步已被注入的资源
|
void |
register(java.lang.String name,
short value)
将short对象以指定资源名注入到资源池中,并同步已被注入的资源
|
<A> A |
register(java.lang.String name,
java.lang.reflect.Type clazz,
A rs)
将对象以指定资源名和类型注入到资源池中,并同步已被注入的资源
|
void |
release()
清空当前ResourceFactory注入资源
|
static ResourceFactory |
root()
获取根ResourceFactory
|
public static final java.lang.String RESOURCE_PARENT_NAME
public static ResourceFactory root()
public ResourceFactory createChild()
public java.util.List<ResourceFactory> getChildren()
public void release()
public static void checkResourceName(java.lang.String name)
name规则: 1: "$"有特殊含义, 表示资源本身,"$"不能单独使用 2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
name
- Stringpublic <A> A register(java.lang.Class<? extends A> clazz, A rs)
A
- 泛型clazz
- 资源类型rs
- 资源对象public <A> A register(boolean autoSync, java.lang.Class<? extends A> clazz, A rs)
A
- 泛型autoSync
- 是否同步已被注入的资源clazz
- 资源类型rs
- 资源对象public <A> A register(A rs)
A
- 泛型rs
- 资源对象public <A> A register(boolean autoSync, A rs)
A
- 泛型autoSync
- 是否同步已被注入的资源rs
- 资源对象public void register(java.lang.String name, boolean value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, boolean value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, byte value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, byte value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, short value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, short value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, int value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, int value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, float value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, float value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, long value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, long value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public void register(java.lang.String name, double value)
name
- 资源名value
- 资源值public void register(boolean autoSync, java.lang.String name, double value)
autoSync
- 是否同步已被注入的资源name
- 资源名value
- 资源值public <A> A register(java.lang.String name, A rs)
A
- 泛型name
- 资源名rs
- 资源对象public <A> A register(boolean autoSync, java.lang.String name, A rs)
A
- 泛型autoSync
- 是否同步已被注入的资源name
- 资源名rs
- 资源对象public <A> A register(java.lang.String name, java.lang.Class<? extends A> clazz, A rs)
A
- 泛型name
- 资源名clazz
- 资源类型rs
- 资源对象public <A> A register(java.lang.String name, java.lang.reflect.Type clazz, A rs)
A
- 泛型name
- 资源名clazz
- 资源类型rs
- 资源对象public <A> A register(boolean autoSync, java.lang.String name, java.lang.reflect.Type clazz, A rs)
A
- 泛型autoSync
- 是否同步已被注入的资源name
- 资源名clazz
- 资源类型rs
- 资源对象public <A> boolean contains(boolean recursive, java.lang.String name, java.lang.Class<? extends A> clazz)
A
- 泛型recursive
- 是否遍历父节点name
- 资源名clazz
- 资源类型public ResourceFactory findResourceFactory(java.lang.String name, java.lang.reflect.Type clazz)
name
- 资源名clazz
- 资源类型public <A> A find(java.lang.Class<? extends A> clazz)
public <A> A find(java.lang.String name, java.lang.reflect.Type clazz)
public <A> A find(java.lang.String name, java.lang.Class<? extends A> clazz)
public <A> A findChild(java.lang.String name, java.lang.Class<? extends A> clazz)
public <A> java.util.List<A> query(java.lang.Class<? extends A> clazz)
public <A> java.util.List<A> query(java.lang.reflect.Type clazz)
public <A> java.util.List<A> query(java.util.function.BiPredicate<java.lang.String,java.lang.Object> predicate)
public <T> boolean inject(java.lang.Object src)
public <T> boolean inject(java.lang.Object src, T attachment)
public <T> boolean inject(java.lang.Object src, java.util.function.BiConsumer<java.lang.Object,java.lang.reflect.Field> consumer)
public <T> boolean inject(java.lang.Object src, T attachment, java.util.function.BiConsumer<java.lang.Object,java.lang.reflect.Field> consumer)
public static java.lang.String formatResourceName(java.lang.String name)
public <T extends java.lang.annotation.Annotation> void register(ResourceInjectLoader<T> loader)
public void register(ResourceFactory.ResourceLoader rs, java.lang.reflect.Type... clazzs)
public ResourceFactory.ResourceLoader findLoader(java.lang.reflect.Type ft, java.lang.reflect.Field field)