/** * Creates a deep clone of this {@link AMapCompAddStmIR} node while putting all * old node-new node relations in the map {@code oldToNewMap}. * @param oldToNewMap the map filled with the old node-new node relation * @return a deep clone of this {@link AMapCompAddStmIR} node */ public AMapCompAddStmIR clone(Map<INode,INode> oldToNewMap) { AMapCompAddStmIR node = new AMapCompAddStmIR( _sourceNode, _tag, _metaData, cloneNode(_map, oldToNewMap), cloneNode(_element, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Returns a deep clone of this {@link AMapCompAddStmIR} node. * @return a deep clone of this {@link AMapCompAddStmIR} node */ public AMapCompAddStmIR clone() { return new AMapCompAddStmIR( _sourceNode, _tag, _metaData, cloneNode(_map), cloneNode(_element) ); }
@Override protected List<SStmIR> getConditionalAdd(AIdentifierVarExpIR setVar, List<SPatternIR> patterns, SPatternIR pattern) { AIdentifierVarExpIR mapCompResult = new AIdentifierVarExpIR(); mapCompResult.setType(compType.clone()); mapCompResult.setName(idPattern.getName()); mapCompResult.setIsLambda(false); mapCompResult.setIsLocal(true); AMapCompAddStmIR add = new AMapCompAddStmIR(); add.setMap(mapCompResult); add.setElement(first.clone()); return consConditionalAdd(mapCompResult, add); } }