Class XSProcessorRequest

java.lang.Object
com.io7m.xstructural.api.XSProcessorRequest
All Implemented Interfaces:
XSProcessorRequestType

public final class XSProcessorRequest
extends java.lang.Object
implements XSProcessorRequestType
A document processor request.
  • Method Details

    • outputDirectory

      public java.nio.file.Path outputDirectory()
      Specified by:
      outputDirectory in interface XSProcessorRequestType
      Returns:
      The directory to which output files will be written
    • sourceFile

      public java.nio.file.Path sourceFile()
      Specified by:
      sourceFile in interface XSProcessorRequestType
      Returns:
      The source document
    • task

      Specified by:
      task in interface XSProcessorRequestType
      Returns:
      The task that will be executed
    • stylesheet

      public XSProcessorRequestType.Stylesheet stylesheet()
      Specified by:
      stylesheet in interface XSProcessorRequestType
      Returns:
      The stylesheet that will be used
    • writeResources

      public boolean writeResources()
      Specified by:
      writeResources in interface XSProcessorRequestType
      Returns:
      true if resources (such as CSS) should be copied into the output directory
    • traceFile

      public java.nio.file.Path traceFile()
      Specified by:
      traceFile in interface XSProcessorRequestType
      Returns:
      The file to which trace messages will be written
    • messageFile

      public java.nio.file.Path messageFile()
      Specified by:
      messageFile in interface XSProcessorRequestType
      Returns:
      The file to which XSLT messages will be written
    • brandingFile

      public java.util.Optional<java.nio.file.Path> brandingFile()
      Specified by:
      brandingFile in interface XSProcessorRequestType
      Returns:
      The branding file that will be included into output documents
    • withOutputDirectory

      public final XSProcessorRequest withOutputDirectory​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the outputDirectory attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for outputDirectory
      Returns:
      A modified copy of the this object
    • withSourceFile

      public final XSProcessorRequest withSourceFile​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the sourceFile attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for sourceFile
      Returns:
      A modified copy of the this object
    • withTask

      public final XSProcessorRequest withTask​(XSProcessorRequestType.Task value)
      Copy the current immutable object by setting a value for the task attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for task
      Returns:
      A modified copy of the this object
    • withStylesheet

      public final XSProcessorRequest withStylesheet​(XSProcessorRequestType.Stylesheet value)
      Copy the current immutable object by setting a value for the stylesheet attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for stylesheet
      Returns:
      A modified copy of the this object
    • withWriteResources

      public final XSProcessorRequest withWriteResources​(boolean value)
      Copy the current immutable object by setting a value for the writeResources attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for writeResources
      Returns:
      A modified copy of the this object
    • withTraceFile

      public final XSProcessorRequest withTraceFile​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the traceFile attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for traceFile
      Returns:
      A modified copy of the this object
    • withMessageFile

      public final XSProcessorRequest withMessageFile​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the messageFile attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for messageFile
      Returns:
      A modified copy of the this object
    • withBrandingFile

      public final XSProcessorRequest withBrandingFile​(java.nio.file.Path value)
      Copy the current immutable object by setting a present value for the optional brandingFile attribute.
      Parameters:
      value - The value for brandingFile
      Returns:
      A modified copy of this object
    • withBrandingFile

      public final XSProcessorRequest withBrandingFile​(java.util.Optional<? extends java.nio.file.Path> optional)
      Copy the current immutable object by setting an optional value for the brandingFile attribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returning this.
      Parameters:
      optional - A value for brandingFile
      Returns:
      A modified copy of this object
    • equals

      public boolean equals​(java.lang.Object another)
      This instance is equal to all instances of XSProcessorRequest that have equal attribute values.
      Overrides:
      equals in class java.lang.Object
      Returns:
      true if this is equal to another instance
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: outputDirectory, sourceFile, task, stylesheet, writeResources, traceFile, messageFile, brandingFile.
      Overrides:
      hashCode in class java.lang.Object
      Returns:
      hashCode value
    • toString

      public java.lang.String toString()
      Prints the immutable value XSProcessorRequest with attribute values.
      Overrides:
      toString in class java.lang.Object
      Returns:
      A string representation of the value
    • copyOf

      public static XSProcessorRequest copyOf​(XSProcessorRequestType instance)
      Creates an immutable copy of a XSProcessorRequestType value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable XSProcessorRequest instance
    • builder

      public static XSProcessorRequest.Builder builder()
      Creates a builder for XSProcessorRequest.
       XSProcessorRequest.builder()
          .setOutputDirectory(java.nio.file.Path) // required outputDirectory
          .setSourceFile(java.nio.file.Path) // required sourceFile
          .setTask(com.io7m.xstructural.api.XSProcessorRequestType.Task) // optional task
          .setStylesheet(com.io7m.xstructural.api.XSProcessorRequestType.Stylesheet) // optional stylesheet
          .setWriteResources(boolean) // optional writeResources
          .setTraceFile(java.nio.file.Path) // optional traceFile
          .setMessageFile(java.nio.file.Path) // optional messageFile
          .setBrandingFile(java.nio.file.Path) // optional brandingFile
          .build();
       
      Returns:
      A new XSProcessorRequest builder