Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.script;
 
 import java.util.Map;
 
 
 public class StackBlockEntry extends StackEntry {
 	protected Map<StringStructvariables = new HashMap<StringStruct>();
 	protected StackEntry currEntry = null;
 	protected int currPosition = 0;
 	protected boolean topFlag = true;
 
     public int getPosition() {
         return this.;
     }
 
     public void setPosition(int v) {
     	this. = v;
     }
 
     public boolean getTopFlag() {
         return this.;
     }
 
     public void setTopFlag(boolean v) {
     	this. = v;
     }
     
     public StackEntry getChild() {
         return this.
     }
     
     public void setChild(StackEntry v) { 
     	this. = v
     }
     
 	public StackBlockEntry(Activity actStackEntry parentInstruction inst) {
 		super(actparentinst);
 	}
 
 	public Collection<Structvariables() {
         return this..values(); 
     }
 
     public void addVariable(String nameStruct var) {
     	this..put(namevar);
     	
     	if ((var instanceof AutoCloseable) && (this. != null)) {
     		TaskRun run = this..getTaskRun();
     		
     		run.addCloseable((AutoCloseablevar);
     	}
     }
 
     public void clearVariables() {		
 		this..clear();
     }
 
     public Struct queryVariable(String name) {
 		if (StringUtil.isEmpty(name))
 			return null;
 		
 		// if variable not here, look in parent block
 		
         int dotpos = name.indexOf(".");
 
         if (dotpos > -1) {
             String oname = name.substring(0, dotpos);
 
             Struct ov = this..containsKey(oname) ? this..get(oname) : null;
 
             // if not here, look up blocks until Function level and that catch globals too
            if (ov == null
            	ov = super.queryVariable(oname);
            if (ov == null) {
            	this.log().errorTr(510, oname);
            	return null;
            }
            
            if (!(ov instanceof CompositeStruct)){
            	this.log().errorTr(511, oname);
            	return null;
            }
            
            FuncResult<Structsres = ((CompositeStruct)ov).select(name.substring(dotpos + 1)); 
            this.log().copyMessages(sres);
            
            return sres.getResult();
        }
        else if (this..containsKey(name)) {
            return this..get(name);
        }
        return super.queryVariable(name);
    }
    
    public void debugStack(ListStruct dumpList) {
    	RecordStruct dumpRec = new RecordStruct();
    	dumpList.addItem(dumpRec);
    	
    	this.collectDebugRecord(dumpRec);
    	RecordStruct subRec = this..collectDebugRecord(thisdumpRec);
    	if (subRec != null)
    		dumpList.addItem(subRec);
    	
        if (this. != null)
        	this..debugStack(dumpList);
    }
    public void collectDebugRecord(RecordStruct rec) {
    	RecordStruct dumpVariables = new RecordStruct();
    	rec.setField("Variables"dumpVariables);
        
        for (Entry<StringStructvar : this..entrySet()) 
            dumpVariables.setField(var.getKey(), var.getValue());
    }	
		return this;
	}
		return (this. != null) ? this. : this;
	}
New to GrepCode? Check out our FAQ X