code: public static <RESULT, FAILURE extends Throwable> 
  	ProcessorChainLink<RESULT, FAILURE> from(Processor<RESULT, FAILURE> processor) {
  		
  		assertNotNull(processor, new StringBuilder("A ")
  		.append(ProcessorChainLink.class.getName())
  		.append(" cannot be instantiated with a <null> ")
  		.append(Processor.class.getName()).toString());
  		
  		return new ProcessorChainLink<RESULT, FAILURE>(processor);
  	}
docs: <p>Creates a new {@link ProcessorChainLink} and wraps the given {@link Processor} which handles the
  <i>execution</i> for this link in the chain.</p>
  
  @param processor
  the {@link Processor} to be wrapped by this instance of {@link ProcessorChainLink}
  <br><br>
  @return a new instance of {@link ProcessorChainLink} which wraps the provided {@link Processor}
  <br><br>
  @throws IllegalStateException
  if the given {@link Processor} is {@code null}; a {@link ProcessorChainLink} must always
  enclose a {@link Processor} which is invoked when the execution reaches this link in a chain
  <br><br>
  @since 1.3.0