code: function(fLocation, isMetadata, acceptPatch, options) {
  			var file = this._getFile(fLocation),
  				opts = options ? options : Object.create(null);
  			if (file === undefined) {
  				if(opts.readIfExists) {
  					//read-if-exists is spec'd to return null
  					return new Deferred().resolve(null);
  				}
  				return new Deferred().resolve(isMetadata ? {} : "");
  			} 
  			if(isMetadata){
  				var parents = fLocation === memoryFileSysConst.MEMORY_FILE_PROJECT_PATTERN ? [] : [this.fileRoot[memoryFileSysConst.MEMORY_FILE_PROJECT_PATTERN]];
  				var meta = {
  					Length: file.length,
  					Directory: Boolean(file.Directory),
  					LocalTimeStamp: file.LocalTimeStamp,
  					ETag: file.ETag,
  					Location: file.Location,
  					Name: file.Name,
  					Parents: parents
  				};
  				return new Deferred().resolve(meta);
  			}
  			return new Deferred().resolve(file.contents);
  		}
docs: Returns the contents or metadata of the file at the given location.
  
  @param {String} location The location of the file to get contents for
  @param {Boolean} [isMetadata] If defined and true, returns the file metadata,
  otherwise file contents are returned
  @param {Boolean} acceptPatch
  @param {?} options The set of options for the read, or undefined
  @return {Deferred} A deferred that will be provided with the contents or metadata when available
  @callback