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.interchange;
 
 
 
 public class FileSystemTextReader extends RecordStruct implements ITextReader {
 	protected FileSystemFile file = null;
 	
 	public FileSystemTextReader() {
 		this.setType(..getSchema().getType("dciFileSystemTextReader"));
 	}
 
 		this();
 		
 		this. = file;
 	}
 	
 		if (this. == null)
 			return null;
 		
 		return new TextReader();		
 	}
 	
 	public class TextReader implements IAsyncIterable<Struct>, IAsyncIterator<Struct> {
 		protected InputStream zin = null;		// TODO how/when does this close?
 		protected LineIterator lineit = null;
 		protected String next = null;
 
 		public IAsyncIterator<Structiterator() {
 			return this;
 		}
 
 		public void init(final OperationCallback callback) {
 			if (this. != null) {
 				callback.complete();
 				return;
 			}
 			
 			/* TODO
 			FileSystemTextReader.this.file.getInputStream(new FuncCallback<InputStream>() {				
 				@Override
 				public void callback() {
 					TextReader.this.zin = this.getResult();		
 					
 					try {
 						TextReader.this.lineit = IOUtil.lineIterator(TextReader.this.zin, Charset.forName("UTF-8"));		
 					}
 					catch (Exception x) {
 						// TODO log
 					}
 					
 					callback.completed();
 				}
 			});
 			*/
 		}
 		
 		public void hasNext(final FuncCallback<Booleancallback) {
 			this.init(new OperationCallback() {
 				public void callback() {
 					callback.setResult(TextReader.this..hasNext());
 					callback.complete();
 				}
 			});
 		}
 
		public void next(final FuncCallback<Structcallback) {
			this.init(new OperationCallback() {
				public void callback() {
					callback.complete();
				}
			});
		}
	}
    @Override
    protected void doCopy(Struct n) {
    	super.doCopy(n);
    	
		nn.file = this.;
    }
    
	public Struct deepCopy() {
		this.doCopy(cp);
		return cp;
	}
	/*
	@Override
	public void toBuilder(ICompositeBuilder builder) throws BuilderStateException {
		builder.startRecord();
		for (FieldStruct f : this.fields.values()) 
			f.toBuilder(builder);
		// TODO add in FS specific fields
		builder.endRecord();
	}
	@Override
	public Struct select(PathPart... path) {
		if (path.length > 0) {
			PathPart part = path[0];
			if (part.isField()) {			
				String fld = part.getField();
				if ("Scanner".equals(fld))
					return this.search;
			}			
		}
		return super.select(path);
	}
	*/
	public void operation(StackEntry stackXElement code) {
		/*
		if ("ChangeDirectory".equals(code.getName())) {
			String path = stack.stringFromElement(code, "Path");
			if (StringUtil.isEmpty(path)) {
				// TODO log
				stack.resume();
				return;
			}
			this.cwd = new File(path);
			stack.resume();
			return;
		}
		if ("ScanFilter".equals(code.getName())) {
			String path = stack.stringFromElement(code, "Path");
			...
			if (StringUtil.isEmpty(path)) {
				// TODO log
				stack.resume();
				return;
			}
			this.cwd = new File(path);
			stack.resume();
			return;
		}
		*/
		super.operation(stackcode);
	}
New to GrepCode? Check out our FAQ X