code: public <TArg0> StateConfiguration<S, T> permitDynamicIf(TriggerWithParameters1<TArg0, T> trigger, final Func2<TArg0, S> destinationStateSelector, FuncBoolean guard) {
          assert trigger != null : TRIGGER_IS_NULL;
          assert destinationStateSelector != null : DESTINATION_STATE_SELECTOR_IS_NULL;
          return publicPermitDynamicIf(
                  trigger.getTrigger(), new Func2<Object[], S>() {
                      @SuppressWarnings("unchecked")
                      @Override
                      public S call(Object[] args) {
                          return destinationStateSelector.call((TArg0) args[0]);
  
                      }
                  },
                  guard, NO_ACTION_N
          );
      }
docs: Accept the specified trigger and transition to the destination state, calculated dynamically by the supplied
  function
  
  @param trigger                  The accepted trigger
  @param destinationStateSelector Function to calculate the state that the trigger will cause a transition to
  @param guard                    Function that must return true in order for the  trigger to be accepted
  @param <TArg0>                  Type of the first trigger argument
  @return The receiver