blob: 544a59e0e58cb25103bf7ec5731b8835291b5e86 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.ode.bpel.runtime;
import org.apache.ode.bpel.evt.EventContext;
import org.apache.ode.bpel.o.OScope;
import org.apache.ode.bpel.o.OScope.Variable;
import org.apache.ode.utils.DOMUtils;
import org.w3c.dom.Node;
import java.util.Iterator;
/**
* Bpel Event Context Implementation.
* @author Raja Balasubramanian
*/
public class EventContextImpl implements EventContext
{
/**
* Scope Object used in this scope instance.
*/
private OScope __scope;
/**
* Scope Instance ID
*/
private Long __scopeInstanceId;
/**
* BPEL Runtime Context
*/
private BpelRuntimeContext __runtimeContext;
/**
* Constructor
* @param __scope Scope Object used in this scope instance.
* @param __scopeInstanceId Scope Instance ID
* @param __runtimeContext BPEL Runtime Context
*/
public EventContextImpl(OScope __scope, Long __scopeInstanceId, BpelRuntimeContext __runtimeContext)
{
this.__scope = __scope;
this.__scopeInstanceId = __scopeInstanceId;
this.__runtimeContext = __runtimeContext;
}
/**
* Get Variable data for the given variable name, for this scope instance
* @param varName Variable Name
* @return DOM Node as XML String. If no value exists or variable not initialized, NULL will be returnrd.
*/
public String getVariableData(String varName)
{
String value = null;
try
{
Variable var = __scope.getVisibleVariable(varName);
VariableInstance varInstance = new VariableInstance(__scopeInstanceId, var);
Node varNode = __runtimeContext.readVariable(varInstance.scopeInstance, varInstance.declaration.name, false);
value = DOMUtils.domToString(varNode);
}
catch(Throwable e)
{
//Don't throw any exception back to the caller. Just return null as value.
}
return value;
}
/**
* Get All variable names used in this scope Instance
* @return Array of Variable Names. If no variable(s) exists, null will be returned.
*/
public String[] getVariableNames()
{
String[] __varNames = null;
try
{
int varSize = __scope.variables.size();
__varNames = new String[varSize];
Iterator<String> _varNames = __scope.variables.keySet().iterator();
int i = 0;
while(_varNames.hasNext())
{
__varNames[i++] = _varNames.next();
}
}
catch(Throwable e)
{
//Don't throw any exception back to the caller. Just return null as value.
}
return __varNames;
}
/**
* Get ScopeInstanceId
* @return scopeInstanceId
*/
public Long getScopeInstanceId()
{
return __scopeInstanceId;
}
}