org.apache.batik.util
Class ParsedURLData

java.lang.Object
  extended by org.apache.batik.util.ParsedURLData

public class ParsedURLData
extends Object

Holds the data for more URLs.


Field Summary
protected static List acceptedEncodings
           
 String contentEncoding
           
 String contentType
           
protected  String contentTypeCharset
          The extracted charset parameter from the Content-Type header.
protected  String contentTypeMediaType
          The extracted type/subtype from the Content-Type header.
static byte[] GZIP_MAGIC
          GZIP header magic number bytes, like found in a gzipped files, which are encoded in Intel format (i.e. little indian).
 boolean hasBeenOpened
           
 String host
           
protected static String HTTP_ACCEPT_ENCODING_HEADER
           
protected static String HTTP_ACCEPT_HEADER
           
protected static String HTTP_ACCEPT_LANGUAGE_HEADER
           
protected static String HTTP_USER_AGENT_HEADER
           
 String path
           
 int port
           
 String protocol
          Since the Data instance is 'hidden' in the ParsedURL instance we make all our methods public.
 String ref
           
 InputStream stream
           
 
Constructor Summary
ParsedURLData()
          Void constructor
ParsedURLData(URL url)
          Build from an existing URL.
 
Method Summary
protected  URL buildURL()
          Attempts to build a normal java.net.URL instance from this URL.
static InputStream checkGZIP(InputStream is)
          This is a utility function others can call that checks if is is a GZIP stream if so it returns a GZIPInputStream that will decode the contents, otherwise it returns (or a buffered version of is) untouched.
 boolean complete()
          Returns true if the URL looks well formed and complete.
 boolean equals(Object obj)
          Implement Object.equals for ParsedURLData.
protected  void extractContentTypeParts(String userAgent)
          Extracts the type/subtype and charset parameter from the Content-Type header.
 String getContentEncoding(String userAgent)
          Returns the content encoding if available.
 String getContentType(String userAgent)
          Returns the content type if available.
 String getContentTypeCharset(String userAgent)
          Returns the content type's charset parameter, if available.
 String getContentTypeMediaType(String userAgent)
          Returns the content type's type/subtype, if available.
 String getPortStr()
          Returns the URL up to and include the port number on the host.
 boolean hasContentTypeParameter(String userAgent, String param)
          Returns whether the Content-Type header has the given parameter.
 int hashCode()
          Implement Object.hashCode.
 InputStream openStream(String userAgent, Iterator mimeTypes)
          Open the stream and check for common compression types.
protected  InputStream openStreamInternal(String userAgent, Iterator mimeTypes, Iterator encodingTypes)
           
 InputStream openStreamRaw(String userAgent, Iterator mimeTypes)
          Open the stream and returns it.
protected  boolean sameFile(ParsedURLData other)
           
 String toString()
          Return a string representation of the data.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

HTTP_USER_AGENT_HEADER

protected static final String HTTP_USER_AGENT_HEADER
See Also:
Constant Field Values

HTTP_ACCEPT_HEADER

protected static final String HTTP_ACCEPT_HEADER
See Also:
Constant Field Values

HTTP_ACCEPT_LANGUAGE_HEADER

protected static final String HTTP_ACCEPT_LANGUAGE_HEADER
See Also:
Constant Field Values

HTTP_ACCEPT_ENCODING_HEADER

protected static final String HTTP_ACCEPT_ENCODING_HEADER
See Also:
Constant Field Values

acceptedEncodings

protected static List acceptedEncodings

GZIP_MAGIC

public static final byte[] GZIP_MAGIC
GZIP header magic number bytes, like found in a gzipped files, which are encoded in Intel format (i.e. little indian).


protocol

public String protocol
Since the Data instance is 'hidden' in the ParsedURL instance we make all our methods public. This makes it easy for the various Protocol Handlers to update an instance as parsing proceeds.


host

public String host

port

public int port

path

public String path

ref

public String ref

contentType

public String contentType

contentEncoding

public String contentEncoding

stream

public InputStream stream

hasBeenOpened

public boolean hasBeenOpened

contentTypeMediaType

protected String contentTypeMediaType
The extracted type/subtype from the Content-Type header.


contentTypeCharset

protected String contentTypeCharset
The extracted charset parameter from the Content-Type header.

Constructor Detail

ParsedURLData

public ParsedURLData()
Void constructor


ParsedURLData

public ParsedURLData(URL url)
Build from an existing URL.

Method Detail

checkGZIP

public static InputStream checkGZIP(InputStream is)
                             throws IOException
This is a utility function others can call that checks if is is a GZIP stream if so it returns a GZIPInputStream that will decode the contents, otherwise it returns (or a buffered version of is) untouched.

Parameters:
is - Stream that may potentially be a GZIP stream.
Throws:
IOException

buildURL

protected URL buildURL()
                throws MalformedURLException
Attempts to build a normal java.net.URL instance from this URL.

Throws:
MalformedURLException

hashCode

public int hashCode()
Implement Object.hashCode.

Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Implement Object.equals for ParsedURLData.

Overrides:
equals in class Object

getContentType

public String getContentType(String userAgent)
Returns the content type if available. This is only available for some protocols.


getContentTypeMediaType

public String getContentTypeMediaType(String userAgent)
Returns the content type's type/subtype, if available. This is only available for some protocols.


getContentTypeCharset

public String getContentTypeCharset(String userAgent)
Returns the content type's charset parameter, if available. This is only available for some protocols.


hasContentTypeParameter

public boolean hasContentTypeParameter(String userAgent,
                                       String param)
Returns whether the Content-Type header has the given parameter.


extractContentTypeParts

protected void extractContentTypeParts(String userAgent)
Extracts the type/subtype and charset parameter from the Content-Type header.


getContentEncoding

public String getContentEncoding(String userAgent)
Returns the content encoding if available. This is only available for some protocols.


complete

public boolean complete()
Returns true if the URL looks well formed and complete. This does not garuntee that the stream can be opened but is a good indication that things aren't totally messed up.


openStream

public InputStream openStream(String userAgent,
                              Iterator mimeTypes)
                       throws IOException
Open the stream and check for common compression types. If the stream is found to be compressed with a standard compression type it is automatically decompressed.

Parameters:
userAgent - The user agent opening the stream (may be null).
mimeTypes - The expected mime types of the content in the returned InputStream (mapped to Http accept header among other possability). The elements of the iterator must be strings (may be null)
Throws:
IOException

openStreamRaw

public InputStream openStreamRaw(String userAgent,
                                 Iterator mimeTypes)
                          throws IOException
Open the stream and returns it. No checks are made to see if the stream is compressed or encoded in any way.

Parameters:
userAgent - The user agent opening the stream (may be null).
mimeTypes - The expected mime types of the content in the returned InputStream (mapped to Http accept header among other possability). The elements of the iterator must be strings (may be null)
Throws:
IOException

openStreamInternal

protected InputStream openStreamInternal(String userAgent,
                                         Iterator mimeTypes,
                                         Iterator encodingTypes)
                                  throws IOException
Throws:
IOException

getPortStr

public String getPortStr()
Returns the URL up to and include the port number on the host. Does not include the path or fragment pieces.


sameFile

protected boolean sameFile(ParsedURLData other)

toString

public String toString()
Return a string representation of the data.

Overrides:
toString in class Object


Copyright © 2008 Apache Software Foundation. All Rights Reserved.