OAssign.PropertyRef pref = new OAssign.PropertyRef(_context.getOProcess());
pref.variable = _context.resolveVariable(to.getAsPropertyVal().getVariable());
pref.propertyAlias = _context.resolvePropertyAlias(pref.variable, to.getAsPropertyVal().getProperty());
return pref;
} else if (to.isVariableVal()) {
VariableVal vv = to.getAsVariableVal();
OAssign.VariableRef vref = new OAssign.VariableRef(_context.getOProcess());
vref.variable = _context.resolveVariable(vv.getVariable());
OVarType rootNodeType = vref.variable.type;
if (to.getAsVariableVal().getPart() != null) {
vref.part = _context.resolvePart(vref.variable, vv.getPart());
rootNodeType = vref.part.type;
}
if (to.getAsVariableVal().getHeader() != null) {
vref.headerPart = _context.resolveHeaderPart(vref.variable, vv.getHeader());
if (vref.headerPart == null)
vref.headerPart = new OMessageVarType.Part(_context.getOProcess(), to.getAsVariableVal().getHeader(), null);
rootNodeType = vref.headerPart.type;
}
resultType[0] = rootNodeType;
if (vv.getLocation() != null && vv.getLocation().getExpression() != null)
vref.location = _context.compileExpr(vv.getLocation(), rootNodeType, null, resultType);
return vref;
} else if (to.isPartnerLinkVal()) {
OAssign.PartnerLinkRef plref = new OAssign.PartnerLinkRef(_context.getOProcess());
plref.partnerLink = _context.resolvePartnerLink(to.getAsPartnerLinkVal().getPartnerLink());
return plref;