public class ItemLink extends DynamoServlet
The Url is created from on a template.
The template is retrieved based on the item descriptor and the browser type of the request. The template is populate by request parameters or by looking up the item and getting it's properties. This droplet takes 5 optional input request parameters-
If the template references item properties then either:
item | The repository item, or |
id | The ID of the repository item. |
If the default descriptor name in the properties isn't correct:
itemDescriptorName | The item descriptor name to lookup the template. If this isn't supplied then the item descriptor will be taken from the repository item. If the repository item isn't supplied then the descriptor will default to a value in the properties. |
If the item needs to be looked up by id then a repository must be used. This can be specified using the one of the input parameters below. Otherwise the default repository in the parser will be used.
If the item isn't found there either then the default repository for the droplet will be used.
repository | The repository to use, or |
repositoryName | The name of the repository to use. |
It is possible to use this droplet without specifying any input parameters in which case the itemDescriptorName will be the default from the properties file and the Url template cannot reference any item properties.
However it is more likely that a template will be used that references item properties in which case the 'item' property must be supplied or else the 'id' and usually the 'itemDescriptorName' and optionally the 'repository' or 'repositoryName'. However the 'itemDescriptorName' and 'repositoryName' can both default to values in the properties.
There are 2 output parameters:
url | The string URL generated by this droplet |
errorMessage | A string error message if a problem occurred generating the url |
There are 3 open parameters:
output | Serviced if the url is generated successfully. |
empty | If there is no template defined for the browser type. |
error | Services if a problem occurred generating the url. |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION
Class version string
|
protected java.util.Map |
mItemDescriptorToNameMap
Map of item descriptor objects to their names.
|
static ParameterName |
S_EMPTY |
static ParameterName |
S_ERROR |
static java.lang.String |
S_ERROR_MESSAGE |
static ParameterName |
S_ID |
static ParameterName |
S_ITEM |
static ParameterName |
S_ITEM_DESCRIPTOR_NAME |
static ParameterName |
S_OUTPUT |
static ParameterName |
S_REPOSITORY |
static ParameterName |
S_REPOSITORY_NAME |
static ParameterName |
S_SITE_ID |
static java.lang.String |
S_URL |
mAllowCleanupRequest, mParameters
SERVLET_INFO_KEY
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
ItemLink() |
Modifier and Type | Method and Description |
---|---|
void |
doStartService()
Initializes the maps.
|
protected UrlTemplateMapper |
getBestFitTemplateMapper(DynamoHttpServletRequest pRequest,
java.lang.String pItemDescriptorName,
UrlParameterLookup pLookup)
Method to get the best fit UrlTemplateMapper object for the given item descriptor name.
|
java.lang.String |
getDefaultItemDescriptorName()
Gets the default item descriptor name property
|
Repository |
getDefaultRepository()
Gets the default repository property
|
WebApp |
getDefaultWebApp() |
protected java.lang.String |
getItemDescriptorName(DynamoHttpServletRequest pRequest,
UrlParameterLookup pLookup)
This method obtains the repository item descriptor name from the request.
|
ServiceMap |
getItemDescriptorNameToMapperMap()
Gets the map of item descriptor names to
UrlTemplateMapper instances |
protected UrlParameterLookup |
getItemLookup(DynamoHttpServletRequest pRequest)
This method creates a lookup item for the item or id from the request.
|
protected java.lang.String |
getRepositoryName(DynamoHttpServletRequest pRequest,
UrlParameterLookup pLookup)
This method obtains the repository name from the request.
|
protected UrlParameterLookup |
getSiteLookup(DynamoHttpServletRequest pRequest)
This method creates a lookup item for the item or id from the request.
|
SiteManager |
getSiteManager()
Gets the SiteManager property
|
java.lang.String |
getSpaceMapping()
Getter for the space mapping property.
|
protected UrlTemplate |
getTemplate(DynamoHttpServletRequest pRequest,
UrlTemplateMapper pMapper)
Gets the UrlTemplate to use to format the Url to return to the caller.
|
protected UrlTemplateMapper |
getTemplateMapper(DynamoHttpServletRequest pRequest,
java.lang.String pItemDescriptorName,
UrlParameterLookup pLookup)
Method to get the UrlTemplateMapper object for the given item descriptor name.
|
protected void |
populateParams(DynamoHttpServletRequest pRequest,
UrlParameter[] pParams,
UrlParameterLookup pLookup)
This method populates the value of the parameters needed to create the Url string.
|
protected void |
populateParams(DynamoHttpServletRequest pRequest,
UrlParameter[] pParams,
UrlParameterLookup[] pLookups)
This method populates the value of the parameters needed to create the Url string.
|
void |
service(DynamoHttpServletRequest pRequest,
DynamoHttpServletResponse pResponse)
Generates a url string based on a template populated by item properties and/or request
properties.
|
void |
setDefaultItemDescriptorName(java.lang.String pDefaultItemDescriptorName)
Sets the default item descriptor name property
|
void |
setDefaultRepository(Repository pDefaultRepository)
Sets the default repository property
|
void |
setDefaultWebApp(WebApp pDefaultWebApp) |
void |
setItemDescriptorNameToMapperMap(ServiceMap pItemDescriptorNameToMapperMap)
Sets the map of item descriptor names to
UrlTemplateMapper instances |
void |
setSiteManager(SiteManager pSiteManager)
Sets the SiteManager property
|
void |
setSpaceMapping(java.lang.String pSpaceMapping)
Setter for the space mapping property.
|
doDelete, doGet, doPost, doPut, getParameter, getParameters, getServletContext, init, service, service, setParameter
destroy, getServletConfig, getServletInfo, setServletInfo
getAverageRequestHandlingTime, getHandledRequestCount, getRequestStartTime, getTotalRequestHandlingTime, isKeepingStatistics, notifyHandledRequest, resetStatistics, setKeepingStatistics
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
public static final ParameterName S_ITEM
public static final ParameterName S_ITEM_DESCRIPTOR_NAME
public static final ParameterName S_ID
public static final ParameterName S_REPOSITORY
public static final ParameterName S_REPOSITORY_NAME
public static final ParameterName S_SITE_ID
public static final java.lang.String S_ERROR_MESSAGE
public static final java.lang.String S_URL
public static final ParameterName S_OUTPUT
public static final ParameterName S_EMPTY
public static final ParameterName S_ERROR
protected java.util.Map mItemDescriptorToNameMap
public java.lang.String getSpaceMapping()
public void setSpaceMapping(java.lang.String pSpaceMapping)
pSpaceMapping
- String mappingpublic void setDefaultRepository(Repository pDefaultRepository)
pDefaultRepository
- The default repository to set.public Repository getDefaultRepository()
Repository
instance that has been configured as the default repository.public void setDefaultItemDescriptorName(java.lang.String pDefaultItemDescriptorName)
pDefaultItemDescriptorName
- The default item descriptor name to setpublic java.lang.String getDefaultItemDescriptorName()
public void setItemDescriptorNameToMapperMap(ServiceMap pItemDescriptorNameToMapperMap)
UrlTemplateMapper
instancespItemDescriptorNameToMapperMap
- The map to set.public ServiceMap getItemDescriptorNameToMapperMap()
UrlTemplateMapper
instancesMap
of item descriptor names to UrlTemplateMapper
instances that is a property of this droplet.public WebApp getDefaultWebApp()
WebApp
that is configured for this jump servlet instance.public void setDefaultWebApp(WebApp pDefaultWebApp)
pDefaultWebApp
- The default WebApp
to set.public void setSiteManager(SiteManager pSiteManager)
pSiteManager
- The Site Managerpublic SiteManager getSiteManager()
public void doStartService() throws ServiceException
doStartService
in class GenericService
ServiceException
GenericService.doStartService()
public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws javax.servlet.ServletException, java.io.IOException
service
in class DynamoServlet
pRequest
- DynamoHttpSevletRequestpResponse
- DynamoHttpServletResponsejavax.servlet.ServletException
- an application specific error occurred
processing this requestjava.io.IOException
- an error occurred reading data from the request
or writing data to the response.protected UrlTemplateMapper getTemplateMapper(DynamoHttpServletRequest pRequest, java.lang.String pItemDescriptorName, UrlParameterLookup pLookup)
pRequest
- DynamoHttpServletRequest objectpItemDescriptorName
- String item descriptor name to map to a UrlTemplateMapper.pLookup
- UrlParameterLookup object containing some request parameter info.protected UrlTemplateMapper getBestFitTemplateMapper(DynamoHttpServletRequest pRequest, java.lang.String pItemDescriptorName, UrlParameterLookup pLookup)
pRequest
- DynamoHttpServletRequest objectpItemDescriptorName
- String item descriptor name to map to a mapper.pLookup
- UrlParameterLookup object containing some request parameter infoprotected UrlTemplate getTemplate(DynamoHttpServletRequest pRequest, UrlTemplateMapper pMapper) throws atg.repository.seo.ItemLinkException
If the user needs to override where the template is obtained this should be done here.
pRequest
- DynamoHttpServletRequest objectpMapper
- UrlTemplateMapper to get the template fromatg.repository.seo.ItemLinkException
protected void populateParams(DynamoHttpServletRequest pRequest, UrlParameter[] pParams, UrlParameterLookup pLookup)
pRequest
- DynamoHttpServletRequest objectpParams
- array of UrlParameter needing setpLookup
- UrlParameterLookup object of the item passed into this request, may be nullprotected void populateParams(DynamoHttpServletRequest pRequest, UrlParameter[] pParams, UrlParameterLookup[] pLookups)
pRequest
- DynamoHttpServletRequest objectpParams
- array of UrlParameter needing setpLookups
- array of UrlParameterLookup to use for populating parameters with valuesprotected java.lang.String getItemDescriptorName(DynamoHttpServletRequest pRequest, UrlParameterLookup pLookup)
It will first check for the name in the lookup object. If not found then it will check it as a request property.
If it still isn't found then the default descriptor name from the properties will be used.
If the user needs to override where the descriptor name is obtained this should be done here.
pRequest
- a value of type 'DynamoHttpServletRequest'pLookup
- UrlParameterLookup object containing some request parameter infoprotected java.lang.String getRepositoryName(DynamoHttpServletRequest pRequest, UrlParameterLookup pLookup)
If the user needs to override where the repository name is obtained this should be done here.
pRequest
- a value of type 'DynamoHttpServletRequest'pLookup
- UrlParameterLookup containing parameter request infoprotected UrlParameterLookup getItemLookup(DynamoHttpServletRequest pRequest)
If the user needs to override where the lookup item is obtained this should be done here.
pRequest
- a value of type 'DynamoHttpServletRequest'protected UrlParameterLookup getSiteLookup(DynamoHttpServletRequest pRequest)
If the user needs to override where the lookup item is obtained this should be done here.
pRequest
- a value of type 'DynamoHttpServletRequest'