Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Pierwszy argument funkcji create musi być taki sam, jak id walidatora. Drugim argumentem jest obiekt implementujący metodę callback, która jest wywoływana przy dodaniu błędu w walidatorze.

Komunikat błędu lub potwierdzenia walidacji

Warning

Funkcja jeszcze niedostępna.

Możliwe jest określenie w PWE komunikatu błędu walidacji oraz komunikatu potwierdzenia akceptacji formularza pomimo błędu walidacji. Aby w PWE wyświetlone zostały te pola należy w builderze walidatora określić, jakie typy komunikatów mogą zostać skonfigurowane.

Code Block
languagejava
linenumberstrue
@Validator
public class PeselValidator
{
    private final String PESEL_REGEX = "^\\d{11}$";
    
    @Define
    public void definition( ValidatorDefinitionBuilder builder )
    {
        builder
            .id( "pesel-validator" )
            .name( "validator.pesel" )
            .description( "validator.pesel.desc" )
            .category( Categories.TEST )
            .messageTypes( ValidatorMessage.CONFIRMATION, ValidatorMessage.ERROR ) // możliwe będzie skonfigurowanie komunikatu potwierdzenia oraz błędu walidacji
            .parameter()
                .id( "pesel_param" )
                .name( "validator.pesel.parameter.name" )
                .description( "validator.pesel.parameter.desc" )
                .type( Types.VARIABLE)
                .create();
    }
 
    //Metoda walidująca
    public void validate( @Param( value = "pesel_param" ) Variable pesel, ValidationErrors errors,
                          Translator translator )
    {
        boolean isPesel = Pattern.matches( PESEL_REGEX, (String) pesel.getValue() );
        if ( isPesel == false )
        {
            errors.add( translator.getMessage( "validator.pesel.invalid" ), pesel.getId() );
        }
    }
}

Enum 

Javadoc
displayValueValidatorMessage
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.workflow.form.validator.ValidatorMessage
 określa, które z komunikatów mogą zostać skonfigurowane w PWE. Komunikaty te działają jak parametry typu String, a więc możliwe jest używanie w nich wartości zmiennych, funkcji itd.

W metodzie execute walidatora możliwe jest pobranie dwóch nowych obiektów:

  • Javadoc
    displayValueDefinedConfirmation
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.workflow.form.validator.error.DefinedConfirmation
     - obiekt przechowujący tytuł i tekst potwierdzenia
  • Javadoc
    displayValueDefinedError
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.workflow.form.validator.error.DefinedError
     - obiekt przechowujący tekst błędu

Obiekty te należy samemu dodać do błędów oraz potwierdzeń walidacji. Przykładowe użycie:

Code Block
languagejava
public void validate( @Param( value = "param" ) Variable param, ValidationErrors errors,
                      Translator translator, DefinedError error, DefinedConfirmation confirmation )
    {
        String value = param.getValue().toString();
        if ( /* warunek - błąd walidacji */ )
        {
            errors.add( error );
        }
        else if ( /* warunek - mimo błędu zapytanie o potwierdzenie akceptacji zadania */ )
        {
            errors.addConfirmation( confirmation );
        }
    }