001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package org.apache.commons.pipeline.stage; 019 020 import java.io.BufferedReader; 021 import java.io.IOException; 022 import java.io.InputStream; 023 import java.io.InputStreamReader; 024 import org.apache.commons.pipeline.stage.BaseStage; 025 import org.apache.commons.pipeline.StageException; 026 027 /** 028 * Breaks up an InputStream by line and exqueues each resulting line. 029 */ 030 public class InputStreamLineBreakStage extends BaseStage { 031 /** 032 * Holds value of property ignoringBlankLines. 033 */ 034 private boolean ignoringBlankLines = false; 035 036 /** Creates a new instance of InputStreamLineBreakStage */ 037 public InputStreamLineBreakStage() { 038 super(); 039 } 040 041 /** Creates a new instance of InputStreamLineBreakStage */ 042 public InputStreamLineBreakStage(boolean ignoringBlankLines) { 043 this.ignoringBlankLines = ignoringBlankLines; 044 } 045 046 public void process(Object obj) throws org.apache.commons.pipeline.StageException { 047 InputStream is = (InputStream) obj; 048 try { 049 InputStreamReader reader = new InputStreamReader(is); 050 BufferedReader buffered = new BufferedReader(reader); 051 String line = buffered.readLine(); 052 while (line != null){ 053 if (!(ignoringBlankLines && line.trim().equals(""))) { 054 this.emit(line); 055 } 056 line = buffered.readLine(); 057 } 058 } catch (IOException e){ 059 throw new StageException(this, e); 060 } 061 } 062 063 /** 064 * Getter for property ignoreBlankLines. 065 * @return Value of property ignoreBlankLines. 066 */ 067 public boolean isIgnoringBlankLines() { 068 return this.ignoringBlankLines; 069 } 070 071 /** 072 * Specifies that this stage will not exqueue blank lines. 073 * @param ignoreBlankLines New value of property ignoreBlankLines. 074 */ 075 public void setIgnoringBlankLines(boolean ignoringBlankLines) { 076 this.ignoringBlankLines = ignoringBlankLines; 077 } 078 }