Hello Gary, why has the whole file changed?
Regards, Benedikt <ggreg...@apache.org> schrieb am Di., 20. Sep. 2016 um 07:40 Uhr: > Repository: commons-io > Updated Branches: > refs/heads/master 9ba9b49af -> 822bd135f > > > Remove redundant type arguments. > > Project: http://git-wip-us.apache.org/repos/asf/commons-io/repo > Commit: http://git-wip-us.apache.org/repos/asf/commons-io/commit/822bd135 > Tree: http://git-wip-us.apache.org/repos/asf/commons-io/tree/822bd135 > Diff: http://git-wip-us.apache.org/repos/asf/commons-io/diff/822bd135 > > Branch: refs/heads/master > Commit: 822bd135f3a54b8fbeb23c313535b13c18198c3a > Parents: 9ba9b49 > Author: Gary Gregory <ggreg...@apache.org> > Authored: Mon Sep 19 22:40:29 2016 -0700 > Committer: Gary Gregory <ggreg...@apache.org> > Committed: Mon Sep 19 22:40:29 2016 -0700 > > ---------------------------------------------------------------------- > .../commons/io/input/ObservableInputStream.java | 476 +++++++++---------- > 1 file changed, 238 insertions(+), 238 deletions(-) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/commons-io/blob/822bd135/src/main/java/org/apache/commons/io/input/ObservableInputStream.java > ---------------------------------------------------------------------- > diff --git > a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java > b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java > index 7d13472..c580ba4 100644 > --- a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java > +++ b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java > @@ -1,238 +1,238 @@ > -/* > - * Licensed to the Apache Software Foundation (ASF) under one or more > - * contributor license agreements. See the NOTICE file distributed with > - * this work for additional information regarding copyright ownership. > - * The ASF licenses this file to You under the Apache License, Version 2.0 > - * (the "License"); you may not use this file except in compliance with > - * the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, software > - * distributed under the License is distributed on an "AS IS" BASIS, > - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > - * See the License for the specific language governing permissions and > - * limitations under the License. > - */ > -package org.apache.commons.io.input; > - > -import java.io.IOException; > -import java.io.InputStream; > -import java.security.MessageDigest; > -import java.util.ArrayList; > -import java.util.List; > - > - > -/** > - * The {@link ObservableInputStream} allows, that an InputStream may be > consumed > - * by other receivers, apart from the thread, which is reading it. > - * The other consumers are implemented as instances of {@link Observer}. A > - * typical application may be the generation of a {@link MessageDigest} > on the > - * fly. > - * {@code Note}: The {@link ObservableInputStream} is <em>not</em> thread > safe, > - * as instances of InputStream usually aren't. > - * If you must access the stream from multiple threads, then > synchronization, locking, > - * or a similar means must be used. > - * @see MessageDigestCalculatingInputStream > - */ > -public class ObservableInputStream extends ProxyInputStream { > - public static abstract class Observer { > - /** Called to indicate, that {@link InputStream#read()} has been > invoked > - * on the {@link ObservableInputStream}, and will return a value. > - * @param pByte The value, which is being returned. This will > never be -1 (EOF), > - * because, in that case, {link #finished()} will be invoked > instead. > - */ > - void data(int pByte) throws IOException {} > - /** Called to indicate, that {@link InputStream#read(byte[])}, or > - * {@link InputStream#read(byte[], int, int)} have been called, > and are about to > - * invoke data. > - * @param pBuffer The byte array, which has been passed to the > read call, and where > - * data has been stored. > - * @param pOffset The offset within the byte array, where data > has been stored. > - * @param pLength The number of bytes, which have been stored in > the byte array. > - */ > - void data(byte[] pBuffer, int pOffset, int pLength) throws > IOException {} > - /** Called to indicate, that EOF has been seen on the underlying > stream. > - * This method may be called multiple times, if the reader keeps > invoking > - * either of the read methods, and they will consequently keep > returning > - * EOF. > - */ > - void finished() throws IOException {} > - /** Called to indicate, that the {@link ObservableInputStream} > has been closed. > - */ > - void closed() throws IOException {} > - /** > - * Called to indicate, that an error occurred on the underlying > stream. > - */ > - void error(IOException pException) throws IOException { throw > pException; } > - } > - > - private final List<Observer> observers = new ArrayList<Observer>(); > - > - public ObservableInputStream(InputStream pProxy) { > - super(pProxy); > - } > - > - public void add(Observer pObserver) { > - observers.add(pObserver); > - } > - > - public void remove(Observer pObserver) { > - observers.remove(pObserver); > - } > - > - public void removeAllObservers() { > - observers.clear(); > - } > - > - @Override > - public int read() throws IOException { > - int result = 0; > - IOException ioe = null; > - try { > - result = super.read(); > - } catch (IOException pException) { > - ioe = pException; > - } > - if (ioe != null) { > - noteError(ioe); > - } else if (result == -1) { > - noteFinished(); > - } else { > - noteDataByte(result); > - } > - return result; > - } > - > - @Override > - public int read(byte[] pBuffer) throws IOException { > - int result = 0; > - IOException ioe = null; > - try { > - result = super.read(pBuffer); > - } catch (IOException pException) { > - ioe = pException; > - } > - if (ioe != null) { > - noteError(ioe); > - } else if (result == -1) { > - noteFinished(); > - } else if (result > 0) { > - noteDataBytes(pBuffer, 0, result); > - } > - return result; > - } > - > - @Override > - public int read(byte[] pBuffer, int pOffset, int pLength) throws > IOException { > - int result = 0; > - IOException ioe = null; > - try { > - result = super.read(pBuffer, pOffset, pLength); > - } catch (IOException pException) { > - ioe = pException; > - } > - if (ioe != null) { > - noteError(ioe); > - } else if (result == -1) { > - noteFinished(); > - } else if (result > 0) { > - noteDataBytes(pBuffer, pOffset, result); > - } > - return result; > - } > - > - /** Notifies the observers by invoking {@link > Observer#data(byte[],int,int)} > - * with the given arguments. > - * @param pBuffer Passed to the observers. > - * @param pOffset Passed to the observers. > - * @param pLength Passed to the observers. > - * @throws IOException Some observer has thrown an exception, which > is being > - * passed down. > - */ > - protected void noteDataBytes(byte[] pBuffer, int pOffset, int > pLength) throws IOException { > - for (Observer observer : getObservers()) { > - observer.data(pBuffer, pOffset, pLength); > - } > - } > - > - /** Notifies the observers by invoking {@link Observer#finished()}. > - * @throws IOException Some observer has thrown an exception, which > is being > - * passed down. > - */ > - protected void noteFinished() throws IOException { > - for (Observer observer : getObservers()) { > - observer.finished(); > - } > - } > - > - /** Notifies the observers by invoking {@link Observer#data(int)} > - * with the given arguments. > - * @param pDataByte Passed to the observers. > - * @throws IOException Some observer has thrown an exception, which > is being > - * passed down. > - */ > - protected void noteDataByte(int pDataByte) throws IOException { > - for (Observer observer : getObservers()) { > - observer.data(pDataByte); > - } > - } > - > - /** Notifies the observers by invoking {@link > Observer#error(IOException)} > - * with the given argument. > - * @param pException Passed to the observers. > - * @throws IOException Some observer has thrown an exception, which > is being > - * passed down. This may be the same exception, which has been > passed as an > - * argument. > - */ > - protected void noteError(IOException pException) throws IOException { > - for (Observer observer : getObservers()) { > - observer.error(pException); > - } > - } > - > - /** Notifies the observers by invoking {@link Observer#finished()}. > - * @throws IOException Some observer has thrown an exception, which > is being > - * passed down. > - */ > - protected void noteClosed() throws IOException { > - for (Observer observer : getObservers()) { > - observer.closed(); > - } > - } > - > - protected List<Observer> getObservers() { > - return observers; > - } > - > - @Override > - public void close() throws IOException { > - IOException ioe = null; > - try { > - super.close(); > - } catch (IOException e) { > - ioe = e; > - } > - if (ioe == null) { > - noteClosed(); > - } else { > - noteError(ioe); > - } > - } > - > - /** Reads all data from the underlying {@link InputStream}, while > notifying the > - * observers. > - * @throws IOException The underlying {@link InputStream}, or either > of the > - * observers has thrown an exception. > - */ > - public void consume() throws IOException { > - final byte[] buffer = new byte[8192]; > - for (;;) { > - final int res = read(buffer); > - if (res == -1) { > - return; > - } > - } > - } > - > -} > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.commons.io.input; > + > +import java.io.IOException; > +import java.io.InputStream; > +import java.security.MessageDigest; > +import java.util.ArrayList; > +import java.util.List; > + > + > +/** > + * The {@link ObservableInputStream} allows, that an InputStream may be > consumed > + * by other receivers, apart from the thread, which is reading it. > + * The other consumers are implemented as instances of {@link Observer}. A > + * typical application may be the generation of a {@link MessageDigest} > on the > + * fly. > + * {@code Note}: The {@link ObservableInputStream} is <em>not</em> thread > safe, > + * as instances of InputStream usually aren't. > + * If you must access the stream from multiple threads, then > synchronization, locking, > + * or a similar means must be used. > + * @see MessageDigestCalculatingInputStream > + */ > +public class ObservableInputStream extends ProxyInputStream { > + public static abstract class Observer { > + /** Called to indicate, that {@link InputStream#read()} has been > invoked > + * on the {@link ObservableInputStream}, and will return a value. > + * @param pByte The value, which is being returned. This will > never be -1 (EOF), > + * because, in that case, {link #finished()} will be invoked > instead. > + */ > + void data(int pByte) throws IOException {} > + /** Called to indicate, that {@link InputStream#read(byte[])}, or > + * {@link InputStream#read(byte[], int, int)} have been called, > and are about to > + * invoke data. > + * @param pBuffer The byte array, which has been passed to the > read call, and where > + * data has been stored. > + * @param pOffset The offset within the byte array, where data > has been stored. > + * @param pLength The number of bytes, which have been stored in > the byte array. > + */ > + void data(byte[] pBuffer, int pOffset, int pLength) throws > IOException {} > + /** Called to indicate, that EOF has been seen on the underlying > stream. > + * This method may be called multiple times, if the reader keeps > invoking > + * either of the read methods, and they will consequently keep > returning > + * EOF. > + */ > + void finished() throws IOException {} > + /** Called to indicate, that the {@link ObservableInputStream} > has been closed. > + */ > + void closed() throws IOException {} > + /** > + * Called to indicate, that an error occurred on the underlying > stream. > + */ > + void error(IOException pException) throws IOException { throw > pException; } > + } > + > + private final List<Observer> observers = new ArrayList<>(); > + > + public ObservableInputStream(InputStream pProxy) { > + super(pProxy); > + } > + > + public void add(Observer pObserver) { > + observers.add(pObserver); > + } > + > + public void remove(Observer pObserver) { > + observers.remove(pObserver); > + } > + > + public void removeAllObservers() { > + observers.clear(); > + } > + > + @Override > + public int read() throws IOException { > + int result = 0; > + IOException ioe = null; > + try { > + result = super.read(); > + } catch (IOException pException) { > + ioe = pException; > + } > + if (ioe != null) { > + noteError(ioe); > + } else if (result == -1) { > + noteFinished(); > + } else { > + noteDataByte(result); > + } > + return result; > + } > + > + @Override > + public int read(byte[] pBuffer) throws IOException { > + int result = 0; > + IOException ioe = null; > + try { > + result = super.read(pBuffer); > + } catch (IOException pException) { > + ioe = pException; > + } > + if (ioe != null) { > + noteError(ioe); > + } else if (result == -1) { > + noteFinished(); > + } else if (result > 0) { > + noteDataBytes(pBuffer, 0, result); > + } > + return result; > + } > + > + @Override > + public int read(byte[] pBuffer, int pOffset, int pLength) throws > IOException { > + int result = 0; > + IOException ioe = null; > + try { > + result = super.read(pBuffer, pOffset, pLength); > + } catch (IOException pException) { > + ioe = pException; > + } > + if (ioe != null) { > + noteError(ioe); > + } else if (result == -1) { > + noteFinished(); > + } else if (result > 0) { > + noteDataBytes(pBuffer, pOffset, result); > + } > + return result; > + } > + > + /** Notifies the observers by invoking {@link > Observer#data(byte[],int,int)} > + * with the given arguments. > + * @param pBuffer Passed to the observers. > + * @param pOffset Passed to the observers. > + * @param pLength Passed to the observers. > + * @throws IOException Some observer has thrown an exception, which > is being > + * passed down. > + */ > + protected void noteDataBytes(byte[] pBuffer, int pOffset, int > pLength) throws IOException { > + for (Observer observer : getObservers()) { > + observer.data(pBuffer, pOffset, pLength); > + } > + } > + > + /** Notifies the observers by invoking {@link Observer#finished()}. > + * @throws IOException Some observer has thrown an exception, which > is being > + * passed down. > + */ > + protected void noteFinished() throws IOException { > + for (Observer observer : getObservers()) { > + observer.finished(); > + } > + } > + > + /** Notifies the observers by invoking {@link Observer#data(int)} > + * with the given arguments. > + * @param pDataByte Passed to the observers. > + * @throws IOException Some observer has thrown an exception, which > is being > + * passed down. > + */ > + protected void noteDataByte(int pDataByte) throws IOException { > + for (Observer observer : getObservers()) { > + observer.data(pDataByte); > + } > + } > + > + /** Notifies the observers by invoking {@link > Observer#error(IOException)} > + * with the given argument. > + * @param pException Passed to the observers. > + * @throws IOException Some observer has thrown an exception, which > is being > + * passed down. This may be the same exception, which has been > passed as an > + * argument. > + */ > + protected void noteError(IOException pException) throws IOException { > + for (Observer observer : getObservers()) { > + observer.error(pException); > + } > + } > + > + /** Notifies the observers by invoking {@link Observer#finished()}. > + * @throws IOException Some observer has thrown an exception, which > is being > + * passed down. > + */ > + protected void noteClosed() throws IOException { > + for (Observer observer : getObservers()) { > + observer.closed(); > + } > + } > + > + protected List<Observer> getObservers() { > + return observers; > + } > + > + @Override > + public void close() throws IOException { > + IOException ioe = null; > + try { > + super.close(); > + } catch (IOException e) { > + ioe = e; > + } > + if (ioe == null) { > + noteClosed(); > + } else { > + noteError(ioe); > + } > + } > + > + /** Reads all data from the underlying {@link InputStream}, while > notifying the > + * observers. > + * @throws IOException The underlying {@link InputStream}, or either > of the > + * observers has thrown an exception. > + */ > + public void consume() throws IOException { > + final byte[] buffer = new byte[8192]; > + for (;;) { > + final int res = read(buffer); > + if (res == -1) { > + return; > + } > + } > + } > + > +} > >