本文整理了Java中org.hippoecm.repository.api.Workflow.hints()
方法的一些代码示例,展示了Workflow.hints()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Workflow.hints()
方法的具体详情如下:
包路径:org.hippoecm.repository.api.Workflow
类名称:Workflow
方法名:hints
[英]The hints method is not an actual workflow call, but a method by which information can be retrieved from the workflow. All implementations must implement this call as a pure function, no modification may be made, nor no state may be maintained and and in principle no additional lookups of data is allowed. This allows for caching the result as long as the document on which the workflow operates isn't modified. By convention, keys that are names or signatures of methods implemented by the workflow provide information to the application program whether the workflow method is available this time, or will result in a WorkflowException. The value for these keys will often be a java.lang.Boolean to indicate the enabled status of the method.
Non-standard keys in this map should be prefixed with the implementation package name using dot seperations.
[中]提示方法不是实际的工作流调用,而是一种可以从工作流中检索信息的方法。所有实现都必须将此调用实现为纯函数,不能进行任何修改,也不能维护任何状态,原则上不允许对数据进行额外的查找。这允许缓存结果,只要工作流操作的文档未被修改。按照惯例,作为工作流实现的方法的名称或签名的密钥将向应用程序提供信息,无论工作流方法这次是否可用,或者是否会导致WorkflowException。这些键的值通常是java。lang.Boolean表示方法的启用状态。
此映射中的非标准键应使用点分隔的实现包名称作为前缀。
代码示例来源: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");
内容来源于网络,如有侵权,请联系作者删除!