Class ModifyOperation
- java.lang.Object
-
- org.apache.sling.servlets.post.impl.operations.AbstractPostOperation
-
- org.apache.sling.servlets.post.impl.operations.ModifyOperation
-
- All Implemented Interfaces:
PostOperation
public class ModifyOperation extends AbstractPostOperation
TheModifyOperationclass implements the default operation called by the Sling default POST servlet if no operation is requested by the client. This operation is able to create and/or modify content.
-
-
Field Summary
-
Fields inherited from class org.apache.sling.servlets.post.impl.operations.AbstractPostOperation
jcrSsupport, log
-
Fields inherited from interface org.apache.sling.servlets.post.PostOperation
PROP_OPERATION_NAME, SERVICE_NAME
-
-
Constructor Summary
Constructors Constructor Description ModifyOperation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Map<String,RequestProperty>collectContent(org.apache.sling.api.SlingHttpServletRequest request, PostResponse response)Collects the properties that form the content to be written back to the resource tree.protected org.apache.sling.api.resource.ResourcedeepGetOrCreateResource(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration)Deep gets or creates a resource, parent-padding with default resources.protected voiddoRun(org.apache.sling.api.SlingHttpServletRequest request, PostResponse response, List<Modification> changes)Actually performs the desired operation filling progress into thechangeslist and preparing and further information in theresponse.protected StringgenerateName(org.apache.sling.api.SlingHttpServletRequest request, String basePath)protected StringgetResourcePath(org.apache.sling.api.SlingHttpServletRequest request)Returns the path of the resource of the request as the resource path.protected voidprocessCreate(org.apache.sling.api.resource.ResourceResolver resolver, Map<String,RequestProperty> reqProperties, PostResponse response, List<Modification> changes, VersioningConfiguration versioningConfiguration)Create resource(s) according to current requestvoidsetDateParser(DateParser dateParser)voidsetDefaultNodeNameGenerator(NodeNameGenerator defaultNodeNameGenerator)voidsetExtraNodeNameGenerators(NodeNameGenerator[] extraNodeNameGenerators)voidsetIgnoredParameterNamePattern(Pattern ignoredParameterNamePattern)voidsetServletContext(javax.servlet.ServletContext servletContext)protected voidupdateMixins(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration)protected voidupdateNodeType(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration)-
Methods inherited from class org.apache.sling.servlets.post.impl.operations.AbstractPostOperation
externalizePath, getApplyToResources, getVersioningConfiguration, isSkipCheckin, run
-
-
-
-
Method Detail
-
setServletContext
public void setServletContext(javax.servlet.ServletContext servletContext)
-
setDateParser
public void setDateParser(DateParser dateParser)
-
doRun
protected void doRun(org.apache.sling.api.SlingHttpServletRequest request, PostResponse response, List<Modification> changes) throws org.apache.sling.api.resource.PersistenceExceptionDescription copied from class:AbstractPostOperationActually performs the desired operation filling progress into thechangeslist and preparing and further information in theresponse.The
responsecomes prepared with the path, location and parent location set. Other properties are expected to be set by this implementation.- Specified by:
doRunin classAbstractPostOperation- Parameters:
request- TheSlingHttpServletRequestproviding the input, mostly in terms of request parameters, to the operation.response- ThePostResponseto fill with response informationchanges- A container to addModificationinstances representing the operations done.- Throws:
org.apache.sling.api.resource.PersistenceException- Maybe thrown if any error occurs while accessing the repository.
-
getResourcePath
protected String getResourcePath(org.apache.sling.api.SlingHttpServletRequest request)
Description copied from class:AbstractPostOperationReturns the path of the resource of the request as the resource path.This method may be overwritten by extension if the operation has different requirements on path processing.
- Overrides:
getResourcePathin classAbstractPostOperation- Parameters:
request- The http request- Returns:
- The resource path
-
setDefaultNodeNameGenerator
public void setDefaultNodeNameGenerator(NodeNameGenerator defaultNodeNameGenerator)
-
setExtraNodeNameGenerators
public void setExtraNodeNameGenerators(NodeNameGenerator[] extraNodeNameGenerators)
-
setIgnoredParameterNamePattern
public void setIgnoredParameterNamePattern(Pattern ignoredParameterNamePattern)
-
processCreate
protected void processCreate(org.apache.sling.api.resource.ResourceResolver resolver, Map<String,RequestProperty> reqProperties, PostResponse response, List<Modification> changes, VersioningConfiguration versioningConfiguration) throws org.apache.sling.api.resource.PersistenceExceptionCreate resource(s) according to current request- Parameters:
resolver- the resourceResolver to usereqProperties- required propertiesresponse- the responsechanges- the changes to applyversioningConfiguration- versioning configuration- Throws:
org.apache.sling.api.resource.PersistenceException- if a resource error occurs
-
updateNodeType
protected void updateNodeType(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration) throws org.apache.sling.api.resource.PersistenceException- Throws:
org.apache.sling.api.resource.PersistenceException
-
updateMixins
protected void updateMixins(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration) throws org.apache.sling.api.resource.PersistenceException- Throws:
org.apache.sling.api.resource.PersistenceException
-
collectContent
protected Map<String,RequestProperty> collectContent(org.apache.sling.api.SlingHttpServletRequest request, PostResponse response)
Collects the properties that form the content to be written back to the resource tree.- Parameters:
request- the requestresponse- the response- Returns:
- the collected properties
-
deepGetOrCreateResource
protected org.apache.sling.api.resource.Resource deepGetOrCreateResource(org.apache.sling.api.resource.ResourceResolver resolver, String path, Map<String,RequestProperty> reqProperties, List<Modification> changes, VersioningConfiguration versioningConfiguration) throws org.apache.sling.api.resource.PersistenceExceptionDeep gets or creates a resource, parent-padding with default resources. If the path is empty, the given parent resource is returned.- Parameters:
resolver- the resource resolver to usepath- path to resources that needs to be deep-createdreqProperties- the properties to addchanges- the changes to applyversioningConfiguration- the versioning configuration- Returns:
- Resource at path
- Throws:
org.apache.sling.api.resource.PersistenceException- if an error occursIllegalArgumentException- if the path is relative and parent isnull
-
-