Package net.ontopia.infoset.impl.basic
Class URILocator
- java.lang.Object
-
- net.ontopia.infoset.impl.basic.AbstractLocator
-
- net.ontopia.infoset.impl.basic.URILocator
-
- All Implemented Interfaces:
Externalizable
,Serializable
,LocatorIF
public class URILocator extends AbstractLocator implements Externalizable
PUBLIC: A Uniform Resource Identifier locator. Only URI locators should be used with this locator class. The notation is 'URI'.The address is always normalized by the constructor. The address given to the constructor must be absolute.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected String
address
protected short
authorityEnd
protected short
fragmentStart
protected short
lastSlash
protected short
schemeEnd
-
Constructor Summary
Constructors Modifier Constructor Description URILocator()
INTERNAL: No-argument constructor used by serialization.URILocator(File file)
PUBLIC: Creates a URILocator containing a file URL referring to the file represented by the File object.URILocator(String address)
PUBLIC: Creates a URILocator representing the URI given.protected
URILocator(String normalized, short schemeEnd, short authorityEnd, short lastSlash, short fragmentStart)
INTERNAL: Special constructor used when resolving a URI relative to a base URI.URILocator(URL url)
PUBLIC: Creates a URILocator representing the URL given.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static URILocator
create(String uriAddress)
INTERNAL: Parses the URI and returns an instance of URILocator if the URI is valid.boolean
equals(Object object)
PUBLIC: Two LocatorIFs are considered equal if they have the same address and notation properties.String
getAddress()
PUBLIC: Returns the locator address in absolute and normalized form.String
getExternalForm()
PUBLIC: Returns the address of the locator in external form; that is, with special characters that need to be escaped escaped using the escape syntax of the locator notation.String
getNotation()
PUBLIC: Gets the locator notation.int
hashCode()
PUBLIC: Returns the hashcode of the address property.protected String
normalize(String address)
int
parseDirectoryPart(char[] uri, int ix, int length)
void
readExternal(ObjectInput in)
LocatorIF
resolveAbsolute(String rel)
PUBLIC: Given a locator address string that is relative to this locator, return an absolute locator.protected static String
toExternalForm(String address)
void
writeExternal(ObjectOutput out)
-
Methods inherited from class net.ontopia.infoset.impl.basic.AbstractLocator
toString
-
-
-
-
Field Detail
-
address
protected String address
-
schemeEnd
protected short schemeEnd
-
authorityEnd
protected short authorityEnd
-
lastSlash
protected short lastSlash
-
fragmentStart
protected short fragmentStart
-
-
Constructor Detail
-
URILocator
public URILocator()
INTERNAL: No-argument constructor used by serialization. Do not use this constructor in application code.
-
URILocator
public URILocator(String address) throws MalformedURLException
PUBLIC: Creates a URILocator representing the URI given. Note that the URI string should be in external form, and that it must be absolute.- Throws:
MalformedURLException
-
URILocator
public URILocator(URL url) throws MalformedURLException
PUBLIC: Creates a URILocator representing the URL given.- Throws:
MalformedURLException
-
URILocator
public URILocator(File file)
PUBLIC: Creates a URILocator containing a file URL referring to the file represented by the File object.- Since:
- 1.3.4
-
URILocator
protected URILocator(String normalized, short schemeEnd, short authorityEnd, short lastSlash, short fragmentStart)
INTERNAL: Special constructor used when resolving a URI relative to a base URI. Since the base URI is already normalized we can avoid repeating the normalization, and thus save time.
-
-
Method Detail
-
normalize
protected String normalize(String address) throws MalformedURLException
- Throws:
MalformedURLException
-
getNotation
public String getNotation()
Description copied from interface:LocatorIF
PUBLIC: Gets the locator notation. The default notation is URI. Ontopia will never use notation names which begin with 'x-'. Notation names are case-insensitive.Note that only the URI notation is supported in release OKS 4.0 and newer.
- Specified by:
getNotation
in interfaceLocatorIF
-
getAddress
public String getAddress()
Description copied from interface:LocatorIF
PUBLIC: Returns the locator address in absolute and normalized form. Whether addresses are case-sensitive or not depends on the locator notation.- Specified by:
getAddress
in interfaceLocatorIF
-
resolveAbsolute
public LocatorIF resolveAbsolute(String rel)
Description copied from interface:LocatorIF
PUBLIC: Given a locator address string that is relative to this locator, return an absolute locator. If the input locator address is absolute the returned locator object will simply contain that absolute locator address.- Specified by:
resolveAbsolute
in interfaceLocatorIF
-
getExternalForm
public String getExternalForm()
Description copied from interface:LocatorIF
PUBLIC: Returns the address of the locator in external form; that is, with special characters that need to be escaped escaped using the escape syntax of the locator notation.- Specified by:
getExternalForm
in interfaceLocatorIF
-
parseDirectoryPart
public int parseDirectoryPart(char[] uri, int ix, int length) throws MalformedURLException
- Throws:
MalformedURLException
-
hashCode
public int hashCode()
Description copied from class:AbstractLocator
PUBLIC: Returns the hashcode of the address property. All subclasses of AbstractLocator must use the same hashCode implementation in order to guarantee interoperability. E.g. when looking up LocatorIFs in Maps.- Overrides:
hashCode
in classAbstractLocator
-
equals
public boolean equals(Object object)
Description copied from class:AbstractLocator
PUBLIC: Two LocatorIFs are considered equal if they have the same address and notation properties.- Overrides:
equals
in classAbstractLocator
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
create
public static URILocator create(String uriAddress)
INTERNAL: Parses the URI and returns an instance of URILocator if the URI is valid. If the URI is invalid null is returned.- Since:
- 3.0
-
-