use of com.centurylink.mdw.model.value.variable.VariableTypeVO in project mdw-designer by CenturyLinkCloud.
the class DesignerProxy method getVariableInfo.
/**
* Must be called from the UI thread.
*/
public VariableTypeVO getVariableInfo(final VariableInstanceInfo varInstInfo) {
String varType = varInstInfo.getType();
VariableTranslator varTrans = getVariableTranslator(varType);
final VariableTypeVO varTypeVO = new VariableTypeVO(0L, varType, varTrans == null ? null : varTrans.getClass().getName());
if (varInstInfo.getStringValue() != null && varTypeVO.isJavaObjectType()) {
BusyIndicator.showWhile(MdwPlugin.getShell().getDisplay(), new Runnable() {
public void run() {
DocumentReference docRef = new DocumentReference(varInstInfo.getStringValue());
try {
Object obj = new JavaObjectTranslator().realToObject(getDocument(docRef).getContent());
varTypeVO.setVariableType(obj.getClass().getName());
varTypeVO.setUpdateable(obj instanceof SelfSerializable);
} catch (TranslationException ex) {
if (MdwPlugin.getSettings().isLogConnectErrors())
PluginMessages.log(ex);
try {
if (!project.checkRequiredVersion(6, 1, 1)) {
String path = "DocumentValue?format=xml&id=" + docRef.getDocumentId() + "&type=" + varTypeVO.getVariableType();
String resp = getRestfulServer().invokeResourceService(path);
Resource res = Resource.Factory.parse(resp, Compatibility.namespaceOptions());
for (Parameter param : res.getParameterList()) {
if ("className".equals(param.getName()))
varTypeVO.setVariableType(param.getStringValue());
else if ("isUpdateable".equals(param.getName()))
varTypeVO.setUpdateable(Boolean.parseBoolean(param.getStringValue()));
}
}
} catch (Exception ex2) {
throw new RuntimeException(ex2.getMessage(), ex2);
}
}
}
});
}
return varTypeVO;
}
use of com.centurylink.mdw.model.value.variable.VariableTypeVO in project mdw-designer by CenturyLinkCloud.
the class DesignerProxy method getVariableTranslator.
private VariableTranslator getVariableTranslator(String varType) {
VariableTranslator vt = null;
VariableTypeVO vo = dataAccess.getVariableType(varType);
if (vo != null) {
try {
Class<? extends VariableTranslator> cl = Class.forName(vo.getTranslatorClass()).asSubclass(VariableTranslator.class);
vt = cl.newInstance();
} catch (Exception ex) {
// can't create translator
if (MdwPlugin.getSettings().isLogConnectErrors())
PluginMessages.log(ex);
}
}
return vt;
}
use of com.centurylink.mdw.model.value.variable.VariableTypeVO in project mdw-designer by CenturyLinkCloud.
the class VariableHelper method isDocumentVariable.
/**
* This is another cheaper way for better guessing whether the variable
* is a document variable, when variable instance value is available
* @param vartype
* @param value variable instance value
* @return
*/
public static boolean isDocumentVariable(String vartype, String value) {
VariableTranslator translator;
VariableTypeVO vo = VariableTypeCache.getVariableTypeVO(vartype);
if (vo == null)
return false;
try {
Class<?> cl = Class.forName(vo.getTranslatorClass());
translator = (VariableTranslator) cl.newInstance();
return (translator instanceof DocumentReferenceTranslator);
} catch (Exception e) {
if (value == null)
return false;
return value.startsWith("DOCUMENT:");
}
}
use of com.centurylink.mdw.model.value.variable.VariableTypeVO in project mdw-designer by CenturyLinkCloud.
the class VariablesSection method getVariableTypes.
private Map<Integer, VariableTypeVO> getVariableTypes() {
if (variableTypes == null) {
variableTypes = new TreeMap<Integer, VariableTypeVO>();
List<VariableTypeVO> variableTypeVOs = getDataAccess().getVariableTypes(false);
Collections.sort(variableTypeVOs, new Comparator<VariableTypeVO>() {
public int compare(VariableTypeVO vt1, VariableTypeVO vt2) {
if (vt1.getVariableType().equals(String.class.getName()) && !vt2.getVariableType().equals(String.class.getName()))
return -1;
if (vt2.getVariableType().equals(String.class.getName()) && !vt1.getVariableType().equals(String.class.getName()))
return +1;
if (vt1.getVariableType().startsWith("java.") && !vt2.getVariableType().startsWith("java."))
return -1;
if (vt2.getVariableType().startsWith("java.") && !vt1.getVariableType().startsWith("java."))
return +1;
return vt1.getVariableType().compareToIgnoreCase(vt2.getVariableType());
}
});
for (int i = 0; i < variableTypeVOs.size(); i++) {
VariableTypeVO variableTypeVO = (VariableTypeVO) variableTypeVOs.get(i);
variableTypes.put(new Integer(i), variableTypeVO);
}
}
return variableTypes;
}
use of com.centurylink.mdw.model.value.variable.VariableTypeVO in project mdw-designer by CenturyLinkCloud.
the class ProcessLaunchConfiguration method launchProcess.
protected void launchProcess(WorkflowProcess process, String masterRequestId, String owner, Long ownerId, boolean synchronous, String responseVarName, Map<String, String> parameters, Long activityId, boolean showLogs, boolean liveView) {
List<VariableValue> variableValues = new ArrayList<>();
for (Map.Entry<String, String> var : parameters.entrySet()) {
VariableVO variableVO = process.getVariable(var.getKey());
if (var.getValue().length() > 0) {
VariableTypeVO varType = process.getProject().getDataAccess().getVariableType(variableVO.getVariableType());
variableValues.add(new VariableValue(variableVO, varType, var.getValue()));
}
}
DesignerProxy designerProxy = process.getProject().getDesignerProxy();
try {
if (showLogs || liveView) {
watch = true;
LogWatcher logWatcher = designerProxy.getLogWatcher(MdwPlugin.getDisplay());
if (logWatcher.isRunning()) {
MdwPlugin.getDisplay().syncExec(new Runnable() {
public void run() {
String message = "Live View is already monitoring an existing instance. Disconnect to monitor new instance?";
watch = MessageDialog.openConfirm(MdwPlugin.getDisplay().getActiveShell(), "Live View", message);
}
});
}
if (watch) {
logWatcher.shutdown();
logWatcher.setMasterRequestId(masterRequestId);
logWatcher.setProcess(process);
logWatcher.startup(liveView);
}
}
if (synchronous) {
String response = designerProxy.launchSynchronousProcess(process, masterRequestId, owner, ownerId, variableValues, responseVarName);
if (isWriteToConsole())
writeToConsole("Process Launch Response", response + "\n");
} else {
MDWStatusMessage statusMsg = designerProxy.launchProcess(process, masterRequestId, owner, ownerId, variableValues, activityId);
if (isWriteToConsole())
writeToConsole("Process Launch Response", statusMsg.getStatusMessage() + "\n");
}
} catch (Exception ex) {
showError(ex, "Launch Process", process.getProject());
}
}
Aggregations