|
|
|
@ -23,7 +23,7 @@ public class BeanRelation {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Map<Long, BeanRelation> relations = new ConcurrentHashMap<>();
|
|
|
|
|
private static final Map<Long, BeanRelation> relations = new ConcurrentHashMap<>();
|
|
|
|
|
private static BeanRelation get() {
|
|
|
|
|
Long userId = 0L;
|
|
|
|
|
BeanRelation relation = relations.get(userId);
|
|
|
|
@ -214,8 +214,8 @@ public class BeanRelation {
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private final static <T extends BaseBean> boolean lastListImpl(List<T> result, BaseBean bean, BaseBean self, Predicate<T> pred,
|
|
|
|
|
Enum<?>[] holders, int index) {
|
|
|
|
|
private static <T extends BaseBean> boolean lastListImpl(List<T> result, BaseBean bean, BaseBean self, Predicate<T> pred,
|
|
|
|
|
Enum<?>[] holders, int index) {
|
|
|
|
|
if (index >= holders.length) {
|
|
|
|
|
if (self == bean) {
|
|
|
|
|
return false;
|
|
|
|
@ -270,10 +270,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设值两个对象之间的关联
|
|
|
|
|
*
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param holder
|
|
|
|
|
* @param relaBean
|
|
|
|
|
*/
|
|
|
|
|
public static void set(BaseBean bean, Enum<?> holder, BaseBean relaBean) {
|
|
|
|
|
if (bean == null || holder == null) {
|
|
|
|
@ -309,11 +305,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 建立对象之间双向引用实现
|
|
|
|
|
*
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param holder
|
|
|
|
|
* @param relaBean
|
|
|
|
|
* @param reverseHolder
|
|
|
|
|
*/
|
|
|
|
|
private static void setImpl(BaseBean bean, Enum<?> holder, BaseBean relaBean, Enum<?> reverseHolder) {
|
|
|
|
|
get(bean).get(holder).add(relaBean);
|
|
|
|
@ -324,8 +315,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 移除对象所有关系
|
|
|
|
|
*
|
|
|
|
|
* @param bean
|
|
|
|
|
*/
|
|
|
|
|
public static void remove(BaseBean bean) {
|
|
|
|
|
if (bean == null) {
|
|
|
|
@ -342,9 +331,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 移除关联
|
|
|
|
|
*
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param holder
|
|
|
|
|
*/
|
|
|
|
|
public static void remove(BaseBean bean, Enum<?> holder) {
|
|
|
|
|
if (bean == null || holder == null) {
|
|
|
|
@ -365,10 +351,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 移除关联的指定对象
|
|
|
|
|
*
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param holder
|
|
|
|
|
* @param relaBean
|
|
|
|
|
*/
|
|
|
|
|
public static void remove(BaseBean bean, Enum<?> holder, BaseBean relaBean) {
|
|
|
|
|
if (bean == null || holder == null) {
|
|
|
|
@ -384,7 +366,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 移除关联关系中的对象,并不会移除关联的对象的关系
|
|
|
|
|
* @param bean
|
|
|
|
|
*/
|
|
|
|
|
public static void erase(BaseBean bean) {
|
|
|
|
|
get().caches.get(bean.getClass()).remove(bean.getId());
|
|
|
|
@ -392,10 +373,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 按指定路径,递归调用lambda表达式,当lambda表达式返回false或路径存在循环则退出递归。
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param fun
|
|
|
|
|
* @param holders
|
|
|
|
|
* @param <T>
|
|
|
|
|
*/
|
|
|
|
|
public static <T extends BaseBean> void recursion(BaseBean bean, Predicate<T> fun, Enum<?>... holders) {
|
|
|
|
|
if (holders.length == 0) {
|
|
|
|
@ -406,11 +383,6 @@ public class BeanRelation {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 按指定路径,递归调用实现。采用广度优先搜索。
|
|
|
|
|
* @param bean
|
|
|
|
|
* @param fun
|
|
|
|
|
* @param holders
|
|
|
|
|
* @param index
|
|
|
|
|
* @param <T>
|
|
|
|
|
*/
|
|
|
|
|
private final static <T extends BaseBean> void recursionImpl(BaseBean bean, Predicate<T> fun,
|
|
|
|
|
Enum<?>[] holders, int index) {
|
|
|
|
|