lierachyIds,
+ RetrieveDefaultParam param);
+ /**
+ * 使用不加锁的方式检索指定ID的实体数据,检索出来的数据带着所有的子表数据。
+ * 注意,通过此方法检索得到的数据不应进行任何修改,强行修改可能导致异常,如需修改请使用{@link #modify(IChangeDetail)}。
+ *
如需对检索行为进行更精细化的控制,请使用{@link #retrieve(String, RetrieveParam)}
+ *
+ * @param dataID 实体数据的唯一标识
+ * @return 检索的返回结果,包含实体数据和加锁是否成功等,实体数据中带着所有子表数据信息,子表数据信息可从{@link IEntityData#getChilds()}的方法中获取
+ *
+ * @see #retrieve(String, RetrieveParam)
+ */
+ IEntityData retrieve(String dataID);
+
+ /**
+ * 加锁并检索数据。如果加锁失败会抛出异常。
+ * @param dataId
+ * @return 检索结果
+ */
+ EditResult edit(String dataId);
+
+ /**
+ * 检索指定ID的视图对象主表数据,可指定是否加锁
+ *
注意,如果加锁失败,此方法不会抛出异常,而是通过将返回值上的{@link RespectiveRetrieveResult#getLockFailed()}置为false代表加锁失败。
+ *
注意,通过此方法检索得到的数据不应进行任何修改,强行修改可能导致异常,如需修改请使用{@link #modify(IChangeDetail)}。
+ *
如果希望在加锁失败后抛出异常以中止后续代码逻辑,应使用{@link #edit(String)}方法,或增加逻辑进行判断。
+ *
在自定义动作中执行实体动作前通常需要先进行检索,如果实体动作中可能修改数据,
+ * 那么推荐使用{@link #edit(String)}方法进行加锁并检索,而不是retrieve方法。
+ * 因为{@code retrieve}方法默认不进行加锁这一点容易被开发人员忽略,同时也不容易通过测试发现问题。
+ *
+ * @param dataId 实体数据的唯一标识
+ * @param retrieveParam 检索参数
+ * @return 检索的返回结果
+ *
+ * @see #edit(String)
+ */
+ IEntityData retrieve(String dataId, RetrieveParam retrieveParam);
+
+ /**
+ * 检索一组指定ID的视图对象主表数据,加锁的方式可指定,检索参数可参考{@link #retrieve(String, RetrieveParam)}
+ *
注意,通过此方法检索得到的数据不应进行任何修改,强行修改可能导致异常,如需修改请使用{@link #modify(IChangeDetail)}。
+ *
+ * @param dataIds 一组实体数据的唯一标识
+ * @param retrieveParam 检索参数
+ * @return 检索的返回结果
+ */
+ java.util.List retrieve(java.util.ArrayList dataIds,RetrieveParam retrieveParam);
+
+ /**
+ * 检索指定ID的视图对象主表数据,加锁的方式可指定检索,检索参数可参考{@link #retrieve(String, RetrieveParam)}
+ * 注意,通过此方法检索得到的数据不应进行任何修改,强行修改可能导致异常,如需修改请使用{@link #modify(IChangeDetail)}。
+ *
+ * 下面通过一个例子说明{@code nodeCodes}和{@code hierachyIds}两个参数如何构造。
+ *
+ * 假设有一个业务实体,其主表为A,节点编号为A,A下有从表B,节点编号为B,B下有从从表C,节点编号为C。
+ *
+ * 如果需要检索一条B(从表)实体数据,此时两个参数分别应为:
+ *
- {@code nodeCodes}:{@code ArrayList nodeCodes=new ArrayList();nodeCodes.add("B");}
+ *
- {@code lierachyIds}:{@code ArrayList lierachyIds=new ArrayList();lierachyIds.add("A实体数据Id");}
+ *
+ * 如果需要检索一条C(从从表)实体数据,此时两个参数分别应为:
+ *
- {@code nodeCodes}:{@code ArrayList nodeCodes=new ArrayList();nodeCodes.add("B");nodeCodes.add("C");}
+ *
- {@code IdsachyIds}:{@code ArrayList lierachyIds=new ArrayList();lierachyIds.add("A实体数据Id");lierachyIds.add("B实体数据Id");}
+ * 再下层的,以此类推
+ * @param nodeCodes 检索数据的从(从)表的实体编号列表
+ * @param lierachyIds 检索从(从)表数据的所属实体数据的唯一标识列表
+ * @param retrieveParam 检索参数
+ * @return 检索的返回结果
+ */
+ IEntityData retrieveChild(java.util.ArrayList nodeCodes, java.util.ArrayList lierachyIds, RetrieveParam retrieveParam);
+
+ /**
+ * 检索一组指定ID的视图对象主表数据,根据参数{@code ids}参数确认个数,可指定加锁方式
+ *
+ *其余参数可参考{@link #retrieveChild(ArrayList, ArrayList, RetrieveParam)}
+ *
+ * @param nodeCodes 检索数据的从(从)表的实体编号列表
+ * @param lierachyIds 检索从(从)表数据的所属实体数据的唯一标识列表
+ * @param ids 要检索数据从表或从从表的数据id列表
+ * @param retrieveParam 检索参数
+ * @return
+ */
+ ArrayList retrieveChild(java.util.ArrayList nodeCodes, java.util.ArrayList lierachyIds, ArrayList ids,RetrieveParam retrieveParam);
+
+ /**
+ * 将业务实体数据的变更集提交到内存。若想将变更集提交到数据库,需要在调用Modify方法之后,再调用Save方法。
+ * 使用变更集既可以修改主表数据,也可以修改从(从)表数据。
+ *
变更集的构造方法可以点击这里查看。
+ *
+ * @param change 实体数据的变更集
+ */
+ void modify(IChangeDetail change);
+
+ /**
+ * 根据过滤条件查询视图对象主表数据。
+ *
+ *
该方法不会对数据进行加锁(相比{@link #retrieve(String, RetrieveParam)})。
+ *
返回结果不包含任何子表数据,也不包含未持久化的修改。
+ *
数据量过大时可能导致性能问题,建议使用带过滤条件的{@link #query(EntityFilter)}方法进行查询。
+ *
对查询结果进行任何修改都{@code 不会}被持久化,如需修改数据请使用{@link #modify(IChangeDetail)}。
+ *
+ * @return 业务实体主表数据集合,不含任何子表
+ *
+ * @see QueryResult
+ */
+ QueryResult query(EntityFilter filter);
+ /**
+ * 根据过滤条件查询视图对象子表数据。
+ *
+ *
该方法不会对数据进行加锁(相比{@link #retrieve(String, RetrieveParam)})。
+ *
返回结果不包含任何子表数据,也不包含未持久化的修改。
+ *
数据量过大时可能导致性能问题,建议设置滤条件进行查询。
+ *
对查询结果进行任何修改都{@code 不会}被持久化,如需修改数据请使用{@link #modify(IChangeDetail)}。
+ *
+ * @param nodeCodes 节点编号列表,此处传值可参考{@link #retrieveChild(ArrayList, ArrayList, RetrieveParam)}
+ * @param filter 查询条件
+ * @return 业务实体子表本身数据集合
+ *
+ * @see QueryResult
+ */
+ QueryResult queryChild(List nodeCodes,EntityFilter filter);
+
+ /**
+ * 根据过滤条件查询视图对象子表数据。
+ *
+ * 该方法不会对数据进行加锁(相比{@link #retrieve(String, RetrieveParam)})。
+ *
返回结果不包含任何子表数据,也不包含未持久化的修改。
+ *
数据量过大时可能导致性能问题,建议设置滤条件进行查询。
+ *
对查询结果进行任何修改都{@code 不会}被持久化,如需修改数据请使用{@link #modify(IChangeDetail)}。
+ *
+ * @param nodeCode 要查询的从表或者从从表等的节点编号
+ * @param filter 查询条件
+ *
+ * @return 业务实体子表本身数据集合
+ *
+ * @see QueryResult
+ */
+ QueryResult queryChild(String nodeCode,EntityFilter filter);
+
+ QueryResult queryWithAuthInfo(EntityFilter filter, AuthInfo authInfo);
+
+ /**
+ *暂未支持
+ * @param param
+ * @param pageInfo
+ * @param extendCond
+ * @return
+ */
+ java.util.List query(String param, Pagination pageInfo, String extendCond);
+
+ /**
+ * 将指定ID的业务实体数据的删除变更集提交到内存。若需要将该删除变更集提交到数据库,需要在调用{@link #delete(String)}方法后,再调用{@link #save()}方法。
+ *
+ * @param dataID 实体数据的唯一标识
+ */
+ void delete(String dataID);
+
+ /**
+ * 批量将指定ID的业务实体数据的删除变更集提交到内存。若需要将该删除变更集提交到数据库,需要在调用{@link #delete(String)}方法后,再调用{@link #save()}方法。
+ *
+ * @param dataIds 实体数据的唯一标识的集合
+ */
+ void delete(java.util.ArrayList dataIds);
+
+ /**
+ * 将指定ID的业务实体数据的删除变更集提交到内存,并调用用{@link #save()}方法,将该删除变更集提交到数据库。
+ *
+ * @param dataID 实体数据的唯一标识
+ */
+ void deleteAndSave(String dataID);
+
+ /**
+ * 删除从(从)表数据
+ *
+ * 参数nodeCodes、hierachyIdLis设置可参考{@link #retrieveChild(ArrayList, ArrayList, RetrieveParam)}方法中的nodeCodes以及lierachyIds参数设置
+ * @param nodeCodes 要删除数据的从(从)表的实体编号列表
+ * @param hierachyIdList 要删除数据的从(从)表的所属实体数据的唯一标识列表
+ * @param ids 要删除的从(从)表数据的唯一标识列表
+ */
+ void deleteChild(java.util.List nodeCodes, java.util.List hierachyIdList, java.util.List ids);
+
+ /**
+ * 保存数据:将服务器端的变更数据保存到数据库中。
+ */
+ void save();
+
+ /**
+ * 创建视图对象的主对象数据实例
+ *
+ * @return 创建的视图对象的主表数据实例
+ *
+ * @see IEntityData
+ */
+ IEntityData createData();
+
+ /**
+ * 创建新的视图对象的子对象数据实例。
+ *
+ * @param childCode 子表对象节点编号
+ * @return 创建的视图对象的子对象数据实例。
+ *
+ * @see IEntityData
+ */
+ IEntityData createData(String childCode);
+
+ /**
+ * 根据指定的帮助查询参数获取帮助数据
+ *
+ * @param codeName 设有帮助字段的视图对象的节点编号
+ * @param labelId 帮助字段标签
+ * @param queryParam 帮助查询参数
+ * @return 查询获取到的帮助数据。
+ *
+ * @see LookupResult
+ */
+ LookupResult getElementHelp(String codeName, String labelId, String queryParam);
+
+ /**
+ * 根据指定的帮助查询参数获取帮助数据
+ *
+ * @param codeName 设有帮助字段的视图对象的节点编号
+ * @param labelId 帮助字段标签
+ * @param queryParam 帮助查询参数
+ * @return 查询获取到的帮助数据
+ *
+ * @see LookupResult
+ */
+ LookupResult getElementHelp(String codeName, String labelId, LookupQueryParam queryParam);
+
+ /**
+ * 获取默认值类类型
+ */
+ java.lang.Class getDefaultValueType();
+
+ /**
+ * 获取变更集类类型
+ */
+ java.lang.Class getChangeInfoType();
+
+ /**
+ * 获取请求类类型
+ */
+ java.lang.Class getRequsetType();
+
+
+ /**
+ * 将客户端发起的请求json反序列化RequestInfo对象
+ *
+ * @param requestStr 客户端发起的请求json串
+ * @param contex 序列化反序列化上下文
+ * @return 反序列化后的请求实体
+ *
+ * @see RequestInfo
+ */
+ RequestInfo buildRequest(String requestStr, CefSerializeContext contex);
+ /**
+ * 对于客户端的请求,创建相应的响应信息对象
+ *
+ * @return 返回响应的信息
+ *
+ * @see ResponseInfo
+ */
+ ResponseInfo createResponse();
+
+ /**
+ * 处理客户端发起的请求
+ * @param request 客户端发起的请求{@link ResponseInfo}对象
+ */
+ void dealRequest(RequestInfo request);
+
+ /**
+ * 处理视图对象上设置的变量的变更集
+ *
+ * @param change 变量变更信息
+ * 变更集的构造方法可以点击这里查看。
+ * @see IChangeDetail
+ */
+ void dealVariable(IChangeDetail change);
+
+ /**
+ * 构造响应信息
+ *
+ * @param returnValue 服务端返回的响应信息
+ * @return 服务端响应实体信息
+ *
+ * @see ResponseInfo
+ */
+ ResponseInfo buildResponse(Object returnValue);
+
+ /**
+ * 创建变量管理类
+ *
+ * @return 变量管理接口实例
+ *
+ * @see IVariableManager
+ */
+ IVariableManager createVariableManager();
+
+ /**
+ * 国际化资源
+ *
+ *
可以通过{@link ModelResInfo}拿到想要的国际化资源项
+ * @return 国际化资源信息
+ *
+ * @see ModelResInfo
+ * */
+ ModelResInfo getModelInfo();
+
+ /**
+ * 根据检索条件获取到指定数据Id的数据
+ *
+ * @param dataId 要检索的数据id
+ * @parm param 检索参数
+ * @return 根据检索条件获取到的指定
+ */
+ RetrieveResult retrieveWithChildPagination(String dataId, com.inspur.edp.bff.api.param.retrieve.RetrieveParam param);
+
+ /**
+ * 按索引检索子表
+ *
+ * @param nodeCodes
+ * @param hierachyIds
+ * @param pagination
+ * @return
+ */
+ RetrieveChildResult retrieveChildByIndex(ArrayList nodeCodes, ArrayList hierachyIds, Pagination pagination);
+
+ /**
+ * 执行自定义动作
+ *
+ * @param actionCode 动作编号
+ * @param params 参数以及参数值字典,带有顺序
+ * @return 返回执行动作后的值
+ */
+ Object executeCustomAction(String actionCode, LinkedHashMap params);
+
+ /**
+ * 创建并保存一条数据,数据直接保存到数据库,并重新检索到缓存中。
+ *
+ * @param data 空的视图对象实体数据
+ * @return 新增保存后的新数据
+ * 内部重新调用{@link #retrieve(String)}方法,将数据从数据库检索出来,返回的{@link IEntityData}和数据库中保持一致。
+ * @see IEntityData
+ */
+ IEntityData createAndSave(IEntityData data);
+
+ /**
+ * 修改并保存一条数据,数据直接保存到数据库,并重新检索到缓存中。
+ *
+ * @param data 要修改的实体数据
+ * @return 修改保存后的新数据
+ *
内部重新调用{@link #retrieve(String)}方法,将数据从数据库检索出来,返回的{@link IEntityData}和数据库中保持一致。
+ * @see IEntityData
+ */
+ IEntityData modifyAndSave(IEntityData data);
+
+ /**
+ * 批量删除数据,并保存
+ * @param dataIds 要删除保存数据的集合
+ */
+ void deleteAndSave(ArrayList dataIds);
+
+ /**
+ * 是否是解析型
+ * @return 解析型的标识
+ */
+ boolean isEngine();
+
+ /**
+ * 序列化服务端响应
+ * @param responseInf 服务端响应对象
+ * @param contex 序列化反序列化上下文
+ * @return 服务端响应的json结构
+ */
+ String serializeResponseInfo(ResponseInfo responseInf, CefSerializeContext contex);
+
+
+ /**
+ * 获取Headers
+ * @return
+ */
+ List getAcceptHeaderNames();
+
+ /**
+ * 给Header赋值
+ * @param name
+ * @param value
+ */
+ void setHeader(String name, String value);
+
+ /**
+ * 将vo变更集转换为be变更集
+ * @param voChanges vo上的变更集
+ * @return 转换后的be变更集集合
+ */
+ ArrayList convertChangefromVo(ArrayList voChanges);
+
+ /**
+ * 将be变更集转换为vo变更集
+ * @param sourceChanges be变更集
+ * @return 转换后的vo变更集
+ */
+ ArrayList convertChange2Vo(ArrayList sourceChanges);
+
+ /**
+ * 客户端发起请求,给当前session枷锁
+ */
+ void onBeforeRequest();
+
+ /**
+ * 释放当前session的锁
+ */
+ void onFinallyRequest();
+
+ /**
+ * 默认值集合{@link ArrayList}的反序列化
+ *
+ * 返回后的默认值,详情可参考{@link #retrieveDefault(VoDefaultValue)}方法中的{@link VoDefaultValue}
+ * @param nodeCodes 视图对象的节点编号集合
+ * @param nodeJson 默认值json结构
+ * @return 反序列化后的默认值集合
+ */
+ ArrayList deserializeVoDefaultValues(List nodeCodes,String nodeJson);
+
+ /**
+ * 单个{@link VoDefaultValue}默认值的反序列化
+ * @param nodeCodes 视图对象的节点编号集合
+ * @param nodeJson 默认值json结构
+ * @return
+ */
+ VoDefaultValue deserializeVoDefaultValue(List nodeCodes,String nodeJson);
+
+ /**
+ * 视图对象主表默认值参数{@link RetrieveDefaultParam}的反序列化
+ *
+ * @param nodeJson 默认值参数{@link RetrieveDefaultParam}json结构
+ * @return 反序列化后的视图对象主表默认值参数
+ *
+ * @see RetrieveDefaultParam
+ */
+ RetrieveDefaultParam deserializerRetrieveDefaultParam(String nodeJson);
+
+ /**
+ *视图对象从(从)表默认值参数{@link RetrieveDefaultParam}的反序列化
+ *
+ * @param nodeCodes 视图对象的节点编号集合,该参数的设置规则可参考{@link #retrieveChild(ArrayList, ArrayList, RetrieveParam)}中的第一个参数设置
+ * @param nodeJson 默认值参数{@link RetrieveDefaultParam}json结构
+ * @return 反序列化后的视图对象从(从)表默认值参数
+ *
+ * @see RetrieveDefaultParam
+ */
+ RetrieveDefaultParam deserializerRetrieveDefaultParam(List nodeCodes,String nodeJson);
+
+ /**
+ * 获取时间戳上下文
+ * @return
+ */
+ TimeStampContext getTimeStampContext();
+
+ /**
+ * 给时间戳上下文赋值
+ * @param value
+ */
+ void setTimeStampContext(TimeStampContext value);
+
+ /**
+ * 分级码去重,支持权限过滤
+ * @param fjnPropertyName 分级码字段标签
+ * @param filter 过滤条件
+ * @param parentLayer 父级级数
+ * @param authInfo 权限信息
+ * @return
+ */
+ List getDistinctFJM(String fjnPropertyName, EntityFilter filter, Integer parentLayer,AuthInfo authInfo);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..2e9c14f0412430504187ac2458f45ddc8c065b9c
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerContext.java
@@ -0,0 +1,315 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager;
+
+import com.inspur.edp.bef.api.lcp.IStandardLcp;
+import com.inspur.edp.bff.api.dataprocessor.IChangeConvertor;
+import com.inspur.edp.bff.api.dataprocessor.IDataConvertor;
+import com.inspur.edp.bff.api.dataprocessor.IDefaultValueConvertor;
+import com.inspur.edp.bff.api.dataprocessor.IEntityPropertyMapper;
+import com.inspur.edp.bff.api.dataprocessor.IFilterFieldConvertor;
+import com.inspur.edp.bff.api.manager.assembler.IAssemblerManager;
+import com.inspur.edp.bff.api.manager.assembler.IChangeMapperAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IDataMapperAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendDeleteAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendModifyAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendQueryAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendRetrieveAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendRetrieveDefaultAssembler;
+import com.inspur.edp.bff.api.manager.assembler.IExtendSaveAssembler;
+import com.inspur.edp.cef.spi.entity.resourceInfo.ModelResInfo;
+import com.inspur.edp.cef.entity.changeset.IChangeDetail;
+import com.inspur.edp.cef.entity.entity.ICefData;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+import com.inspur.edp.bff.api.extend.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * FSManager管理类上下文接口
+ */
+public interface IFSManagerContext {
+ /**
+ * 获取当前的FSManager管理类实例
+ *
+ * @return FSManager管理类实例
+ * @see IFSManager
+ */
+ IFSManager getBffManager();
+
+ /**
+ * 获取当前视图对象主表的数据源类型:{@link SourceType#Be},{@link SourceType#Qo}。
+ *
+ * @return 当前视图对象主表的数据源类型
+ *
+ * @see SourceType
+ */
+ SourceType getMainSourceType();
+
+ /**
+ * 获取扩展动作管理类实例
+ *
+ * - vo上扩展动作目前有:新增前,新增,新增后,检索前,检索,检索后,查询前,查询,查询后,修改前,修改,修改后,数据Mapping,数据反向mapping,变更集Mapping,变更集反向Mapping,
+ * 删除前/批量删除前,删除/批量删除,删除后/批量删除后,保存前,保存后等);分为8大类:新增,检索,查询,修改,数据Mapping,变更集Mapping,删除,保存等,23个动作。
+ *
- 新增管理类{@link IExtendRetrieveDefaultAssembler};
+ *
- 检索管理类{@link IExtendRetrieveAssembler};
+ *
- 查询管理类{@link IExtendQueryAssembler};
+ *
- 修改管理类{@link IExtendModifyAssembler}
+ *
- 删除管理类{@link IExtendDeleteAssembler};
+ *
- 变更集管理类{@link IChangeMapperAssembler};
+ *
- 数据映射管理类{@link IDataMapperAssembler};
+ * @return 返回扩展动的管理器实例
+ *
+ * @see IAssemblerManager
+ */
+
+ IAssemblerManager getAssemblerManager();
+
+ /**
+ * 判断保存状态,是否是保存前状态
+ * @return
+ */
+ boolean getIsBeforeSaving();
+
+ /**
+ * 获取BEF 的Lcp(Local Consumer Proxy,本地消费者代理),通常说的{@link IStandardLcp}
+ * 这里说的lcp指的是根据后端BE创建的VO才会获取到,虚拟VO是没有其对应的lcp的,虚拟VO的逻辑需要开发人员按照VO上的扩展动作实现其CURD
+ *
+ * @return 得到的BE的LCP
+ */
+ IStandardLcp getLcp();
+
+ /**
+ * 获取一组lcp的实例,key对应的是be的功能标识:configid,详情可参考{@link IFSManagerFactory}介绍;value对应的是vo对应的be的本地服务代理lcp:{@link IStandardLcp}。
+ *
通常该方法会在组合vo中应用,组合vo中由多个vo组装而成,每个vo对应的be是不同的,因此在这种情况,会根据不同的vo取对应的be实现CURD。
+ * @return
+ */
+ HashMap getLcps();
+
+ /**
+ * 是否启用权限
+ * @param useAuth 启用权限参数
+ */
+ void setUseAuth(boolean useAuth);
+
+ /**
+ * 获取一组数据源的配置信息,数据源类型包括:{@link SourceType#Be},{@link SourceType#Qo}
+ * @return 一组数据源的配置信息
+ */
+ ArrayList getSourceConfigs();
+
+ /**
+ * 获取变更集转换器,将vo变更集转换为be变更集
+ *
+ * @return 得到的变更转换器实例。
+ *
+ * @see IChangeDetail
+ */
+ IChangeConvertor getChangeConvertor();
+
+ /**
+ *
+ * @return
+ */
+ IEntityPropertyMapper getRootEntityPropertyMapper();
+
+ /**
+ * 获取数据转换器,将vo数据转换为be数据。
+ * @return 得到的数据转换器
+ *
+ * @see IDataConvertor
+ */
+ IDataConvertor getDataConvertor();
+
+ /**
+ * 过滤条件转换器
+ *
+ * @return 当前vo上的过滤条件转换器
+ *
+ * @see IFilterFieldConvertor
+ */
+ IFilterFieldConvertor getFilterConvertor();
+ /**
+ * 获取默认值转换器
+
+ * @return 当前vo上的默认值转换器
+ *
+ * @see IDefaultValueConvertor
+ */
+ IDefaultValueConvertor getDefaultValueConvertor();
+ /**
+ * 执行自定义操作,返回操作执行结果。
+ *
+ * @param action 要执行的操作实例
+ * @return 得到的操作执行结果
+ */
+ TResult executeAction(IFSAction action);
+
+ /**
+ * 执行自定义操作,返回操作执行结果。
+ * @param action 执行的动作类实例
+ * @param actionId 动作id
+ * @param actionCode 动作编号
+ * @param parameters 参数
+ * @param autoSave 是否自动保存
+ * @param 得到的操作执行结果
+ * @return
+ */
+ TResult executeAction(IFSAction action ,String actionId, String actionCode
+ , Map parameters,boolean autoSave);
+ /**
+ * 执行自定义操作,返回操作执行结果。
+ * @param action 执行的动作类实例
+ * @param actionId 动作id
+ * @param actionCode 动作编号
+ * @param parameters 参数
+ * @param 得到的操作执行结果
+ * @return
+ */
+ TResult executeAction(IFSAction action ,String actionId, String actionCode
+ , Map parameters);
+
+ void processResponse();
+ /**
+ * 创建新的视图对象主对象实体数据实例。
+ *
+ * @return 新的视图对象实体数据实例
+ *
+ * @see IEntityData
+ */
+ IEntityData createData();
+
+ /**
+ * 新的视图对象子对象实体数据实例
+ * @param objectCode 子对象编号
+ *
+ @return 得到的视图对象子对象实体数据实例
+ */
+ IEntityData createData(String objectCode);
+
+ /**
+ * 获取与BE对应的VM对象编号。
+ *
+ * @param beObjectCode BE对象编号
+ * @return 得到的VM对象编号
+ */
+ String getVMCodeFromBE(String beObjectCode);
+
+ /**
+ * 获取与VM对应的BE对象编号
+ *
+ * @param vmObjectCode VM对象编号
+ * @return 对应的BE对象编号
+ */
+ String getBECodeFromVM(String vmObjectCode);
+
+ /**
+ * 获取vo元数据id
+ * @return
+ */
+ String getVoId();
+
+ /**
+ *
+ * @param value
+ */
+ void setVoId(String value);
+
+ /**
+ * 获取变量实体数据
+ * @return 当前vo上的变量实体数据
+ *
+ * @see ICefData
+ */
+ ICefData getVariableData();
+
+ /**
+ * 获取变量内部变更
+ * @return
+ *
+ * @see IChangeDetail
+ */
+ IChangeDetail getVariableInnerChange();
+
+ /**
+ * 获取与VM对应的前端编号
+ * @param frontVoCode
+ * @return 得到的VM对象编号
+ */
+ String getVoCode(String frontVoCode);
+
+ /**
+ * 国际化资源项
+ *
+ * @return
+ *
+ * @see ModelResInfo
+ */
+ ModelResInfo getModelResourceInfo();
+
+ /**
+ *翻译后的实体名称
+ *
+ * @param nodeCode 视图对象节点编号
+ * @return 国际化实体名称
+ */
+ String getEntityI18NName(String nodeCode);
+ /**
+ * 翻译后的属性名称
+ *
+ * @param nodeCode 视图对象节点编号
+ * @param labelID 属性字段的标签
+ * @return 国际化属性名称
+ */
+ String getPropertyI18NName(String nodeCode, String labelID);
+ /**
+ * 翻译后的关联带出字段名称
+ *
+ * @param nodeCode 视图对象节点编号
+ * @param labelID 属性字段的标签
+ * @param refLabelID 关联属性字段的标签
+ * @return 国际化关联带出字段名称
+ */
+ String getRefPropertyI18NName(String nodeCode, String labelID, String refLabelID);
+ /**
+ * 翻译后的枚举显示值
+ *
+ * @param nodeCode 视图对象节点编号
+ * @param labelID 属性字段的标签
+ * @param enumKey 枚举值
+ * @return 国际化枚举值
+ */
+ String getEnumValueI18NDisplayName(String nodeCode, String labelID, String enumKey);
+ /**
+ * 翻译后的唯一性约束提示信息
+ * @param conCode 视图对象节点编号
+ * @param nodeCode 唯一性约束编号
+ * @return
+ */
+ String getUniqueConstraintMessage(String nodeCode, String conCode);
+
+ /**
+ * 获取VO运行时定制扩展接口类
+ *
+ * @return
+ *
+ * @see IBffManagerExtend
+ */
+ List getExtList();
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerFactory.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc46b391619e2162df67b80d6356d6c490cae64d
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/IFSManagerFactory.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager;
+
+/**
+ * FSManager工厂接口,提供了创建FSManager的几种方式。
+ * 此接口中的方法大部分需要提供configId参数。下面简单介绍一下configId:
+ *
- configId是一个VO元数据的唯一标识,除一些非常早期版本的VO元数据外,一般为元数据命名空间+元数据编号的形式,如com.inspur.gs.xxx.vo.xxx;
+ *
- VO元数据作为一个元数据,本身也有一个UUID形式的元数据ID,这个ID也是唯一的,configId与元数据ID的主要区别在于configId更具可读性,
+ * 此接口中也有一些成对的方法,功能一致但参数分别为元数据Id和configId;
+ *
- 如果你需要创建一个不是你开发的VO的Lcp方法时,需要提供的configId或元数据Id应向VO元数据的开发人员索要;
+ *
- 如果你是VO的开发人员,你被询问VO元数据的configId是什么时,VO设计器上提供了属性显示当前BE的configId,你可以从中复制出来发给对方。
+ * 下面是此接口的一个常见用法:
+ *
+ * IFsManager manager = SpringBeanUtils.getBean(IFSManagerFactory.class).getFSManager("xxx");
+ * manager.retrieve("xxx");
+ *
+ * 如果此类的方法报错,大部分原因都是因为所调用的VO未正确部署,详细的排查方法可以点击这里查看
+ */
+public interface IFSManagerFactory {
+
+ /**
+ * 根据功能标识configid创建FSManager。
+ *
+ * 功能与{@link #getFSManagerByVOId(String)}一致,仅参数不同。
+ *
+ * @param fsType VO的配置标识:configid
+ * @return 本地消费代理接口
+ *
+ * @see IFSManager
+ * @see #getFSManagerByVOId(String)
+ */
+ IFSManager getFSManager(String fsType);
+
+ /**
+ * 根据元数据ID创建FSManager。
+ *
+ * 功能与{@link #getFSManager(String)}一致,仅参数不同。
+ *
+ * @param voId VO元数据ID
+ * @return 本地消费代理接口
+ *
+ * @see IFSManager
+ * @see #getFSManager(String)
+ */
+ IFSManager getFSManagerByVOId(String voId);
+
+ /**
+ * 根据元数据ID创建FSManager。
+ *
+ * 功能与{@link #getFSManager(String)}一致,仅参数不同。
+ *
+ * @param voId VO元数据ID
+ * @return 本地消费代理接口
+ *
+ * 目前仅适用于业务流FSManager的创建
+ * @see IFSManager
+ * @see #getFSManager(String)
+ */
+ IFSManager getFSManagerByVOIDIgnoreProcessCode(String voId);
+ /**
+ 连接,创建功能Session实例。
+
+ @param fsType VO功能标识:configid
+ @param parentFuncSessionID 父功能SessionID
+ @return 得到的新功能SessionID
+ */
+ String connect(String fsType, String parentFuncSessionID);
+ /**
+ 连接,创建功能Session实例。
+
+ @param fsType VO功能标识:configid
+ @return 得到的新功能SessionID
+ */
+ String connect(String fsType);
+ //void tryConnect();
+
+ /**
+ * 根据配置Id和sessionId创建Lcp
+ * @deprecated 应使用 {@link #getFSManager(String)} (String)}或 {@link #getFSManagerByVOId(String)} (String)}
+ *
+ * @param fsType VO的配置标识:configid
+ * @param funcSessionID 功能sessionId
+ * @return 本地消费代理接口
+ *
+ * @see #getFSManager(String) (String)
+ * @see #getFSManagerByVOId(String) (String)
+ */
+ IFSManager getFSManager(String fsType, String funcSessionID);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/QueryResult.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/QueryResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..fe41f7239361624558e7da89bb3e8d838c57a60e
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/QueryResult.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager;
+
+import com.inspur.edp.cef.entity.dependenceTemp.Pagination;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.List;
+
+public class QueryResult {
+
+ private List result;
+
+ /**
+ * 根据过滤条件查询出来的主表数据结果集
+ * @return
+ */
+ public final List getResult()
+ {
+ return result;
+ }
+ public final void setResult(List value)
+ {
+ result = value;
+ }
+ private Pagination pagination;
+
+ /**
+ * 根据过滤条件查询出来的主表数据分页信息
+ * @return
+ */
+ public final Pagination getPagination()
+ {
+ return pagination;
+ }
+ public final void setPagination(Pagination value)
+ {
+ pagination = value;
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceConfig.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd3754079afd1f6bbbb7d65db65ae6b96a15b021
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceConfig.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager;
+
+
+
+public class SourceConfig {
+
+ private String sourceConfigId;
+
+ /**
+ * 获取数据源BE或者QO的功能标识:configid
+ * @return
+ */
+ public final String getSourceConfigId()
+ {
+ return sourceConfigId;
+ }
+
+ /**
+ * 数据源BE或者QO的功能标识:configid赋值
+ * @return
+ */
+ public final void setSourceConfigId(String value)
+ {
+ sourceConfigId = value;
+ }
+
+ private SourceType sourceType;
+
+ /**
+ * 获取数据源类型:{@link SourceType#Be},{@link SourceType#Qo}
+ * @return
+ */
+ public final SourceType getSourceType()
+ {
+ return sourceType;
+ }
+
+ /**
+ * 数据源类型赋值
+ * @param value 数据源类型;{@link SourceType#Be},{@link SourceType#Qo}
+ */
+ public final void setSourceType(SourceType value)
+ {
+ sourceType = value;
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceType.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceType.java
new file mode 100644
index 0000000000000000000000000000000000000000..baf8cdb0e437b9032d06d7c644800e9ed03c3752
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/SourceType.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager;
+
+public enum SourceType {
+ Be,Qo
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IAssemblerManager.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IAssemblerManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e80882b707270d9421f6c3a6d137b716c133d8b
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IAssemblerManager.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+public interface IAssemblerManager {
+
+ IExtendQueryAssembler getQueryAssembler();
+
+ IDataMapperAssembler getDataMapperAssembler();
+
+ IExtendRetrieveAssembler getRetrieveAssembler();
+
+ IExtendRetrieveDefaultAssembler getRetrieveDefaultAssembler();
+
+ IExtendDeleteAssembler getDeleteAssembler();
+
+ IChangeMapperAssembler getChangeMapperAssembler();
+
+ IExtendModifyAssembler getModifyAssembler();
+
+ IExtendSaveAssembler getSaveAssembler();
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IChangeMapperAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IChangeMapperAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..eb9190903afb2d65c76f9397d22d718338c3b677
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IChangeMapperAssembler.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.ChangeMapperContext;
+
+public interface IChangeMapperAssembler {
+
+ void doChangeMappingFromVo(IFSManagerContext context, ChangeMapperContext mappingContext);
+
+ void doChangeMapping2Vo(IFSManagerContext context, ChangeMapperContext mappingContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IDataMapperAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IDataMapperAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9865b637f8de1b1efee5ebdbf8e132a277bec1c
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IDataMapperAssembler.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.DataMapperContext;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+
+public interface IDataMapperAssembler {
+
+ void doDataMappingFromVo(IFSManagerContext context, DataMapperContext mappingContext);
+
+ ArrayList doDataMapping2Vo(IFSManagerContext context, DataMapperContext mappingContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendDeleteAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendDeleteAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..98a653e48ea2ca4793e24e1fd85379c6b26c0c37
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendDeleteAssembler.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.DeleteContext;
+
+public interface IExtendDeleteAssembler {
+ void doBeforeDelete(IFSManagerContext context, DeleteContext delContext);
+
+ void doDelete(IFSManagerContext context, DeleteContext delContext);
+
+ void doAfterDelete(IFSManagerContext context, DeleteContext delContext);
+ void doBeforeMultiDelete(IFSManagerContext context, DeleteContext delContext);
+
+ void doMultiDelete(IFSManagerContext context, DeleteContext delContext);
+
+ void doAfterMultiDelete(IFSManagerContext context, DeleteContext delContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendModifyAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendModifyAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e06f8f4dd4d690ed53420ffd3a86d841ac13490
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendModifyAssembler.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.ModifyContext;
+
+public interface IExtendModifyAssembler {
+
+ void doBeforeModify(IFSManagerContext context, ModifyContext modifyContext);
+
+ void doModify(IFSManagerContext context, ModifyContext modifyContext);
+
+ void doAfterModify(IFSManagerContext context, ModifyContext modifyContext);
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendQueryAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendQueryAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..1045aa5df65b7865028990a8f9df6ca01fd95bd6
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendQueryAssembler.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.QueryContext;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+public interface IExtendQueryAssembler {
+
+ void doBeforeQuery(IFSManagerContext context, QueryContext queryContext);
+
+ HashMap> doQuery(IFSManagerContext context, QueryContext queryContext);
+
+ void doAfterQuery(IFSManagerContext context, QueryContext queryContext);
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..47bf4ac306387ba394ae0834fa54ca329335d082
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveAssembler.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.RetrieveContext;
+
+public interface IExtendRetrieveAssembler {
+ void doBeforeRetrieve(IFSManagerContext context, RetrieveContext retrieveContext);
+
+ void doRetrieve(IFSManagerContext context, RetrieveContext retrieveContext);
+
+ void doAfterRetrieve(IFSManagerContext context, RetrieveContext retrieveContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveDefaultAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveDefaultAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f7194d0be543b0795dd1430931765ffedbf6ad0
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendRetrieveDefaultAssembler.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.RetrieveDefaultContext;
+
+public interface IExtendRetrieveDefaultAssembler {
+ void doBeforeRetrieveDefault(IFSManagerContext context, RetrieveDefaultContext createContext);
+
+ void doRetrieveDefault(IFSManagerContext context, RetrieveDefaultContext createContext);
+
+ void doAfterRetrieveDefault(IFSManagerContext context, RetrieveDefaultContext createContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendSaveAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendSaveAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..4b887017c407e508b3e3a29e84acf4af431bf392
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IExtendSaveAssembler.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.SaveContext;
+
+public interface IExtendSaveAssembler {
+
+ void doBeforeSave(IFSManagerContext context, SaveContext saveContext);
+
+ void doAfterSave(IFSManagerContext context, SaveContext saveContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IMessageMapperAssembler.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IMessageMapperAssembler.java
new file mode 100644
index 0000000000000000000000000000000000000000..db528de7a8cc4ef097890e11f84928005891dc76
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/assembler/IMessageMapperAssembler.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.assembler;
+
+import com.inspur.edp.bff.api.manager.IFSManagerContext;
+import com.inspur.edp.bff.api.manager.context.ChangeMapperContext;
+import com.inspur.edp.bff.api.manager.context.MessageMapperContext;
+
+public interface IMessageMapperAssembler {
+ void doMessageMapping2Vo(IFSManagerContext context, MessageMapperContext mappingContext);
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ChangeMapperContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ChangeMapperContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e8cfb320b69904b6450d8d5593ce1cf9c8c52ac
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ChangeMapperContext.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.cef.entity.changeset.IChangeDetail;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * 变更集Mapping以及变更集反向Mapping上下文
+ * 变更集Mapping:将be变更集转换为vo变更集
+ * 变更集反向Mapping:将vo变更集转换为be变更集
+ * 扩展动作执行顺序可参考:点击这里查看。
+ *
+ */
+public class ChangeMapperContext {
+
+ private ArrayList sourceChange = new ArrayList();
+ /**
+ * 源变更集(外部传入)
+ * 目前源变更集一般为be数据变更集
+ */
+ public final ArrayList getSourceChange()
+ {
+ return sourceChange;
+ }
+ public final void setSourceChange(ArrayList value)
+ {
+ sourceChange = value;
+ }
+
+
+ private HashMap> mappedChange = new HashMap>();
+ /**
+ * 映射后的变更集集合
+ * Key:数据源编号 内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源对应变更集
+ *
+ */
+ public final HashMap> getMappedChange()
+ {
+ return mappedChange;
+ }
+ public final void setMappedChange(HashMap> value)
+ {
+ mappedChange = value;
+ }
+
+
+ private HashMap> innerChange = new HashMap>();
+ /**
+ * 内部变更集合,执行完变更操作后,将内部变更集写入
+ * Key:数据源编号 内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源对应内部变更集
+ */
+ public final HashMap> getInnerChange()
+ {
+ return innerChange;
+ }
+ public final void setInnerChange(HashMap> value)
+ {
+ innerChange = value;
+ }
+
+
+ private ArrayList targetChange = new ArrayList();
+ /**
+ * Vo内部变更集:通过InnerChange反向映射合并后的结果
+ */
+ public final ArrayList getTargetChange()
+ {
+ return targetChange;
+ }
+ public final void setTargetChange(ArrayList value)
+ {
+ targetChange = value;
+ }
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DataMapperContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DataMapperContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..8342ec9265b0cb035c67d37b1f7053cb4a625012
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DataMapperContext.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.bff.entity.defaultvalue.VoDefaultValue;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * 数据Mapping以及数据反向Mapping上下文
+ * 数据Mapping:将be数据结构转换为vo数据结构
+ * 数据反向Mapping:将vo数据结构转换为be数据结构
+ * 扩展动作执行顺序可参考:点击这里查看。
+ */
+public class DataMapperContext {
+
+ private HashMap> sourceData = new HashMap>();
+
+ /**
+ * 数据源(Be,Qo等)数据集合
+ * Key是数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value是数据源数据
+ */
+ public final HashMap> getSourceData() {
+ return sourceData;
+ }
+
+ public final void setSourceData(HashMap> value) {
+ sourceData = value;
+ }
+
+ private HashMap> mappedData = new HashMap>();
+
+ /**
+ * 映射结果集合
+ * Key是数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value是数据源数据
+ *
+ */
+ public final HashMap> getMappedData() {
+ return mappedData;
+ }
+
+ public final void setMappedData(HashMap> value) {
+ mappedData = value;
+ }
+
+ private ArrayList targetResult = new ArrayList();
+
+ /**
+ * Vo数据集,这里的数据指的是:经过数据映射之后,将{@link #getSourceData()}方法中获取的源数据转换为vo结构的数据集
+ */
+ public final ArrayList getTargetResult() {
+ return targetResult;
+ }
+
+ public final void setTargetResult(ArrayList value) {
+ targetResult = value;
+ }
+
+ private boolean privateIsNew = false;
+
+ /**
+ * 判断数据是否是新增状态
+ *
+ * @return
+ */
+ public final boolean getIsNew() {
+ return privateIsNew;
+ }
+
+ public final void setIsNew(boolean value) {
+ privateIsNew = value;
+ }
+
+ private VoDefaultValue voDefaultValue;
+
+ /**
+ * 获取外部以及实体上设置的默认值
+ *
+ * @return
+ */
+ public final VoDefaultValue getVoDefaultValue() {
+ return voDefaultValue;
+ }
+
+ public final void setVoDefaultValue(VoDefaultValue value) {
+ voDefaultValue = value;
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DeleteContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DeleteContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ec1b30055c1c534f85a08ee5f6b34570fb42436
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/DeleteContext.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+
+import lombok.Data;
+import lombok.Value;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import java.util.ArrayList;
+
+/**
+ * 删除上下文
+ * 在删除扩展动作中可以获取到删除的数据id集合
+ * 扩展动作执行顺序可参考:点击这里查看。
+ */
+@Data
+public class DeleteContext {
+ private String dataId;
+
+ private ArrayList dataIds;
+
+ /**
+ * 获取删除的数据id集合
+ * @return
+ */
+ public ArrayList getDataIds(){return dataIds;}
+ public void setDataIds(ArrayList value){this.dataIds=value;}
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/MessageMapperContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/MessageMapperContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..49ec013d02e2cf64abc32e03eda38d80850a4095
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/MessageMapperContext.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.cef.api.message.IBizMessage;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class MessageMapperContext {
+
+ /**
+ * be消息集合,执行完变更操作后,将内部消息写入 Key:数据源编号 Value:数据源对应消息
+ */
+ private Map> sourceMessage = new HashMap>();
+
+ public final Map> getSourceMessage() {
+ return sourceMessage;
+ }
+
+ public final void setSourceMessage(Map> value) {
+ sourceMessage = value;
+ }
+
+ /**
+ * Vo消息:通过SourceMessage映射后的结果
+ */
+ private List targetMessage = new ArrayList();
+
+ public final List getTargetMessage() {
+ return targetMessage;
+ }
+
+ public final void setTargetMessage(List value) {
+ targetMessage = value;
+ }
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ModifyContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ModifyContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..385edd8c111da802ac4f96ba255667169c2c5fdb
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/ModifyContext.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.cef.entity.changeset.IChangeDetail;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * 修改上下文
+ * 修改前,修改,修改后扩展动作共用一个修改上下文
+ * 扩展动作执行顺序可参考:点击这里查看。
+ */
+public class ModifyContext {
+
+ private ArrayList sourceChange = new ArrayList();
+
+ /**
+ * 源变更集(外部传入)
+ */
+ public final ArrayList getSourceChange()
+ {
+ return sourceChange;
+ }
+
+ public final void setSourceChange(ArrayList value)
+ {
+ sourceChange = value;
+ }
+
+ private HashMap> mappedChange = new HashMap>();
+
+ /**
+ * 映射后的变更集集合
+ * Key:数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源对应变更集
+ */
+ public final HashMap> getMappedChange()
+ {
+ return mappedChange;
+ }
+
+ public final void setMappedChange(HashMap> value)
+ {
+ mappedChange = value;
+ }
+
+ private HashMap> innerChange= new HashMap>();
+ /**
+ * 内部变更集合,执行完变更操作后,将内部变更集写入
+ * Key:数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源对应内部变更集
+ */
+ public final HashMap> getInnerChange()
+ {
+ return innerChange;
+ }
+
+ public final void setInnerChange(HashMap> value)
+ {
+ innerChange = value;
+ }
+
+ private ArrayList targetChange = new ArrayList();
+
+ /**
+ * vo内部变更集:通过{@link #innerChange}反向映射合并后的结果
+ */
+ public final ArrayList getTargetChange()
+ {
+ return targetChange;
+ }
+
+ public final void setTargetChange(ArrayList value)
+ {
+ targetChange = value;
+ }
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/QueryContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/QueryContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca61ea37c8204573d9085625f80c6bf151037258
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/QueryContext.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.bef.api.lcp.AuthInfo;
+import com.inspur.edp.cef.entity.condition.EntityFilter;
+import com.inspur.edp.cef.entity.dependenceTemp.Pagination;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+
+/**
+ * 查询上下文
+ * 查询前,查询,查询后扩展动作共用一个查询上下文
+ * 扩展动作执行顺序可参考:点击这里查看。
+ */
+public class QueryContext {
+
+ private EntityFilter filter;
+ /**
+ * 获取外部设置的过滤条件
+ *
+ * @return
+ *
+ * @see EntityFilter
+ */
+ public final EntityFilter getFilter()
+ {
+ return filter;
+ }
+ /**
+ * 设置过滤条件
+ */
+ public final void setFilter(EntityFilter value)
+ {
+ filter = value;
+ }
+
+
+ private ArrayList queryResult= new ArrayList();
+ /**
+ * 获取查询结果,这里的数据时经过数据Mapping转换之后的vo数据集
+ */
+ public final ArrayList getQueryResult()
+ {
+ return queryResult;
+ }
+
+ /**
+ * 设置查询数据结果集
+ *
+ * @param value
+ */
+ public final void setQueryResult(ArrayList value)
+ {
+ queryResult = value;
+ }
+
+
+ private IEntityData param;
+
+ /**
+ * 获取QO传入实体数据
+ *
+ * @return
+ *
+ * @see IEntityData
+ */
+ public final IEntityData getParam()
+ {
+ return param;
+ }
+
+ /**
+ * QO设置实体数据
+ *
+ * @param value
+ */
+ public final void setParam(IEntityData value)
+ {
+ param = value;
+ }
+
+
+ private Pagination pagination;
+
+ /**
+ * 获取分页信息
+ * @return
+ *
+ * @see Pagination
+ */
+ public final Pagination getPageInfo()
+ {
+ return pagination;
+ }
+
+ /**
+ * 设置分页信息
+ * @param value
+ */
+ public final void setPageInfo(Pagination value)
+ {
+ pagination = value;
+ }
+
+
+ private String extendCond;
+ public final String getExtendCond()
+ {
+ return extendCond;
+ }
+ public final void setExtendCond(String value)
+ {
+ extendCond = value;
+ }
+
+ private boolean useCustomAuth=false;
+ public boolean getUseCustomAuth(){return useCustomAuth;}
+ public void setUseCustomAuth(boolean value){useCustomAuth=value;}
+
+ private AuthInfo authInfo;
+
+ /**
+ * 获取权限信息
+ * @return
+ *
+ * @see AuthInfo
+ */
+ public AuthInfo getAuthInfo()
+ {return authInfo;}
+
+ /**
+ * 设置权限信息
+ * @param value
+ */
+ public void setAuthInfo(AuthInfo value)
+ {
+ authInfo=value;
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..269949967fa42e7afe5ce1681da60e4eb7a0908d
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveContext.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+
+import com.inspur.edp.bef.api.parameter.retrieve.RetrieveParam;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * 检索上下文
+ * 检索前,检索,检索后扩展动作共用一个检索上下文
+ * 扩展动作执行顺序可参考:点击这里查看。
+ */
+public class RetrieveContext {
+ /**
+ * 要检索的数据ID
+ *
+ */
+ private ArrayList dataIds = new ArrayList();
+ public final ArrayList getDataIds()
+ {
+ return dataIds;
+ }
+ public final void setDataIds(ArrayList value)
+ {
+ dataIds = value;
+ }
+
+
+
+ private RetrieveParam param;
+
+ /**
+ * 检索的参数
+ * @return
+ *
+ * @see RetrieveParam
+ */
+ public final RetrieveParam getParam()
+ {
+ return param;
+ }
+ public final void setParam(RetrieveParam value)
+ {
+ param = value;
+ }
+
+
+ private HashMap> retrieveData = new HashMap>();
+ /**
+ * 数据源检索结果集
+ * Key:数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源检索集
+ */
+ public final HashMap> getRetrieveData()
+ {
+ return retrieveData;
+ }
+ public final void setRetrieveData(HashMap> value)
+ {
+ retrieveData = value;
+ }
+
+
+
+ private ArrayList retrieveResult = new ArrayList();
+ /**
+ * Vo检索结果,该结果是经过数据Mapping转换之后的vo数据结构
+ *
+ */
+ public final ArrayList getRetrieveResult()
+ {
+ return retrieveResult;
+ }
+
+ /**
+ * Vo检索结果
+ *
+ */
+ public final void setRetrieveResult(ArrayList value)
+ {
+ retrieveResult = value;
+ }
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveDefaultContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveDefaultContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec88e10cf9d9f2300b5e327a127307bdae66e24a
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/RetrieveDefaultContext.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+import com.inspur.edp.bff.api.manager.IFSManager;
+import com.inspur.edp.bff.entity.defaultvalue.VoDefaultValue;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * 新增上下文
+ * 新增前,新增,新增后扩展动作共用一个新增上下文
+ * 扩展动作执行顺序可参考:点击这里查看
+ */
+public class RetrieveDefaultContext {
+ /**
+ * 获取新增的Vo数据,这里的数据指的是经过数据Mapping转换之后得到的vo数据集
+ */
+ private IEntityData retrieveDefaultResult;
+ public final IEntityData getRetrieveDefaultResult()
+ {
+ return retrieveDefaultResult;
+ }
+ public final void setRetrieveDefaultResult(IEntityData value)
+ {
+ retrieveDefaultResult = value;
+ }
+
+
+ private HashMap> retrieveDefaultData = new HashMap>();
+
+ /**
+ * 数据源新增结果集
+ * Key:数据源编号,内部默认Key值使用Default,开发时请注意不要使用该Key值,以免出现未知问题。
+ * Value:数据源新增数据
+ */
+ public final HashMap> getRetrieveDefaultData()
+ {
+ return retrieveDefaultData;
+ }
+ public final void setRetrieveDefaultData(HashMap> value)
+ {
+ retrieveDefaultData = value;
+ }
+
+
+ private VoDefaultValue voDefaultValue;
+
+ /**
+ * 获取新增时设置的默认值
+ *
+ * @return
+ *
+ * @see VoDefaultValue
+ */
+ public final VoDefaultValue getVoDefaultValue()
+ {
+ return voDefaultValue;
+ }
+
+ /**
+ * 新增时设置默认值,可参考{@link IFSManager#retrieveDefault(VoDefaultValue)}中的参数设置
+ *
+ * @return
+ *
+ * @see VoDefaultValue
+ */
+ public final void setVoDefaultValue(VoDefaultValue value)
+ {
+ voDefaultValue = value;
+ }
+
+ private String dataId;
+
+ /**
+ * 获取新增时设置的数据id
+ * @return
+ */
+ public final String getDataId()
+ {
+ return dataId;
+ }
+
+ /**
+ * 设置新增数据id
+ * @param value
+ */
+ public final void setDataId(String value)
+ {
+ dataId = value;
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/SaveContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/SaveContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c6120f8e0e8888120f726cee5429bf5141ae327
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/SaveContext.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+/**
+ * 保存上下文
+ * 保存前,保存后扩展动作共用一个保存上下文
+ * 目前保存上下文中未封装其他相关信息,后续支持
+ */
+public class SaveContext {
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/TimeStampContext.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/TimeStampContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..cbc064a9a9369b35193cf126405cd8e9aa1a4c06
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/manager/context/TimeStampContext.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.manager.context;
+
+public class TimeStampContext {
+ public boolean isEnableTimeStampLastModifiedBy() {
+ return enableTimeStampLastModifiedBy;
+ }
+
+ public void setEnableTimeStampLastModifiedBy(boolean enableTimeStampLastModifiedBy) {
+ this.enableTimeStampLastModifiedBy = enableTimeStampLastModifiedBy;
+ }
+
+ private boolean enableTimeStampLastModifiedBy;
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildParamDeserializer.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildParamDeserializer.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ab67a8b9753655f7e0519da6521544b4679ba9c
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildParamDeserializer.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.param.retrieve;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.inspur.edp.cef.entity.changeset.IChangeDetail;
+
+import java.io.IOException;
+
+public class RetrieveChildParamDeserializer extends JsonDeserializer {
+
+ @Override
+ public RetrieveParam deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+ if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) {
+ throw new RuntimeException("json结构异常");
+ } else {
+ RetrieveParam param=new RetrieveParam();
+
+ jsonParser.nextToken();
+ jsonParser.nextToken();
+ Boolean isNeedLock = jsonParser.getBooleanValue();
+ // IChangeDetail detail = this.createChangeDetail(p, changeType, ctxt);
+ jsonParser.getCurrentToken();
+ jsonParser.nextToken();
+ return null;
+ }
+ }
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildResult.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..ea06e428c4666818584efe3eb837604346c8a620
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveChildResult.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.param.retrieve;
+
+import com.inspur.edp.cef.entity.dependenceTemp.Pagination;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+
+public class RetrieveChildResult {
+ /**
+ * 当前分页中子表所有数据
+ */
+ private ArrayList result;
+ /**
+ * 当前子表分页的分页信息
+ */
+ private Pagination pagination;
+
+ public ArrayList getResult() {
+ return result;
+ }
+
+ public void setResult(ArrayList result) {
+ this.result = result;
+ }
+
+ public Pagination getPagination() {
+ return pagination;
+ }
+
+ public void setPagination(Pagination pagination) {
+ this.pagination = pagination;
+ }
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveParam.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..3801874a106d55d289a969310788c27a7202ca27
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveParam.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.param.retrieve;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.inspur.edp.cef.entity.condition.EntityFilter;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Data
+//@JsonDeserialize(using = RetrieveChildParamDeserializer.class)
+public class RetrieveParam {
+ /**
+ * 是否加锁
+ */
+ private boolean needLock;
+ /**
+ * 子表分页信息,Key:子表NodeCode、Pagination:分页信息
+ */
+ private HashMap filters = new HashMap<>();
+
+ private HashMap parentIds =new HashMap<>();
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveResult.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..252311ca77c5ff39dc8c66a27324484561abb6da
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/param/retrieve/RetrieveResult.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.param.retrieve;
+
+import com.inspur.edp.cef.entity.dependenceTemp.Pagination;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.HashMap;
+
+public class RetrieveResult {
+ public IEntityData getResult() {
+ return result;
+ }
+
+ public void setResult(IEntityData result) {
+ this.result = result;
+ }
+
+ public HashMap getPagination() {
+ return pagination;
+ }
+
+ public void setPagination(HashMap pagination) {
+ this.pagination = pagination;
+ }
+
+ /**
+ * Be实体信息
+ */
+ private IEntityData result;
+ /**
+ * 表分页信息,Key :子表NodeCode、Value:分页信息
+ */
+ public HashMap pagination = new HashMap<>();
+
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/response/VoResponseInfo.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/response/VoResponseInfo.java
new file mode 100644
index 0000000000000000000000000000000000000000..2af9d362e32b3ea0594afaa04eed870d8d68aa08
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/response/VoResponseInfo.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.response;
+
+import com.inspur.edp.cef.api.response.ResponseInfo;
+import lombok.Getter;
+
+public class VoResponseInfo extends ResponseInfo {
+ @Getter
+ private String voId;
+}
diff --git a/bff-framework-api/src/main/java/com/inspur/edp/bff/api/service/IQueryService.java b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/service/IQueryService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7cfab2a591b2253b3222167de00324903994c0f2
--- /dev/null
+++ b/bff-framework-api/src/main/java/com/inspur/edp/bff/api/service/IQueryService.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.api.service;
+
+import com.inspur.edp.cef.entity.condition.EntityFilter;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+public interface IQueryService {
+ java.util.List Query(EntityFilter filter);
+}
diff --git a/bff-framework-core/pom.xml b/bff-framework-core/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c9625e00e763bf3348f2fabc2aa93b21250e71a
--- /dev/null
+++ b/bff-framework-core/pom.xml
@@ -0,0 +1,96 @@
+
+
+ 4.0.0
+
+ com.inspur.edp
+ bff-framework-core
+ 0.1.1
+
+
+
+ com.inspur.edp
+ bff-api
+ ${project.version}
+
+
+ com.inspur.edp
+ cef-core
+ ${cef.version}
+
+
+ com.inspur.edp
+ lcm-metadata-api
+
+
+ io.iec.edp
+ caf-boot-commons-json
+
+
+ com.inspur.edp
+ cm-api
+ compile
+
+
+ com.inspur.edp
+ bef-api
+
+
+ com.inspur.edp
+ bef-core
+
+
+ io.iec.edp
+ caf-boot-starter-context
+ 0.2.6
+
+
+ com.inspur.edp
+ bff-spi
+ ${project.version}
+ compile
+
+
+ com.inspur.edp
+ caf-cef-rt-spi
+ ${caf.cef.rt.version}
+
+
+ com.inspur.edp
+ caf-cef-rt-api
+ 0.1.2
+
+
+ io.iec.edp
+ caf-boot-commons-utils
+ 0.2.3
+
+
+ com.inspur.edp
+ bef-auditconfig-api
+ 0.1.1
+
+
+ io.iec.edp
+ caf-framework-audit-api
+ 0.2.2
+
+
+ com.inspur.edp
+ bef-spi
+
+
+ com.inspur.edp
+ bef-entity
+
+
+ com.inspur.edp
+ web-help-api
+
+
+ com.inspur.edp
+ cm-core
+
+
+
diff --git a/bff-framework-core/src/main/java/com/inspur/edp/bff/core/action/FSActionFactory.java b/bff-framework-core/src/main/java/com/inspur/edp/bff/core/action/FSActionFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..133aa5c2e581e0dd6ccb0961fc3f27243fc72e88
--- /dev/null
+++ b/bff-framework-core/src/main/java/com/inspur/edp/bff/core/action/FSActionFactory.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright © OpenAtom Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.inspur.edp.bff.core.action;
+
+import com.inspur.edp.bef.api.lcp.AuthInfo;
+import com.inspur.edp.bef.api.parameter.retrieve.RetrieveParam;
+import com.inspur.edp.bff.core.action.cancel.CancelAction;
+import com.inspur.edp.bff.core.action.delete.DeleteAction;
+import com.inspur.edp.bff.core.action.delete.DeleteAndSaveAction;
+import com.inspur.edp.bff.core.action.delete.DeleteChildAction;
+import com.inspur.edp.bff.core.action.delete.MultiDeleteAction;
+import com.inspur.edp.bff.core.action.modify.ModifyAction;
+import com.inspur.edp.bff.core.action.query.QoQueryAction;
+import com.inspur.edp.bff.core.action.query.QueryAction;
+import com.inspur.edp.bff.core.action.query.QueryChildAction;
+import com.inspur.edp.bff.core.action.query.QueryChildWithCodeAction;
+import com.inspur.edp.bff.core.action.query.QueryWithAuthInfoAction;
+import com.inspur.edp.bff.core.action.retrieve.*;
+import com.inspur.edp.bff.core.action.retrievedefault.*;
+import com.inspur.edp.bff.core.action.save.SaveAction;
+import com.inspur.edp.bff.entity.RetrieveDefaultParam;
+import com.inspur.edp.bff.entity.defaultvalue.VoDefaultValue;
+import com.inspur.edp.cef.entity.changeset.IChangeDetail;
+import com.inspur.edp.cef.entity.condition.EntityFilter;
+import com.inspur.edp.cef.entity.dependenceTemp.Pagination;
+import com.inspur.edp.cef.entity.entity.IEntityData;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class FSActionFactory {
+ static void TTT(){}
+ public static RetrieveDefaultAction getRetrieveDefaultAction()
+ {
+ return new RetrieveDefaultAction();
+ }
+
+ public static RetrieveDefaultAction getRetrieveDefaultAction(VoDefaultValue defaultValue)
+ {
+ return new RetrieveDefaultAction(defaultValue);
+ }
+
+ public static RetrieveDefaultAction getRetrieveDefaultAction(String dataId)
+ {
+ return new RetrieveDefaultAction(dataId);
+ }
+
+ public static RetrieveDefaultBatchAction getRetrieveDefaultBatchAction(RetrieveDefaultParam defaultParam)
+ {
+ return new RetrieveDefaultBatchAction(defaultParam);
+ }
+
+ public static RetrieveDefaultChildAction getRetrieveDefaultChildAction(ArrayList nodeCodes, ArrayList lierachyIds)
+ {
+ return new RetrieveDefaultChildAction(nodeCodes, lierachyIds);
+ }
+
+ public static RetrieveDefaultChildeWithIdsAction getRetrieveDefaultChildWithIdsAction(ArrayList nodeCodes, ArrayList lierachyIds, ArrayList ids){
+
+ return new RetrieveDefaultChildeWithIdsAction(nodeCodes,lierachyIds,ids);
+
+ }
+ public static MultiRetrieveAction getMultiRetrieveAction(ArrayList dataIds, RetrieveParam param)
+ {
+ return new MultiRetrieveAction(dataIds, param);
+ }
+
+ public static RetrieveAction getRetrieveAction(String dataID)
+ {
+ return new RetrieveAction(dataID);
+ }
+
+ public static RetrieveAction getRetrieveAction(String dataId, RetrieveParam param)
+ {
+ return new RetrieveAction(dataId, param);
+ }
+ public static RetrieveChildAction getRetrieveChildAction(ArrayList nodeCodes, ArrayList lierachyIds, RetrieveParam retrieveParam) {
+ return new RetrieveChildAction(nodeCodes, lierachyIds, retrieveParam);
+ }
+ public static RetrieveChildAndChildAction getRetrieveChildAndChildAction(ArrayList