01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.environment;
18:
19: import org.apache.avalon.excalibur.pool.Recyclable;
20: import org.apache.cocoon.ProcessingException;
21: import org.apache.excalibur.xml.sax.XMLizable;
22: import org.xml.sax.InputSource;
23:
24: import java.io.IOException;
25: import java.io.InputStream;
26:
27: /**
28: * Description of a source. This interface provides a simple interface
29: * for accessing a source of data. The source of data is assumed to
30: * <b>not change</b> during the lifetime of the Source object. If you
31: * have a data source that can change its content and you want it to
32: * reflect in Cocoon, use a {@link ModifiableSource} object instead.
33: *
34: * @deprecated Use the {@link org.apache.excalibur.source.Source} interface instead
35: * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
36: * @author <a href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</a>
37: * @version CVS $Id: Source.java 433543 2006-08-22 06:22:54Z crossley $
38: */
39:
40: public interface Source extends Recyclable, XMLizable {
41: /**
42: * Get the last modification date of the source or 0 if it
43: * is not possible to determine the date.
44: */
45: long getLastModified();
46:
47: /**
48: * Get the content length of the source or -1 if it
49: * is not possible to determine the length.
50: */
51: long getContentLength();
52:
53: /**
54: * Return an <code>InputStream</code> object to read from the source.
55: */
56: InputStream getInputStream() throws ProcessingException,
57: IOException;
58:
59: /**
60: * Return an <code>InputSource</code> object to read the XML
61: * content.
62: *
63: * @return an <code>InputSource</code> value
64: * @exception ProcessingException if an error occurs
65: * @exception IOException if an error occurs
66: */
67: InputSource getInputSource() throws ProcessingException,
68: IOException;
69:
70: /**
71: * Return the unique identifer for this source
72: */
73: String getSystemId();
74: }
|