code: protected boolean isDirty(){
  		if(dirty){
  			return true;
  		}
  		if(child==null){
  			return false;
  		}
  		LazyNode pointer=child;
  		while(pointer!=null){
  			if(pointer.isDirty())return true;
  			pointer=pointer.next;
  		}
  		return false;
  	}
docs: /*
  protected void moveInto(StringBuilder buf,char[] source,StringBuilder dirtyBuf){
  if(endIndex>-1 && type!=OBJECT && type!=ARRAY){
  int newIndex=buf.length();
  buf.append(getStringValue(source,dirtyBuf));
  startIndex=newIndex;
  endIndex=buf.length();
  }
  dirty=true;
  LazyNode pointer=child;
  while(pointer!=null){
  pointer.moveInto(buf,source,dirtyBuf);
  pointer=pointer.next;
  }
  }