Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Druid - a distributed column store.
   * Copyright (C) 2012, 2013  Metamarkets Group Inc.
   *
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License
   * as published by the Free Software Foundation; either version 2
   * of the License, or (at your option) any later version.
   *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
 package io.druid.examples.flights;
 
 
 import java.io.File;
 
 public class FlightsFirehoseFactory implements FirehoseFactory
 {
   private final String flightsFileLocation;
   private final StringInputRowParser parser;
 
       @JsonProperty("directory"String flightsFilesDirectory,
       @JsonProperty("parser"StringInputRowParser parser
   )
   {
     this. = flightsFilesDirectory;
     this. = parser;
   }
 
   @JsonProperty("directory")
   {
     return ;
   }
 
   @Override
   public Firehose connect() throws IOException
   {
     File dir = new File();
 
     final Iterator<Filefiles = Iterators.forArray(dir.listFiles());
 
     return new Firehose()
     {
       BufferedReader in = null;
       String line = null;
 
       @Override
       public boolean hasMore()
       {
         try {
           if ( != null) {
             return true;
           }
           else if ( != null) {
              = .readLine();
 
             if ( == null) {
               Closeables.closeQuietly();
                = null;
             }
 
             return true;
           }
           else if (files.hasNext()) {
             final File nextFile = files.next();
 
             if (nextFile.getName().endsWith(".gz")) {
                = new BufferedReader(
                   new InputStreamReader(new GZIPInputStream(new FileInputStream(nextFile)), .)
              );
            }
            else {
               = new BufferedReader(new FileReader(nextFile));
            }
            return hasMore();
          }
          Thread.currentThread().join();
          return false;
        }
        catch (IOException e) {
          throw Throwables.propagate(e);
        }
        catch (InterruptedException e) {
          throw Throwables.propagate(e);
        }
      }
      @Override
      public InputRow nextRow()
      {
        final InputRow retVal = .parse();
         = null;
        return retVal;
      }
      @Override
      public Runnable commit()
      {
        return new Runnable()
        {
          @Override
          public void run()
          {
          }
        };
      }
      @Override
      public void close() throws IOException
      {
        Closeables.closeQuietly();
      }
    };
  }
New to GrepCode? Check out our FAQ X