Class AbstractPostResponse

java.lang.Object
org.apache.sling.servlets.post.AbstractPostResponse
All Implemented Interfaces:
PostResponse
Direct Known Subclasses:
HtmlResponse, JSONResponse

public abstract class AbstractPostResponse extends Object implements PostResponse
The AbstractPostResponse class provides a basic implementation of the PostResponse interface maintaining properties to be prepared for sending the response in an internal map.
  • Field Details

  • Constructor Details

    • AbstractPostResponse

      public AbstractPostResponse()
  • Method Details

    • getReferer

      public String getReferer()
      Returns the referer previously set by PostResponse.setReferer(String)
      Specified by:
      getReferer in interface PostResponse
      Returns:
      the referer
    • setReferer

      public void setReferer(String referer)
      Sets the referer property
      Specified by:
      setReferer in interface PostResponse
      Parameters:
      referer - the referer
    • getPath

      public String getPath()
      Returns the absolute path of the item upon which the request operated.

      If the PostResponse.setPath(String) method has not been called yet, this method returns null.

      Specified by:
      getPath in interface PostResponse
      Returns:
      the path (might be null)
    • setPath

      public void setPath(String path)
      Sets the absolute path of the item upon which the request operated.
      Specified by:
      setPath in interface PostResponse
      Parameters:
      path - the path
    • isCreateRequest

      public boolean isCreateRequest()
      Returns true if this was a create request.

      Before calling the PostResponse.setCreateRequest(boolean) method, this method always returns false.

      Specified by:
      isCreateRequest in interface PostResponse
      Returns:
      if this was a create request
    • setCreateRequest

      public void setCreateRequest(boolean isCreateRequest)
      Sets whether the request was a create request or not.
      Specified by:
      setCreateRequest in interface PostResponse
      Parameters:
      isCreateRequest - true if the request was a create request
    • getLocation

      public String getLocation()
      Returns the location of the modification.

      If the PostResponse.setLocation(String) method has not been called yet, this method returns null.

      Specified by:
      getLocation in interface PostResponse
      Returns:
      the location
    • setLocation

      public void setLocation(String location)
      Description copied from interface: PostResponse
      Sets the location of this modification. This is the externalized form of the current path.
      Specified by:
      setLocation in interface PostResponse
      Parameters:
      location - the location
    • getParentLocation

      public String getParentLocation()
      Returns the parent location of the modification. this is the externalized form of the parent node of the current path.
      Specified by:
      getParentLocation in interface PostResponse
      Returns:
      the location of the modification.
    • setParentLocation

      public void setParentLocation(String parentLocation)
      Description copied from interface: PostResponse
      Sets the parent location of the modification. This is the externalized form of the parent node of the current path.
      Specified by:
      setParentLocation in interface PostResponse
      Parameters:
      parentLocation - the parent location of the modification
    • setTitle

      public void setTitle(String title)
      Sets the title of the response message
      Specified by:
      setTitle in interface PostResponse
      Parameters:
      title - the title
    • setStatus

      public void setStatus(int code, String message)
      sets the response status code properties
      Specified by:
      setStatus in interface PostResponse
      Parameters:
      code - the code
      message - the message
    • getStatusCode

      public int getStatusCode()
      Returns the status code of this instance. If the status code has never been set by calling the setStatus(int, String) method, the status code is determined by checking if there was an error. If there was an error, the response is assumed to be unsuccessful and 500 is returned. If there is no error, the response is assumed to be successful and 200 is returned.
      Specified by:
      getStatusCode in interface PostResponse
      Returns:
      the status code
    • getStatusMessage

      public String getStatusMessage()
      Description copied from interface: PostResponse
      Returns the status message or null if no has been set with the PostResponse.setStatus(int, String) method.
      Specified by:
      getStatusMessage in interface PostResponse
      Returns:
      the status message (might be null)
    • getError

      public Throwable getError()
      Returns any recorded error or null
      Specified by:
      getError in interface PostResponse
      Returns:
      an error or null
    • setError

      public void setError(Throwable error)
      Description copied from interface: PostResponse
      Sets the recorded error causing the operation to fail.
      Specified by:
      setError in interface PostResponse
      Parameters:
      error - the throwable
    • isSuccessful

      public boolean isSuccessful()
      Returns true if no error is set and if the status code is one of the 2xx codes.
      Specified by:
      isSuccessful in interface PostResponse
      Returns:
      true if the status code is 2xx
    • onModified

      public void onModified(String path)
      Records a 'modified' change
      Specified by:
      onModified in interface PostResponse
      Parameters:
      path - path of the item that was modified
    • onCreated

      public void onCreated(String path)
      Records a 'created' change
      Specified by:
      onCreated in interface PostResponse
      Parameters:
      path - path of the item that was created
    • onDeleted

      public void onDeleted(String path)
      Records a 'deleted' change
      Specified by:
      onDeleted in interface PostResponse
      Parameters:
      path - path of the item that was deleted
    • onMoved

      public void onMoved(String srcPath, String dstPath)
      Records a 'moved' change.

      Note: the moved change only records the basic move command. the implied changes on the moved properties and sub nodes are not recorded.

      Specified by:
      onMoved in interface PostResponse
      Parameters:
      srcPath - source path of the node that was moved
      dstPath - destination path of the node that was moved.
    • onCopied

      public void onCopied(String srcPath, String dstPath)
      Records a 'copied' change.

      Note: the copy change only records the basic copy command. the implied changes on the copied properties and sub nodes are not recorded.

      Specified by:
      onCopied in interface PostResponse
      Parameters:
      srcPath - source path of the node that was copied
      dstPath - destination path of the node that was copied.
    • setProperty

      protected void setProperty(String name, Object value)
      Sets a generic response property with the given
      Parameters:
      name - name of the property
      value - value of the property
    • getProperty

      protected <Type> Type getProperty(String name, Class<Type> type)
      Returns the generic response property with the given name and type or null if no such property exists or the property is not of the requested type.
      Type Parameters:
      Type - the return type
      Parameters:
      name - the name of the requetested property
      type - the type of the parameter which should be returned
      Returns:
      the property as the requested type or null if not available at all or not in the requested type
    • getProperty

      protected Object getProperty(String name)
      Returns the generic response property with the given name and type or null if no such property exists.
      Parameters:
      name - the name of the response property
      Returns:
      the requested property (might be null)
    • isSafeReferer

      protected boolean isSafeReferer()
      determines if the referer has a proper referer including protocol
      Returns:
      true if HTTP or HTTPS protocol information is available in the referer
    • doSend

      protected abstract void doSend(javax.servlet.http.HttpServletResponse response) throws IOException
      Throws:
      IOException
    • send

      public final void send(javax.servlet.http.HttpServletResponse response, boolean setStatus) throws IOException
      Writes the response to the given writer and replaces all ${var} patterns by the value of the respective property. if the property is not defined the pattern is not modified.
      Specified by:
      send in interface PostResponse
      Parameters:
      response - to send to
      setStatus - whether to set the status code on the response
      Throws:
      IOException - if an i/o exception occurs