public OUpdateExecutionPlan createExecutionPlan(OCommandContext ctx, boolean enableProfiling) { OUpdateExecutionPlan result = new OUpdateExecutionPlan(ctx); handleTarget(result, ctx, this.target, this.whereClause, this.timeout, enableProfiling); if(updateEdge){ result.chain(new CheckRecordTypeStep(ctx, "E", enableProfiling)); } handleUpsert(result, ctx, this.target, this.whereClause, this.upsert, enableProfiling); handleTimeout(result, ctx, this.timeout, enableProfiling); convertToModifiableResult(result, ctx, enableProfiling); handleLimit(result, ctx, this.limit, enableProfiling); handleReturnBefore(result, ctx, this.returnBefore, enableProfiling); handleOperations(result, ctx, this.operations, enableProfiling); handleLock(result, ctx, this.lockRecord); handleSave(result, ctx, enableProfiling); handleResultForReturnBefore(result, ctx, this.returnBefore, returnProjection, enableProfiling); handleResultForReturnAfter(result, ctx, this.returnAfter, returnProjection, enableProfiling); handleResultForReturnCount(result, ctx, this.returnCount, enableProfiling); return result; }