Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/hp/hpl/jena/shared/wg/LazyInputStream.java


1   /*
2    *  (c) Copyright 2000, 2001, 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP
3    *  All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    * 1. Redistributions of source code must retain the above copyright
9    *    notice, this list of conditions and the following disclaimer.
10   * 2. Redistributions in binary form must reproduce the above copyright
11   *    notice, this list of conditions and the following disclaimer in the
12   *    documentation and/or other materials provided with the distribution.
13   * 3. The name of the author may not be used to endorse or promote products
14   *    derived from this software without specific prior written permission.
15   
16   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26   *
27   *
28   * LazyZipEntryInputStream.java
29   *
30   * Created on November 28, 2001, 11:38 AM
31   */
32  
33  package com.hp.hpl.jena.shared.wg;
34  
35  
36  import java.io.*;
37  
38  /**
39   *In test cases we cannot open all the input files
40   * while creating the test suite, but must defer the
41   * opening until the test is actually run.
42   * @author  jjc
43   */
44  abstract class LazyInputStream extends InputStream {
45  
46      private InputStream underlying;
47      abstract InputStream open() throws IOException;
48      
49      boolean connect() throws IOException {
50        if ( underlying != null )
51          return true;
52        else {
53              underlying = open();
54        }
55        return underlying != null;
56          
57      }
58      
59      
60      public int read() throws IOException {
61          if (underlying == null)
62              underlying = open();
63          return underlying.read();
64      }
65      
66      public void close() throws IOException {
67          if (underlying != null) {
68              underlying.close();
69              underlying = null;
70          }
71      }
72      
73      
74  
75  }