java.lang.Object
io.sf.carte.echosvg.util.ParsedURLData
Holds the data for more URLs.
-
Field Summary
Modifier and TypeFieldDescriptionprotected String
The extracted charset parameter from the Content-Type header.protected String
The extracted type/subtype from the Content-Type header.static final byte[]
GZIP header magic number bytes, like found in a gzipped files, which are encoded in Intel format (i.e. little indian).boolean
protected static final String
protected static final String
protected static final String
protected static final String
int
protected URL
The URL that was ultimately used to fetch the resource.Since the Data instance is 'hidden' in the ParsedURL instance we make all our methods public. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected 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
Implement Object.equals for ParsedURLData.protected void
extractContentTypeParts
(String userAgent) Extracts the type/subtype and charset parameter from the Content-Type header.static int
Gets the connect timeout.getContentEncoding
(String userAgent) Returns the content encoding if available.getContentType
(String userAgent) Returns the content type if available.getContentTypeCharset
(String userAgent) Returns the content type's charset parameter, if available.getContentTypeMediaType
(String userAgent) Returns the content type's type/subtype, if available.Returns the URL up to and include the port number on the host.Returns the URL that was ultimately used to fetch the resource represented by theParsedURL
.static int
Gets the read timeout.boolean
hasContentTypeParameter
(String userAgent, String param) Returns whether the Content-Type header has the given parameter.int
hashCode()
Implement Object.hashCode.openStream
(String userAgent, Iterator<String> mimeTypes) Open the stream and check for common compression types.protected InputStream
openStreamRaw
(String userAgent, Iterator<String> mimeTypes) Open the stream and returns it.protected boolean
sameFile
(ParsedURLData other) static void
setConnectTimeout
(int connectTimeout) Sets the connect timeout.static void
setReadTimeout
(int readTimeout) Sets the read timeout.toString()
Return a string representation of the data.
-
Field Details
-
HTTP_USER_AGENT_HEADER
- See Also:
-
HTTP_ACCEPT_HEADER
- See Also:
-
HTTP_ACCEPT_LANGUAGE_HEADER
- See Also:
-
HTTP_ACCEPT_ENCODING_HEADER
- See Also:
-
acceptedEncodings
-
GZIP_MAGIC
public static final byte[] GZIP_MAGICGZIP header magic number bytes, like found in a gzipped files, which are encoded in Intel format (i.e. little indian). -
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
-
port
public int port -
path
-
ref
-
contentType
-
contentEncoding
-
stream
-
hasBeenOpened
public boolean hasBeenOpened -
contentTypeMediaType
The extracted type/subtype from the Content-Type header. -
contentTypeCharset
The extracted charset parameter from the Content-Type header. -
postConnectionURL
The URL that was ultimately used to fetch the resource.
-
-
Constructor Details
-
ParsedURLData
public ParsedURLData()Void constructor -
ParsedURLData
Build from an existing URL.
-
-
Method Details
-
checkGZIP
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
Attempts to build a normal java.net.URL instance from this URL.- Throws:
MalformedURLException
-
getConnectTimeout
public static int getConnectTimeout()Gets the connect timeout.- Returns:
- the connect timeout.
-
setConnectTimeout
public static void setConnectTimeout(int connectTimeout) Sets the connect timeout.Default is 10 seconds.
- Parameters:
connectTimeout
- the connect timeout.- Throws:
IllegalArgumentException
- if the argument is negative.
-
getReadTimeout
public static int getReadTimeout()Gets the read timeout.- Returns:
- the read timeout.
-
setReadTimeout
public static void setReadTimeout(int readTimeout) Sets the read timeout.- Parameters:
readTimeout
- the read timeout.- Throws:
IllegalArgumentException
- if the argument is negative.
-
hashCode
public int hashCode()Implement Object.hashCode. -
equals
Implement Object.equals for ParsedURLData. -
getContentType
Returns the content type if available. This is only available for some protocols. -
getContentTypeMediaType
Returns the content type's type/subtype, if available. This is only available for some protocols. -
getContentTypeCharset
Returns the content type's charset parameter, if available. This is only available for some protocols. -
hasContentTypeParameter
Returns whether the Content-Type header has the given parameter. -
extractContentTypeParts
Extracts the type/subtype and charset parameter from the Content-Type header. -
getContentEncoding
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
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
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<String> mimeTypes, Iterator<String> encodingTypes) throws IOException - Throws:
IOException
-
getPortStr
Returns the URL up to and include the port number on the host. Does not include the path or fragment pieces. -
sameFile
-
toString
Return a string representation of the data. -
getPostConnectionURL
Returns the URL that was ultimately used to fetch the resource represented by theParsedURL
.
-