I have a question that I can't figure out right now. I have a class as Iframe which has the variable "private List pathContainer" to maintain the path of the Iframe.
Given is the code of it,
public class IFrame implements HtmlElement {
private WebElement elem;
private String xpath;
private boolean selected;
private String parentClass;
private boolean isProcessed=false;
private boolean isIframeContent=false;
private List <String> pathContainer;
public IFrame(WebElement elem) {
this.elem = elem;
pathContainer=new ArrayList<String>();
}
I'm passing the path list of a parent iframe to a sub iframe to include it in it's list. But when ever I modify the subIframe path list, the parent Iframe pathlist also gets changed. Given is the code of the function,
public void LoadIFrameNodes(List<String> parentPath){
IFrame iframe=new IFrame(e);
List <String> tempPath=new ArrayList<String>();
iframe.setPathContainer(parentPath); //assigning parent path in subIframe list
tempPath=iframe.getPathContainer();
tempPath.add(iframe.getXpath()); // add another value to subIframe
iframe.setPathContainer(tempPath); //setting the changed list as the subIframe
}
Once the the subIframe is set with the new values, the passed parentPath list also gets changed with the new values. I don't the passed list to be updated. Please let me know where it went wrong?