public OLValueExpression compileLValueExpr(Expression expression, OVarType rootNodeType, Object requestedResultType, Object[] resultType) throws CompilationException { return (OLValueExpression) compileExpr(expression, false, true, rootNodeType, requestedResultType, resultType); }
public OExpression compileExpr(Expression expression) throws CompilationException { return compileExpr(expression, null, null, new Object[1]); }
public OExpression compileJoinCondition(Expression expression) throws CompilationException { return compileExpr(expression, true, false, null, null, new Object[1]); }
public OExpression compileExpr(Expression expression, OVarType rootNodeType, Object requestedResultType, Object[] resultType) throws CompilationException { return compileExpr(expression, false, false, rootNodeType, requestedResultType, resultType); }
public OExpression compileExpr(String expr, NSContext nc) { // Does this really work? BpelObject cur = _structureStack.topSource(); return compileExpr(new Expression11(cur.getElement(),cur.getElement().getOwnerDocument().createTextNode(expr)), false, false, null, null, new Object[1]); }
private void compileLinkSource(LinkSource linksrc) { OLink ol = resolveLink(linksrc.getLinkName()); assert ol != null; ol.debugInfo = createDebugInfo(linksrc, linksrc.toString()); if (ol.source != null) throw new CompilationException(__cmsgs.errDuplicateLinkSource(linksrc.getLinkName()).setSource(linksrc)); ol.source = _structureStack.topActivity(); ol.transitionCondition = linksrc.getTransitionCondition() == null ? constantExpr(true) : compileExpr(linksrc .getTransitionCondition()); _structureStack.topActivity().sourceLinks.add(ol); _structureStack.topActivity().outgoingLinks.add(ol); }
private OProcess.OPropertyAlias compile(PropertyAlias src) { OProcess.OProperty property = resolveProperty(src.getPropertyName()); OProcess.OPropertyAlias alias = new OProcess.OPropertyAlias(_oprocess); alias.debugInfo = createDebugInfo(_processDef, "PropertyAlias " + src.getPropertyName() + " for " + src.getMessageType()); if (src.getMessageType() == null){ throw new CompilationException(__cmsgs.errAliasUndeclaredMessage(src.getPropertyName(), src.getQuery().getPath())); } OMessageVarType messageType = resolveMessageType(src.getMessageType()); OVarType rootNodeType = messageType; alias.varType = messageType; // bpel 2.0 excludes declaration of part; // bpel 1.1 requires it if (src.getPart() != null) { alias.part = messageType.parts.get(src.getPart()); if (alias.part == null) throw new CompilationException(__cmsgs.errUnknownPartInAlias(src.getPart(), messageType.messageType.toString())); rootNodeType = alias.part.type; } if (src.getQuery() != null) alias.location = compileExpr(src.getQuery(), rootNodeType, null, new Object[1]); property.aliases.add(alias); alias.debugInfo = createDebugInfo(_processDef, src.getMessageType() + " --> " + src.getPropertyName()); return alias; }
oalarm.forExpr = compileExpr(onAlarm.getFor()); } else if (onAlarm.getFor() == null && onAlarm.getUntil() != null) { oalarm.untilExpr = compileExpr(onAlarm.getUntil()); } else if (onAlarm.getFor() != null && onAlarm.getUntil() != null) { throw new CompilationException(__cmsgs.errInvalidAlarm().setSource(onAlarm)); oalarm.repeatExpr = compileExpr(onAlarm.getRepeatEvery());