Class ProxyTargetedUrlStrategy
- java.lang.Object
-
- org.craftercms.engine.util.spring.AbstractProxyBean<TargetedUrlStrategy>
-
- org.craftercms.engine.targeting.impl.ProxyTargetedUrlStrategy
-
- All Implemented Interfaces:
TargetedUrlStrategy
public class ProxyTargetedUrlStrategy extends AbstractProxyBean<TargetedUrlStrategy> implements TargetedUrlStrategy
TargetedUrlStrategy
that proxies to the strategy defined in the site application context, or if not defined, to the default one in the general application context.- Author:
- avasquez
-
-
Field Summary
-
Fields inherited from class org.craftercms.engine.util.spring.AbstractProxyBean
applicationContext, beanName
-
-
Constructor Summary
Constructors Constructor Description ProxyTargetedUrlStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
buildTargetedUrl(String prefix, String targetId, String suffix)
Builds the targeted URL with the specified prefix, target ID and suffix.protected Class<? extends TargetedUrlStrategy>
getBeanClass()
boolean
isFileNameBasedStrategy()
Returns true if the strategy is based on the name of the file.TargetedUrlComponents
parseTargetedUrl(String targetedUrl)
Parses the specified targeted URL, extracting it's components.String
toTargetedUrl(String url, boolean forceCurrentTargetId)
Returns the specified URL as a targeted URL (if it's not already a targeted URL) using the current target ID.-
Methods inherited from class org.craftercms.engine.util.spring.AbstractProxyBean
getBean, setApplicationContext, setBeanName
-
-
-
-
Method Detail
-
isFileNameBasedStrategy
public boolean isFileNameBasedStrategy()
Description copied from interface:TargetedUrlStrategy
Returns true if the strategy is based on the name of the file.- Specified by:
isFileNameBasedStrategy
in interfaceTargetedUrlStrategy
-
toTargetedUrl
public String toTargetedUrl(String url, boolean forceCurrentTargetId)
Description copied from interface:TargetedUrlStrategy
Returns the specified URL as a targeted URL (if it's not already a targeted URL) using the current target ID. For example, if the specified URL is /products/index.xml, the current target ID is "en_US", and the strategy handles targeted URLs by file name, then the resulting targeted URL is /products/index_en_US.xml.WARNING: The URLs strategies should receive should be relative, without the root folder, since most targeted URLs are handled using a regex.
- Specified by:
toTargetedUrl
in interfaceTargetedUrlStrategy
- Parameters:
url
- the URL to transform to a targeted URLforceCurrentTargetId
- true if the URL should be forced to contain the current target ID (e.g the URL is /products/index_fr.xml but the current target ID is en, then the URL will be transformed to /products/index_en.xml)- Returns:
- the targeted URL version of the URL.
-
parseTargetedUrl
public TargetedUrlComponents parseTargetedUrl(String targetedUrl)
Description copied from interface:TargetedUrlStrategy
Parses the specified targeted URL, extracting it's components. For example, if the specified URL is /products/index_en_US.xml, and the strategy handles targeted URLs by file name, then the URL will be split into the following:- Prefix: /products/index
- Target ID: en_US
- Suffix: .xml
- Specified by:
parseTargetedUrl
in interfaceTargetedUrlStrategy
- Parameters:
targetedUrl
- the targeted URL to parse- Returns:
- the URL components
-
buildTargetedUrl
public String buildTargetedUrl(String prefix, String targetId, String suffix)
Description copied from interface:TargetedUrlStrategy
Builds the targeted URL with the specified prefix, target ID and suffix. For example, if the prefix is /products/index, the target ID en_US, the suffix .xml, and the strategy handles targeted URLs by file name, then the resulting URL will be /products/index_en_US.xml.- Specified by:
buildTargetedUrl
in interfaceTargetedUrlStrategy
- Parameters:
prefix
- the URL prefixtargetId
- the target IDsuffix
- the URL suffix- Returns:
- the built targeted URL
-
getBeanClass
protected Class<? extends TargetedUrlStrategy> getBeanClass()
- Specified by:
getBeanClass
in classAbstractProxyBean<TargetedUrlStrategy>
-
-