View Javadoc

1   /*
2    * Copyright (C) 2006  Tom Gibara
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not, write to the Free Software
16   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   */
18  package com.tomgibara.pronto.config.source;
19  
20  import java.io.IOException;
21  import java.io.InputStream;
22  import java.util.Map;
23  
24  /**
25   * Implementations of this interface can be supplied to ConfigSource objects
26   * which obtain their data from binary streams to specify how properties are
27   * read from the data.
28   * 
29   * @author Tom Gibara
30   * 
31   */
32  
33  public interface PropertiesReader {
34  
35      /**
36       * Reads the bytes from an input stream and returns a set of properties
37       * which have been extracted from it. This method exhausts the input stream
38       * but does not close it.
39       * 
40       * @param in
41       *            the input stream to be read
42       * @throws IOException
43       *             if an exception occurs reading the stream
44       * @return the properties read from the supplied input stream
45       */
46  
47      Map<String, String> read(InputStream in) throws IOException;
48  
49  }