java 中taskflow,ADF TaskFlowUtil.java 源码

packageview;

importjava.util.Collection;

importjava.util.HashMap;

importjava.util.Map;

importjavax.faces.application.Application;

importjavax.faces.context.FacesContext;

importoracle.adf.controller.ControllerContext;

importoracle.adf.controller.TaskFlowContext;

importoracle.adf.controller.TaskFlowId;

importoracle.adf.controller.ViewPortContext;

importoracle.adf.controller.metadata.MetadataService;

importoracle.adf.controller.metadata.model.DataControlScopeType;

importoracle.adf.controller.metadata.model.NamedParameter;

importoracle.adf.controller.metadata.model.TaskFlowDefinition;

importoracle.adf.controller.metadata.model.TaskFlowInputParameter;

importoracle.adf.controller.metadata.model.TransactionType;

importoracle.adf.model.BindingContext;

importoracle.adf.model.DataControlFrame;

importoracle.adf.model.binding.DCDataControl;

importoracle.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

*/

publicclassTaskFlowUtils {

publicString 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";

returntaskFlowName;

}

publicString 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";

elseif(controlScopeType == DataControlScopeType.ISOLATED)

controlScopeTypeString = "Isolated Data Control Scope";

else

controlScopeTypeString = "UNKNOWN Data Control Scope";

} else

controlScopeTypeString = "Null";

returncontrolScopeTypeString;

}

publicString 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-";

elseif(transactionType == TransactionType.NEW_TRANSACTION)

transactionTypeString = "Always Begin New Transaction";

elseif(transactionType == TransactionType.REQUIRES_TRANSACTION)

transactionTypeString = "Use Existing Transaction if Possible";

elseif(transactionType == TransactionType.REQUIRES_EXISTING_TRANSACTION)

transactionTypeString = "Always Use Existing Transaction";

else

transactionTypeString = "UNKNOWN Transaction Type";

} else

transactionTypeString = "Null";

returntransactionTypeString;

}

publicHashMap formatTaskFlowParameters(Map btfParameters) {

HashMap taskFlowParameterValues = newHashMap();

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);

}

returntaskFlowParameterValues;

}

publicTaskFlowId getCurrentTaskFlowId() {

ControllerContext controllerContext = ControllerContext.getInstance();

ViewPortContext currentViewPort = controllerContext.getCurrentViewPort();

TaskFlowContext taskFlowContext = currentViewPort.getTaskFlowContext();

TaskFlowId taskFlowId = taskFlowContext.getTaskFlowId();

returntaskFlowId;

}

publicTaskFlowDefinition getTaskFlowDefinition(TaskFlowId taskFlowId) {

MetadataService metadataService = MetadataService.getInstance();

TaskFlowDefinition taskFlowDefinition = metadataService.getTaskFlowDefinition(taskFlowId);

returntaskFlowDefinition;

}

publicMap getCurrentTaskFlowInputParameters() {

returngetInputParameters(getCurrentTaskFlowId());

}

publicMap getInputParameters(TaskFlowId taskFlowId) {

TaskFlowDefinition taskFlowDefinition = getTaskFlowDefinition(taskFlowId);

Map taskFlowInputParameters = taskFlowDefinition.getInputParameters();

returntaskFlowInputParameters;

}

publicMap getCurrentTaskFlowReturnParameters() {

returngetReturnParameters(getCurrentTaskFlowId());

}

publicMap getReturnParameters(TaskFlowId taskFlowId) {

TaskFlowDefinition taskFlowDefinition = getTaskFlowDefinition(taskFlowId);

Map namedParameters = taskFlowDefinition.getReturnValues();

returnnamedParameters;

}

publicString getDataControlFrameName() {

BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext();

String dataControlFrameName = bindingContext.getCurrentDataControlFrame();

returndataControlFrameName;

}

publicDataControlFrame getDataControlFrame() {

BindingContext bindingContext = oracle.adf.controller.binding.BindingUtils.getBindingContext();

String dataControlFrameName = bindingContext.getCurrentDataControlFrame();

DataControlFrame dataControlFrame = bindingContext.findDataControlFrame(dataControlFrameName);

returndataControlFrame;

}

publicvoidcommitTaskFlow() {

getDataControlFrame().commit();

}

publicvoidrollbackTaskFlow() {

getDataControlFrame().rollback();

}

publicbooleanisTaskFlowTransactionDirty() {

returngetDataControlFrame().isTransactionDirty();

}

publicString getOpenTransactionName() {

returngetDataControlFrame().getOpenTransactionName();

}

publicString 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();

}

returnnames;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值