ADF工具类:TaskFlowUtils.java 源代码
来源:互联网 发布:growcut算法 编辑:程序博客网 时间:2024/06/13 09:28
package view;import java.util.Collection;import java.util.HashMap;import java.util.Map;import javax.faces.application.Application;import javax.faces.context.FacesContext;import oracle.adf.controller.ControllerContext;import oracle.adf.controller.TaskFlowContext;import oracle.adf.controller.TaskFlowId;import oracle.adf.controller.ViewPortContext;import oracle.adf.controller.metadata.MetadataService;import oracle.adf.controller.metadata.model.DataControlScopeType;import oracle.adf.controller.metadata.model.NamedParameter;import oracle.adf.controller.metadata.model.TaskFlowDefinition;import oracle.adf.controller.metadata.model.TaskFlowInputParameter;import oracle.adf.controller.metadata.model.TransactionType;import oracle.adf.model.BindingContext;import oracle.adf.model.DataControlFrame;import oracle.adf.model.binding.DCDataControl;import oracle.adf.view.rich.context.AdfFacesContext;/** * ADF task flow utilities for use with JDev/ADF 11g+. * * Available under the Creative Commons Attribution 3.0 Unported License. * See: http://one-size-doesnt-fit-all.blogspot.com/p/terms-conditions.html * * Absolutely no warranty implied, *use*at*your*own*risk*. This code has been mostly used * for checking task flow features and hasn't been used in a production environment. * * Author: Chris Muir @ Oracle.com * Date: 19th April 2012 */public class TaskFlowUtils { public String getTaskFlowName() { MetadataService metadataService = MetadataService.getInstance(); TaskFlowDefinition taskFlowDefinition = metadataService.getTaskFlowDefinition(getCurrentTaskFlowId()); String taskFlowName = null; if (taskFlowDefinition != null) { TaskFlowId taskFlowId = taskFlowDefinition.getTaskFlowId(); if (taskFlowId != null) taskFlowName = taskFlowDefinition.getTaskFlowId().getFullyQualifiedName(); else taskFlowName = "Null"; } else taskFlowName = "Null"; return taskFlowName; } public String getTaskFlowControlScopeName() { MetadataService metadataService = MetadataService.getInstance(); String controlScopeTypeString; TaskFlowDefinition taskFlowDefinition = metadataService.getTaskFlowDefinition(getCurrentTaskFlowId()); if (taskFlowDefinition != null) { String taskFlowName = taskFlowDefinition.getTaskFlowId().getFullyQualifiedName(); DataControlScopeType controlScopeType = taskFlowDefinition.getDataControlScopeType(); if (controlScopeType == null || controlScopeType == DataControlScopeType.SHARED) controlScopeTypeString = "Shared Data Control Scope"; else if (controlScopeType == DataControlScopeType.ISOLATED) controlScopeTypeString = "Isolated Data Control Scope"; else controlScopeTypeString = "UNKNOWN Data Control Scope"; } else controlScopeTypeString = "Null"; return controlScopeTypeString; } public String getTaskFlowControlTransactionTypeName() { MetadataService metadataService = MetadataService.getInstance(); String transactionTypeString; TaskFlowDefinition taskFlowDefinition = metadataService.getTaskFlowDefinition(getCurrentTaskFlowId()); if (taskFlowDefinition != null) { String taskFlowName = taskFlowDefinition.getTaskFlowId().getFullyQualifiedName(); TransactionType transactionType = taskFlowDefinition.getTransactionType(); if (transactionType == null) transactionTypeString = "-No Controller Transaction-"; else if (transactionType == TransactionType.NEW_TRANSACTION) transactionTypeString = "Always Begin New Transaction"; else if (transactionType == TransactionType.REQUIRES_TRANSACTION) transactionTypeString = "Use Existing Transaction if Possible"; else if (transactionType == TransactionType.REQUIRES_EXISTING_TRANSACTION) transactionTypeString = "Always Use Existing Transaction"; else transactionTypeString = "UNKNOWN Transaction Type"; } else transactionTypeString = "Null"; return transactionTypeString; } public HashMap formatTaskFlowParameters(Map btfParameters) { HashMap taskFlowParameterValues = new HashMap(); FacesContext facesContext = FacesContext.getCurrentInstance(); Application application = facesContext.getApplication(); AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance(); Map pageFlowScope = adfFacesContext.getPageFlowScope(); for (Object parameter : btfParameters.values()) { NamedParameter namedParameter = (NamedParameter)parameter; String parameterName = namedParameter.getName(); String parameterExpression = namedParameter.getValueExpression(); Object parameterValue; String stringValue; if (parameterExpression == null) { parameterValue = pageFlowScope.get(parameterName); } else { parameterValue = application.evaluateExpressionGet(facesContext, parameterExpression, Object.class); } if (parameterValue != null) { try { stringValue = parameterValue.toString(); } catch (Exception e) { stringValue = ""; } } else { stringValue = ""; } taskFlowParameterValues.put(parameterName, stringValue); } return taskFlowParameterValues; } public TaskFlowId getCurrentTaskFlowId() { ControllerContext controllerContext = ControllerContext.getInstance(); ViewPortContext currentViewPort = controllerContext.getCurrentViewPort(); TaskFlowContext taskFlowContext = currentViewPort.getTaskFlowContext(); TaskFlowId taskFlowId = taskFlowContext.getTaskFlowId(); return taskFlowId; } public TaskFlowDefinition getTaskFlowDefinition(TaskFlowId taskFlowId) { MetadataService metadataService = MetadataService.getInstance(); TaskFlowDefinition taskFlowDefinition = metadataService.getTaskFlowDefinition(taskFlowId); return taskFlowDefinition; } public Map getCurrentTaskFlowInputParameters() { return getInputParameters(getCurrentTaskFlowId()); } public Map getInputParameters(TaskFlowId taskFlowId) { TaskFlowDefinition taskFlowDefinition = getTaskFlowDefinition(taskFlowId); Map taskFlowInputParameters = taskFlowDefinition.getInputParameters(); return taskFlowInputParameters; } public Map getCurrentTaskFlowReturnParameters() { return getReturnParameters(getCurrentTaskFlowId()); } public Map getReturnParameters(TaskFlowId taskFlowId) { TaskFlowDefinition taskFlowDefinition = getTaskFlowDefinition(taskFlowId); Map namedParameters = taskFlowDefinition.getReturnValues(); return namedParameters; } public String getDataControlFrameName() { BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext(); String dataControlFrameName = bindingContext.getCurrentDataControlFrame(); return dataControlFrameName; } public DataControlFrame getDataControlFrame() { BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext(); String dataControlFrameName = bindingContext.getCurrentDataControlFrame(); DataControlFrame dataControlFrame = bindingContext.findDataControlFrame(dataControlFrameName); return dataControlFrame; } public void commitTaskFlow() { getDataControlFrame().commit(); } public void rollbackTaskFlow() { getDataControlFrame().rollback(); } public boolean isTaskFlowTransactionDirty() { return getDataControlFrame().isTransactionDirty(); } public String getOpenTransactionName() { return getDataControlFrame().getOpenTransactionName(); } public String getDataControlNames() { BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext(); String dataControlFrameName = bindingContext.getCurrentDataControlFrame(); DataControlFrame dataControlFrame = bindingContext.findDataControlFrame(dataControlFrameName); Collection dataControls = dataControlFrame.datacontrols(); String names = ""; for (DCDataControl dc : dataControls) { names = names + "," + dc.getName() + dc.hashCode(); } return names; }}
http://maping930883.blogspot.com/2012/12/adf205adftaskflowutilsjava.html
0 0
- ADF工具类:TaskFlowUtils.java 源代码
- ADF工具类:TaskFlowUtils.java 源代码
- ADF工具类:TaskFlowUtils.java 源代码
- ADF工具类:TaskFlowUtils.java 源代码
- ADF工具类:JSFUtil.java 源代码
- ADF工具类:ADFUtil.java 源代码
- ADF工具类:JSFUtil.java 源代码
- ADF工具类:ADFUtil.java 源代码
- Java 读取HTML页面源代码工具类
- java汉字转拼音工具类源代码
- java源代码统计工具
- Java ADF开发入门-添加命令和工具
- Java ADF开发入门-添加命令和工具
- java非对称加密RSA的工具类及其源代码
- java源代码分析工具PMD 3.1发布
- PMD Java静态源代码分析工具
- JavaBugChecker1.0(Java源代码检错工具)
- XJad2.2(Java源代码反编译工具)
- 1408202044-hd-How many prime numbers.cpp
- 存储过程与函数的区别
- android:sms
- TreeMap类的entrySet()方法的应用
- Libgdx的使用(17)——多语言和国际化
- ADF工具类:TaskFlowUtils.java 源代码
- AspectJ学习笔记1-报Invalid aspectj.home.的处理方法
- 组件自动绑定到Managed Bean功能
- 杭电1059 Dividing(多重背包解法)
- Jquery超简单遮罩层实现代码
- 【二分+半平面交】 HDOJ 3761 Jungle Outpost
- 用python实现wireshark的follow tcp stream功能
- 404页面是怎样对网站优化产生影响的?
- bash的RANDOM变量生成的是真正的随机数吗