Class AbstractSynchronousTransform

java.lang.Object
com.inductiveautomation.perspective.gateway.binding.transforms.AbstractSynchronousTransform
All Implemented Interfaces:
Transform
Direct Known Subclasses:
AbstractMapTransform, ScriptTransform

public abstract class AbstractSynchronousTransform extends Object implements Transform
An Transform which takes care of wrapping a blocking transform operation in a CompletableFuture. Implementations only need to override synchronousTransformInternal(QualifiedValue) to process their blocking transform work.
  • Constructor Details

    • AbstractSynchronousTransform

      public AbstractSynchronousTransform()
  • Method Details

    • synchronousTransformInternal

      protected abstract QualifiedValue synchronousTransformInternal(@Nonnull QualifiedValue value) throws Throwable
      Perform a blocking transformation on a QualifiedValue, returning the transformed value as a QualifiedValue.
      Parameters:
      value - The input value to transform. The value will never be null.
      Returns:
      The transformed value.
      Throws:
      Throwable - If there is any Exception or Error in the transformation.
    • transform

      public CompletableFuture<QualifiedValue> transform(@Nonnull QualifiedValue value) throws Throwable
      Description copied from interface: Transform
      When the binding or previous transform emits a value, it will be given to this method. The expectation is that the transform will then push the transformed value onto the callback given to it in the factory
      Specified by:
      transform in interface Transform
      Parameters:
      value - The input value to the Transform. It could be the output value of the binding itself if the transform is first in the chain, or it could be a transformed value if it is after the first in the chain. The input QualifiedValue can never be null (though the value it wraps can be null)
      Throws:
      Throwable - If there is a problem with the transformation