private PlanningContext prepareNewContext(PlanningContext context, Rel subtask) { PlanningContext newContext = context.getCopy(); // [x->y] assume x is known Set<Var> allSubtaskInputs = new LinkedHashSet<Var>(); unfoldVarsToSet(subtask.getInputs(), allSubtaskInputs); newContext.getKnownVars().addAll(allSubtaskInputs); newContext.getFoundVars().addAll(allSubtaskInputs); Set<Var> goals = new LinkedHashSet<Var>(); unfoldVarsToSet(subtask.getOutputs(), goals); newContext.addGoals(goals); return newContext; }