/* * This represents the set of actions that should be preformed when an * operator becomes a high-level operator */ public void firstTimeAdd(OperatorWindow operatorWindow, SoarWorkingMemoryModel swmm) throws IOException { OperatorNode parent = (OperatorNode) getParent(); // Create the Folder File folder = new File(parent.getFullPathName() + File.separator + name); if (!okayToCreate(folder, true)) return; if (!folder.mkdir()) throw new IOException(); // Determine the datamap id if (parent instanceof SoarOperatorNode) { dataMapId = (parent).getStateIdVertex(); } else { dataMapId = swmm.getTopstate(); } dataMapIdNumber = dataMapId.getValue(); // Make this node highlevel isHighLevel = true; // Add the folder folderName = folder.getName(); }
static Node build(List<Query> clauses) { OperatorNode top = new OperatorNode(Conjunction.OR); OperatorNode cur = new OperatorNode(Conjunction.AND); top.add(cur); for (Query query : clauses) { if (query instanceof ConjQuery) { if (((ConjQuery) query).getConjunction() == ConjQuery.Conjunction.OR) { cur = new OperatorNode(Conjunction.AND); top.add(cur); } } else if (query instanceof SubQuery) { SubQuery sq = (SubQuery) query; Node subTree = build(sq.getSubClauses()); subTree.setBool(sq.getModifier() != Query.Modifier.MINUS); cur.add(subTree); } else { cur.add(new ThingNode(query)); } } return top; }