Class UrlTemplateResource
- All Implemented Interfaces:
Serializable
,ITemplateResource
Implementation of ITemplateResource
that represents a template accessed through an URL (local or remote).
Objects of this class are usually created by UrlTemplateResolver
.
- Since:
- 3.0.0
- Author:
- Daniel Fernández
- See Also:
-
Constructor Summary
ConstructorDescriptionUrlTemplateResource
(String path, String characterEncoding) UrlTemplateResource
(URL url, String characterEncoding) -
Method Summary
Modifier and TypeMethodDescriptionboolean
exists()
Determines whether the resource represented by this object really exists or not.Returns the base name of a resource.Returns aString
describing the resource.reader()
Returns aReader
that can be used for consuming the template contents.Creates anotherITemplateResource
, usually of the same implementation class, for a resource living in a location relative to the current object's.
-
Constructor Details
-
UrlTemplateResource
- Throws:
MalformedURLException
-
UrlTemplateResource
-
-
Method Details
-
getDescription
Description copied from interface:ITemplateResource
Returns a
String
describing the resource.Note this should not be taken for a valid resource name, as depending on the implementation it could be too verbose/descriptive or not unique enough to be used for identification purposes.
- Specified by:
getDescription
in interfaceITemplateResource
- Returns:
- the resource description. Should never return
null
.
-
getBaseName
Description copied from interface:ITemplateResource
Returns the base name of a resource.
The base name is aimed at creating derivative names from the name of the resource, usually from the deepest level of the resource path.
For example, a file resource located at
/home/user/template/main.html
should returnmain
as its base name, so that names likemain.properties
,main.th.xml
or similar can be derived, and afterwards resolved usingITemplateResource.relative(String)
.- Specified by:
getBaseName
in interfaceITemplateResource
- Returns:
- the base name, or
null
if it cannot be computed for the specific type of resource.
-
reader
Description copied from interface:ITemplateResource
Returns a
Reader
that can be used for consuming the template contents.Most implementations of this interface will require specifying a character encoding during construction, so that this readers are correctly able to decode their underlying input streams.
Note this readers should be closed after being fully consumed, just like any other resources.
- Specified by:
reader
in interfaceITemplateResource
- Returns:
- a
Reader
on the template contents. Should never returnnull
. - Throws:
IOException
- if an input/output exception happens or if the resource does not exist (e.g.FileNotFoundException
).
-
relative
Description copied from interface:ITemplateResource
Creates another
ITemplateResource
, usually of the same implementation class, for a resource living in a location relative to the current object's.Note some
ITemplateResource
implementations might not support this feature.- Specified by:
relative
in interfaceITemplateResource
- Parameters:
relativeLocation
- the location of the resource we want to obtain, relative to the current one. Required.- Returns:
- the relative resource. Should never return
null
.
-
exists
public boolean exists()Description copied from interface:ITemplateResource
Determines whether the resource represented by this object really exists or not.
Note that, depending on the implementation, this might mean actually access the resource, and such operation could have a cost in performance in some scenarios (e.g. a resource representing a remote URL).
This mechanism will be used by Template Resolvers extending from
AbstractTemplateResolver
for checking real resource existence if theAbstractTemplateResolver.setCheckExistence(boolean)
flag is set totrue
.- Specified by:
exists
in interfaceITemplateResource
- Returns:
true
if the resource exists,false
if not.
-