- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.hippoecm.repository.api.Workflow
类的一些代码示例,展示了Workflow
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Workflow
类的具体详情如下:
包路径:org.hippoecm.repository.api.Workflow
类名称:Workflow
[英]A workflow is a set of procedures that can be performed on a document in the repository. These procedures can be accessed by obtaining a Workflow implementation from the WorkflowManager. Calling a method that is defined by an interface extending the Workflow interface causes such a workflow step (procedure) to be executed. Which workflow is active on a document depends amongst others on the type of document. Therefor the Workflowinterface itself defines no workflow actions, but any Workflow instance should be cast to a document-specific interface. The implementation of these document-specific workflows can be provided at run-time to the repository. Therefor there is no standard set of workflows available. There are a number of commonly available workflows, but these are not mandatory. See all known sub-interfaces of the Workflow interface, or org.hippoecm.repository.standardworkflow.FolderWorkflow for an example.
Implementors of this interface should never return subclasses of the Document class in their interface. It is allowed to return an instance of a subclass of a Document, but the repository will force recreating the object returned as a direct instance of an Document.
[中]工作流是可以对存储库中的文档执行的一组过程。可以通过从WorkflowManager获取工作流实现来访问这些过程。调用由扩展工作流接口的接口定义的方法会导致执行这样的工作流步骤(过程)。哪个工作流在文档上处于活动状态取决于文档的类型。因此,Workflowinterface本身不定义工作流操作,但任何工作流实例都应转换为特定于文档的接口。这些特定于文档的工作流的实现可以在运行时提供给存储库。因此,没有可用的标准工作流集。有许多常用的工作流,但它们不是强制性的。查看工作流界面或组织的所有已知子界面。河马。存储库。标准工作流程。FolderWorkflow就是一个例子。
此接口的实现者不应在其接口中返回文档类的子类。允许返回文档子类的实例,但存储库将强制重新创建作为文档直接实例返回的对象。
代码示例来源:origin: org.onehippo.cms7/hippo-addon-channel-manager-content-service
private static boolean isActionAvailable(final Workflow workflow, final String action) {
try {
final Map<String, Serializable> hints = workflow.hints();
return hints.containsKey(action) && ((Boolean) hints.get(action));
} catch (WorkflowException | RemoteException | RepositoryException e) {
log.warn("Failed reading hints from workflow", e);
}
return false;
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-workflow-frontend
private static boolean isWorkflowMethodAvailable(final Workflow workflow, final String methodName) throws RepositoryException, RemoteException, WorkflowException {
final Serializable hint = workflow.hints().get(methodName);
return hint == null || Boolean.parseBoolean(hint.toString());
}
代码示例来源:origin: org.onehippo.cms7/hippo-addon-channel-manager-content-service
private Map<String, Serializable> getHints(Workflow workflow, Map<String, Serializable> contextPayload) {
try {
return Optional.of(workflow.hints()).map(hints -> {
final Map<String, Serializable> hintsCopy = new HashMap<>(hints);
if (contextPayload != null) {
hintsCopy.putAll(contextPayload);
}
return hintsCopy;
}).orElse(new HashMap<>());
} catch (WorkflowException | RemoteException | RepositoryException e) {
log.warn("Failed reading hints from workflow", e);
}
return new HashMap<>();
}
}
代码示例来源:origin: org.onehippo.ecm.hst.testsuite.sandbox/hst-jaxrs
public WorkflowContent(Workflow workflow) throws Exception {
hints = new HashMap<String, String>();
for (Map.Entry<String, Serializable> entry : workflow.hints().entrySet()) {
hints.put(entry.getKey(), stringifyHintValue(entry.getValue()));
}
interfaceNames = new LinkedList<String>();
List<Class> intrfcs = ClassUtils.getAllInterfaces(workflow.getClass());
for (Class intrfc : intrfcs) {
if (Workflow.class.isAssignableFrom(intrfc)) {
interfaceNames.add(intrfc.getName());
}
}
}
代码示例来源:origin: org.onehippo.cms7/hippo-repository-engine
public Map<String, Serializable> hints() throws RepositoryException {
if (this.hints == null) {
try {
this.hints = manager.getWorkflow(this).hints();
} catch (WorkflowException | RemoteException e) {
throw new RepositoryException("Workflow hints corruption", e);
}
}
return this.hints;
}
代码示例来源:origin: org.onehippo.cms7/hippo-addon-channel-manager-content-service
/**
* Determine the reason why editing failed for the present workflow.
*
* @param workflow workflow for the current user on a specific document
* @param session current user's JCR session
* @return Specific reason or nothing (unknown), wrapped in an Optional
*/
public static Optional<ErrorInfo> determineEditingFailure(final Workflow workflow, final Session session) {
try {
final Map<String, Serializable> hints = workflow.hints();
if (hints.containsKey(HINT_IN_USE_BY)) {
final Map<String, Serializable> params = new HashMap<>();
final String userId = (String) hints.get(HINT_IN_USE_BY);
params.put("userId", userId);
getUserName(userId, session).ifPresent(userName -> params.put("userName", userName));
return Optional.of(new ErrorInfo(Reason.OTHER_HOLDER, params));
}
if (hints.containsKey(HINT_REQUESTS)) {
return Optional.of(new ErrorInfo(Reason.REQUEST_PENDING));
}
} catch (RepositoryException | WorkflowException | RemoteException e) {
log.warn("Failed to retrieve hints for workflow '{}'", workflow, e);
}
return Optional.empty();
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-workflow-frontend
final Map<String, Set<String>> prototypes = (Map<String, Set<String>>) workflow.hints().get("prototypes");
代码示例来源:origin: org.onehippo.cms7/hippo-cms-editor-frontend
private Map<String, Serializable> obtainWorkflowHints(WorkflowDescriptorModel model) {
Map<String, Serializable> info = Collections.emptyMap();
try {
WorkflowDescriptor workflowDescriptor = model.getObject();
if (workflowDescriptor != null) {
WorkflowManager manager = obtainUserSession().getWorkflowManager();
Workflow workflow = manager.getWorkflow(workflowDescriptor);
info = workflow.hints();
}
} catch (RepositoryException | WorkflowException | RemoteException ex) {
log.error(ex.getMessage());
}
return info;
}
代码示例来源:origin: org.onehippo.cms7/hippo-repository-workflow
private void copyFolderTypes(final Node copiedDoc, final Map<String, Set<String>> prototypes) throws RepositoryException {
// check if we have all subject folder types;
Document rootDocument = new Document(rootSubject);
Workflow internalWorkflow;
try {
internalWorkflow = workflowContext.getWorkflow("internal", rootDocument);
if (!(internalWorkflow instanceof FolderWorkflow)) {
throw new WorkflowException(
"Target folder does not have a folder workflow in the category 'internal'.");
}
final Map<String, Set<String>> copyPrototypes = (Map<String, Set<String>>) internalWorkflow.hints().get("prototypes");
if (copyPrototypes != null && copyPrototypes.size() > 0) {
// got some stuff...check if equal:
final Set<String> protoKeys = prototypes.keySet();
final Set<String> copyKeys = copyPrototypes.keySet();
// check if we have a difference and overwrite
if (copyKeys.size() != protoKeys.size() || !copyKeys.containsAll(protoKeys)) {
final String[] newValues = copyKeys.toArray(new String[copyKeys.size()]);
copiedDoc.setProperty("hippostd:foldertype", newValues);
}
}
} catch (WorkflowException e) {
log.warn(e.getClass().getName() + ": " + e.getMessage(), e);
} catch (RemoteException e) {
log.error(e.getClass().getName() + ": " + e.getMessage(), e);
}
}
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-workflow-frontend
@Override
protected void onPopulate() {
List<IModel<Request>> requests = new ArrayList<>();
try {
WorkflowDescriptorModel model = getModel();
Workflow workflow = model.getWorkflow();
if (workflow != null) {
Map<String, Serializable> info = workflow.hints();
if (info.containsKey("requests")) {
Map<String, Map<String, ?>> infoRequests = (Map<String, Map<String, ?>>) info.get("requests");
for (Map.Entry<String, Map<String, ?>> entry : infoRequests.entrySet()) {
requests.add(new RequestModel(entry.getKey(), entry.getValue()));
}
}
}
} catch (RepositoryException | WorkflowException | RemoteException ex) {
log.error(ex.getMessage(), ex);
}
removeAll();
int index = 0;
for (IModel<Request> requestModel : requests) {
Item<Request> item = new Item<>(newChildId(), index++, requestModel);
populateItem(item);
add(item);
}
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-workflow-frontend
private void loadPublishableDocuments(final Node folder, final Set<String> documents) throws RepositoryException, WorkflowException, RemoteException {
for (Node child : new NodeIterable(folder.getNodes())) {
if (child.isNodeType(NT_FOLDER) || child.isNodeType(NT_DIRECTORY)) {
loadPublishableDocuments(child, documents);
} else if (child.isNodeType(NT_HANDLE)) {
WorkflowManager workflowManager = ((HippoWorkspace) folder.getSession().getWorkspace()).getWorkflowManager();
Workflow workflow = workflowManager.getWorkflow(WORKFLOW_CATEGORY, child);
if (workflow != null) {
Serializable hint = workflow.hints().get(workflowAction);
if (hint instanceof Boolean && (Boolean) hint) {
documents.add(child.getIdentifier());
}
}
}
}
}
代码示例来源:origin: org.onehippo.cms7/hippo-addon-publication-workflow-frontend
Map<String, Serializable> info = workflow.hints();
if (info.containsKey("acceptRequest") && info.get("acceptRequest") instanceof Boolean) {
acceptAction.setVisible(((Boolean)info.get("acceptRequest")).booleanValue());
代码示例来源:origin: org.onehippo.cms7/hippo-addon-publication-workflow-frontend
Map<String, Serializable> info = workflow.hints();
if (!documentNode.hasProperty("hippostd:stateSummary") || (info.containsKey("obtainEditableInstance") &&
info.get("obtainEditableInstance") instanceof Boolean &&
代码示例来源:origin: org.onehippo.cms7/hippo-addon-publication-workflow-frontend
Map<String, Serializable> info = workflow.hints();
if (!documentNode.hasProperty("hippostd:stateSummary") || (info.containsKey("obtainEditableInstance") &&
info.get("obtainEditableInstance") instanceof Boolean &&
代码示例来源:origin: org.onehippo.cms7/hippo-cms-editor-frontend
if (workflowDescriptor != null) {
Workflow workflow = manager.getWorkflow(workflowDescriptor);
Map<String, Serializable> info = workflow.hints();
if (info.containsKey("commit")) {
Object commitObject = info.get("commit");
代码示例来源:origin: org.onehippo.cms7/hippo-repository-workflow
"Target folder does not have a folder workflow in the category 'internal'.");
Map<String, Set<String>> prototypes = (Map<String, Set<String>>) internalWorkflow.hints().get("prototypes");
if (prototypes == null) {
throw new WorkflowException("No prototype hints available in workflow of target folder.");
代码示例来源:origin: org.onehippo.cms7/hippo-cms-editor-frontend
if (workflowDescriptor != null) {
Workflow workflow = manager.getWorkflow(workflowDescriptor);
Map<String, Serializable> info = workflow.hints();
if (info.containsKey("edit")) {
Object editObject = info.get("edit");
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!