Gyakorlati alapok III.

Validátorok osztálygyűjteménye

 

Ebben a fejezetben néhány alapvető adattípus osztályszintű validátorait ismertetjük, szinte felsorolásszerűen. Ezek a következők:

Az implemenált validátor-metódusok kódforrásai az objektumorientált elveknek megfelelően interfész és absztrakt osztály, a gyűjtemény ilyen minőségében tehát egyúttal bárhol és bármikor felhasználható osztálykönyvtárt is képezhet. A validáló osztályok projektbe szerkesztve önmagukban is működőképesek, ám ellenőrzésképpen mindegyik osztály alá beillesztettem egy szabványos main() főprogramot, hogy az adott validáló függvényt ellenőrizni tudjuk.

Például kissé alább majd nézzük meg az integer párosszám-validátort, amelyet alább ősosztályával és interfészével együtt láthatunk, ezért ilyen módon egybeszerkesztve őket futtathatók.

 

Ami a végeredményt illeti:

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A Végeredmény rész most kivételesen nem 1 lehetséges végeredményt, hanem jellemző példákon keresztül mindegyik kimenetelt megmutatja.

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


IntegerValidator.java
 

public interface IntegerValidator {

    void setNumberToValidate(int number);

    boolean isValid();

    String getErrorMessage();
}

 

AbstractIntegerValidator.java


public abstract class AbstractIntegerValidator implements IntegerValidator {

protected int numberToValidate;

@Override
public void setNumberToValidate(int numberToValidate) {
    this.numberToValidate = numberToValidate;
    }
}

 

EvenIntegerValidator.java

public class EvenIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate % 2 == 0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem paros szam.";
}

public static void main(String[] args) {
    EvenIntegerValidator object = new EvenIntegerValidator();
    object.setNumberToValidate(113);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 114
FALSE: 113 + getErrorMessage()

 

Boolean

 

Fontos észrevennünk, hogy a boolean típusú isValid() metódus szabványos visszatérési értéke a feltétel teljesülése esetén mindig TRUE, másként FALSE, az utóbbi esetben magyarázó hibaüzenettel.


public interface BooleanValidator {

    void setTextToValidate(String text);

    boolean isValid();

    String getErrorMessage();
}

public enum TrueAlias {
    TRUE("true"), YES("yes"), IGAZ("igaz"), OK("ok"), I("i"), Y("y"), T("t"), ONE("1");

    private final String text;

    private TrueAlias(String text) {
    this.text = text;
}

public String getText() {
    return text;
    }
}

public enum FalseAlias {
    FALSE("false"), NO("no"), HAMIS("hamis"), NOK("nok"), N("n"), F("f"), ZERO("0");

    private final String text;

    private FalseAlias(String text) {
    this.text = text;
}

public String getText() {
    return text;
    }
}


StringMappingBooleanValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szövegben a TrueAlias emunerációban felsorolt String-értékek bármelyike előfordul és FALSE értékkel teszi, ha a szöveg egyezik a FalseAlias emunerációban foglalt String-értékek bármelyikével.

public class StringMappingBooleanValidator implements BooleanValidator {

private String textToValidate;

@Override
public void setTextToValidate(String text) {
    this.textToValidate = text;
}

@Override
public boolean isValid() {
    for (FalseAlias falseAlias : FalseAlias.values()) {
        if (textToValidate.equalsIgnoreCase(falseAlias.getText())) {
            return true;
        }
    }
    for (TrueAlias trueAlias : TrueAlias.values()) {
        if (textToValidate.equalsIgnoreCase(trueAlias.getText())) {
            return true;
        }
    }
    return false;
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg se igaz, se hamis ertekkent nem ertelmezheto.";
}

public static void main(String[] args) {
    StringMappingBooleanValidator object = new StringMappingBooleanValidator();
    object.setTextToValidate("hello");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: yes
FALSE: hello + getErrorMessage()


Integer

 

public interface IntegerValidator {

    void setNumberToValidate(int number);

    boolean isValid();

    String getErrorMessage();
}

public abstract class AbstractIntegerValidator implements IntegerValidator {

protected int numberToValidate;

@Override
public void setNumberToValidate(int numberToValidate) {
    this.numberToValidate = numberToValidate;
    }
}


EvenIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám páros, másként hibaüzenettel FALSE.

public class EvenIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate % 2 == 0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem paros szam.";
}

public static void main(String[] args) {
    EvenIntegerValidator object = new EvenIntegerValidator();
    object.setNumberToValidate(113);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 114
FALSE: 113 + getErrorMessage()


FixSelectionIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám benne van a megadott tömbben, másként hibaüzenettel FALSE.

import java.util.Arrays;

public class FixSelectionIntegerValidator extends AbstractIntegerValidator {

private final int[] options;

public FixSelectionIntegerValidator(int[] options) {
    this.options = options;
}

@Override
public boolean isValid() {
    for (int option : options) {
        if (numberToValidate == option) {
            return true;
        }
    }
    return false;
}

@Override
public String getErrorMessage() {
return "A(z) " + numberToValidate + " nincs benne a valasztasi lehetosegek kozott: " +             Arrays.toString(options);
}

public static void main(String[] args) {
    int array[] = new int []{1, 2, 3};
    FixSelectionIntegerValidator object = new FixSelectionIntegerValidator(array);
    object.setNumberToValidate(4);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 3
FALSE: 4 + getErrorMessage()


GreaterThanIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nagyobb vagy egyenlő a beállított számnál, másként hibaüzenettel FALSE.

public class GreaterThanIntegerValidator extends AbstractIntegerValidator {

private final int lowerBound;

public GreaterThanIntegerValidator(int lowerBound) {
    this.lowerBound = lowerBound;
}

@Override
public boolean isValid() {
    return numberToValidate >= lowerBound;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " a(z) " + lowerBound + "-nel(nal) nem nagyobb.";
}

public static void main(String[] args) {
    int lowerBound = 5;
    GreaterThanIntegerValidator object = new GreaterThanIntegerValidator(lowerBound);
    object.setNumberToValidate(2);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 6
FALSE: 4 + getErrorMessage()


LessThanIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám kisebb vagy egyenlő a beállított számnál, másként hibaüzenettel FALSE.

public class LessThanIntegerValidator extends AbstractIntegerValidator {

private final int upperBound;

public LessThanIntegerValidator(int upperBound) {
    this.upperBound = upperBound;
}

@Override
public boolean isValid() {
    return numberToValidate <= upperBound;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " a(z) " + upperBound + "-nel(nal) nem kisebb.";
}

public static void main(String[] args) {
    int lowerBound = 2;
    LessThanIntegerValidator object = new LessThanIntegerValidator(lowerBound);
    object.setNumberToValidate(5);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 1
FALSE: 3 + getErrorMessage()


NegativeIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám kisebb 0-nál, másként hibaüzenettel FALSE.

public class NegativeIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate < 0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem negativ szam.";
}

public static void main(String[] args) {
    NegativeIntegerValidator object = new NegativeIntegerValidator();
    object.setNumberToValidate(5);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: -5
FALSE: 5 + getErrorMessage()


NonZeroIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nem 0, másként hibaüzenettel FALSE.

public class NonZeroIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate != 0;
}

@Override
public String getErrorMessage() {
    return "A megadott szam nulla.";
}

public static void main(String[] args) {
    NonZeroIntegerValidator object = new NonZeroIntegerValidator();
    object.setNumberToValidate(5);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 3
FALSE: 0 + getErrorMessage()


OddIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám páratlan, másként hibaüzenettel FALSE.

public class OddIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate % 2 != 0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem paratlan szam.";
}

public static void main(String[] args) {
    OddIntegerValidator object = new OddIntegerValidator();
    object.setNumberToValidate(6);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 3
FALSE: 4 + getErrorMessage()


PositiveIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nagyobb 0-nál, másként hibaüzenettel FALSE.

public class PositiveIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    return numberToValidate > 0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem egy pozitiv szam.";
}

public static void main(String[] args) {
    PositiveIntegerValidator object = new PositiveIntegerValidator();
    object.setNumberToValidate(-5);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 3
FALSE: -4 + getErrorMessage()


PrimeIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám prímszám, másként hibaüzenettel FALSE.

public class PrimeIntegerValidator extends AbstractIntegerValidator {

@Override
public boolean isValid() {
    if (numberToValidate < 2) {
        return false;
    }
    for (int i = 2; i < numberToValidate; i++) {
        if (numberToValidate % i == 0) {
            return false;
        }
    }
    return true;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem prim.";
}

public static void main(String[] args) {
    PrimeIntegerValidator object = new PrimeIntegerValidator();
    object.setNumberToValidate(6);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 3
FALSE: 4 + getErrorMessage()


RangeIntegerValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám belül esik a megadott számtartományon, másként hibaüzenettel FALSE.

public class RangeIntegerValidator extends AbstractIntegerValidator {

private final int lowerBound;
private final int upperBound;
private final LessThanIntegerValidator lessThanIntegerValidator;
private final GreaterThanIntegerValidator greaterThanIntegerValidator;

public RangeIntegerValidator(int lowerBound, int upperBound) {
    this.lowerBound = Math.min(lowerBound, upperBound);
    this.upperBound = Math.max(lowerBound, upperBound);
    this.lessThanIntegerValidator = new LessThanIntegerValidator(upperBound);
    this.greaterThanIntegerValidator = new GreaterThanIntegerValidator(lowerBound);
}

@Override
public boolean isValid() {
    lessThanIntegerValidator.setNumberToValidate(numberToValidate);
    greaterThanIntegerValidator.setNumberToValidate(numberToValidate);
    return lessThanIntegerValidator.isValid() && greaterThanIntegerValidator.isValid();
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem " + lowerBound + " es " + upperBound + " koze eso szam.";
}

public static void main(String[] args) {
    RangeIntegerValidator object = new RangeIntegerValidator(1, 10);
    object.setNumberToValidate(15);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 9
FALSE: 15 + getErrorMessage()

 

Double

 

public interface DoubleValidator {

    void setNumberToValidate(double number);

    boolean isValid();

    String getErrorMessage();
}

public abstract class AbstractDoubleValidator implements DoubleValidator {

    protected double numberToValidate;

@Override
public void setNumberToValidate(double numberToValidate) {
    this.numberToValidate = numberToValidate;
    }
}


GreaterThanDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nagyobb vagy egyenlő a megadott alsó számhatárnál, másként hibaüzenettel FALSE.

public class GreaterThanDoubleValidator extends AbstractDoubleValidator {

private final double lowerBound;

public GreaterThanDoubleValidator(double lowerBound) {
    this.lowerBound = lowerBound;
}

@Override
public boolean isValid() {
    return numberToValidate >= lowerBound;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " a(z) " + lowerBound + "-nel(nal) nem nagyobb.";
}

public static void main(String[] args) {
    GreaterThanDoubleValidator object = new GreaterThanDoubleValidator(5.0);
    object.setNumberToValidate(2.0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 6.0
FALSE: 4.0 + getErrorMessage()


LessThanDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám kisebb vagy egyenlő a megadott felső számhatárnál, másként hibaüzenettel FALSE.

public class LessThanDoubleValidator extends AbstractDoubleValidator {

private final double upperBound;

public LessThanDoubleValidator(double upperBound) {
    this.upperBound = upperBound;
}

@Override
public boolean isValid() {
    return numberToValidate <= upperBound;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " a(z) " + upperBound + "-nel(nal) nem kisebb.";
}

public static void main(String[] args) {
    LessThanDoubleValidator object = new LessThanDoubleValidator(5.0);
    object.setNumberToValidate(6.0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 3.0
FALSE: 6.0 + getErrorMessage()


NegativeDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám kisebb 0-nál, másként hibaüzenettel FALSE.

public class NegativeDoubleValidator extends AbstractDoubleValidator {

@Override
public boolean isValid() {
    return numberToValidate < 0.0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem negativ szam.";
}

public static void main(String[] args) {
    NegativeDoubleValidator object = new NegativeDoubleValidator();
    object.setNumberToValidate(2.0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: -2.0
FALSE: 2.0 + getErrorMessage()


NonZeroDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nem 0, másként hibaüzenettel FALSE.

public class NonZeroDoubleValidator extends AbstractDoubleValidator {

@Override
public boolean isValid() {
    return numberToValidate != 0.0;
}

@Override
public String getErrorMessage() {
    return "A megadott szam nulla.";
}

public static void main(String[] args) {
    NonZeroDoubleValidator object = new NonZeroDoubleValidator();
    object.setNumberToValidate(0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: 1.0
FALSE: 0 + getErrorMessage()


PositiveDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám nagyobb 0-nál, másként hibaüzenettel FALSE.

public class PositiveDoubleValidator extends AbstractDoubleValidator {

@Override
public boolean isValid() {
    return numberToValidate > 0.0;
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem pozitiv szam.";
}

public static void main(String[] args) {
    PositiveDoubleValidator object = new PositiveDoubleValidator();
    object.setNumberToValidate(-2.0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 1.0
FALSE: -1.0 + getErrorMessage()


RangeDoubleValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szám a megadott számtartományon belül van, másként hibaüzenettel FALSE.

public class RangeDoubleValidator extends AbstractDoubleValidator {

private final double lowerBound;
private final double upperBound;
private final LessThanDoubleValidator lessThanDoubleValidator;
private final GreaterThanDoubleValidator greaterThanDoubleValidator;

public RangeDoubleValidator(double lowerBound, double upperBound) {
    this.lowerBound = Math.min(lowerBound, upperBound);
    this.upperBound = Math.max(lowerBound, upperBound);
    this.lessThanDoubleValidator = new LessThanDoubleValidator(upperBound);
    this.greaterThanDoubleValidator = new GreaterThanDoubleValidator(lowerBound);
}

@Override
public boolean isValid() {
    lessThanDoubleValidator.setNumberToValidate(numberToValidate);
    greaterThanDoubleValidator.setNumberToValidate(numberToValidate);
    return lessThanDoubleValidator.isValid() && greaterThanDoubleValidator.isValid();
}

@Override
public String getErrorMessage() {
    return "A(z) " + numberToValidate + " nem " + lowerBound + " es " + upperBound + " koze eso szam.";
}

public static void main(String[] args) {
    RangeDoubleValidator object = new RangeDoubleValidator(1.0, 10.0);
    object.setNumberToValidate(15.0);
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 9.0
FALSE: 15.0 + getErrorMessage()

 

String


public interface StringValidator {

    void setStringToValidate(String text);

    boolean isValid();

    String getErrorMessage();
}

public abstract class AbstractStringValidator implements StringValidator {

    protected String textToValidate;

@Override
public void setStringToValidate(String text) {
    this.textToValidate = text;
    }
}

ContainingAllCharacterValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg kizárólag a megadott szöveg karaktereit tartalmazza és hosszuk azonos, másként hibaüzenettel FALSE.

public class ContainingAllCharacterValidator extends AbstractStringValidator {

private final String textFragment;

public ContainingAllCharacterValidator(String textFragment) {
    this.textFragment = textFragment;
}

@Override
public boolean isValid() {
    boolean valid = false;
    if(textToValidate.length() != textFragment.length()) {
        return valid;
    }
    char[] charTextFragment = new char[textFragment.length()];
    textFragment.getChars(0, charTextFragment.length, charTextFragment, 0);

    for(int i = 0; i < textFragment.length(); i++) {
        char character = charTextFragment[i];
        String characterString = String.valueOf(character);
        if(!textToValidate.contains(characterString)) {
            return valid;
        }
    }
    valid = true;
    return valid;
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg nemcsak kizarolag a megadott karakterekbol all.";
}

public static void main(String[] args) {
    ContainingAllCharacterValidator object = new ContainingAllCharacterValidator("abcd");
    object.setStringToValidate("abcde");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: dcba
FALSE: abcde + getErrorMessage()


ContainingNoCharacterValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg olyan karaktereket is tartalmaz, amelyeket a megadott szöveg nem, másként hibaüzenettel FALSE.

public class ContainingNoCharacterValidator extends AbstractStringValidator {

private final String textFragment;

public ContainingNoCharacterValidator(String textFragment) {
    this.textFragment = textFragment;
}

@Override
public boolean isValid() {
    boolean valid = false;
    if(textToValidate.length() != textFragment.length()) {
        return valid;
    }
    char[] charTextFragment = new char[textFragment.length()];
    textFragment.getChars(0, charTextFragment.length, charTextFragment, 0);

    for(int i = 0; i < textFragment.length(); i++) {
        char character = charTextFragment[i];
        String characterString = String.valueOf(character);
        if(textToValidate.contains(characterString)) {
            return valid;
        }
    }
    valid = true;
    return valid;
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg olyan karaktereket tartalmaz, amelyeket a mintaszoveg is.";
}

public static void main(String[] args) {
    ContainingNoCharacterValidator object = new ContainingNoCharacterValidator("abc");
    object.setStringToValidate("defg");
    if(object.isValid()) {
        System.out.println(object.isValid());
    }
    else
        System.out.println(object.getErrorMessage());
    }
}


Végeredmény (például):
TRUE: def
FALSE: cdef + getErrorMessage()


ContainsAllStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg tartalmazza a megadott karaktertömb összes elemét, másként hibaüzenettel FALSE.

import java.util.Arrays;

public class ContainsAllStringValidator extends AbstractStringValidator {

private static char[] charactersToBeContained = {'a', 'b', 'c', 'd'};

public ContainsAllStringValidator(char[] charactersToBeContained) {
    this.charactersToBeContained = charactersToBeContained;
}

@Override
public boolean isValid() {
    for (char characterToBeContained : charactersToBeContained) {
        if (!textToValidate.contains(Character.toString(characterToBeContained))) {
            return false;
        }
    }
    return true;
}

@Override
public String getErrorMessage() {
return "A megadott szoveg nem tartalmazza a kovetkezo karakterek kozul az osszeset: " + Arrays.toString(charactersToBeContained);
}

public static void main(String[] args) {
    ContainsAllStringValidator object = new ContainsAllStringValidator(charactersToBeContained);
    object.setStringToValidate("abc");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

ContainsAnyStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg olyan karaktereket tartalmaz, amelyeket a megadott szöveg, másként hibaüzenettel FALSE.

import java.util.Arrays;

public class ContainsAnyStringValidator extends AbstractStringValidator {

private static char[] charactersToBeContained = {'a', 'b', 'c', 'd'};

public ContainsAnyStringValidator(char[] charactersToBeContained) {
    this.charactersToBeContained = charactersToBeContained;
}

@Override
public boolean isValid() {
    for (char characterToBeContained : charactersToBeContained) {
        if (textToValidate.contains(Character.toString(characterToBeContained))) {
            return true;
        }
    }
    return false;
}

@Override
public String getErrorMessage() {
return "A megadott szoveg nem tartalmazza a kovetkezo karakterek kozul legalabb az egyiket: " + Arrays.toString(charactersToBeContained);
}

public static void main(String[] args) {
    ContainsAnyStringValidator object = new ContainsAnyStringValidator(charactersToBeContained);
    object.setStringToValidate("e");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: abcd
FALSE: e + getErrorMessage()


ContainsStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg olyan szótöredéket tartalmaz, amelyeket a megadott szöveg, másként hibaüzenettel FALSE.

public class ContainsStringValidator extends AbstractStringValidator {

private final String textFragment;

public ContainsStringValidator(String textFragment) {
    this.textFragment = textFragment;
}

@Override
public boolean isValid() {
    return textToValidate.contains(textFragment);
}

@Override
public String getErrorMessage() {
return "A megadott szoveg nem tartalmazza a kovetkezo szotoredeket: " + textFragment;
}

public static void main(String[] args) {
    ContainsStringValidator object = new ContainsStringValidator("abcd");
    object.setStringToValidate("egfh");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: abcd
FALSE: egfh + getErrorMessage()


IsEmptyStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg nem üres, másként hibaüzenettel FALSE.

public class IsEmptyStringValidator extends AbstractStringValidator {

@Override
public boolean isValid() {
    return !textToValidate.isEmpty();
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg ures.";
}

public static void main(String[] args) {
    IsEmptyStringValidator object = new IsEmptyStringValidator();
    object.setStringToValidate("");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: bármilyen szöveg
FALSE: üres szöveg + getErrorMessage()


LongerThanStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg hossza nagyobb vagy egyenlő a megadott szöveghossznál, másként hibaüzenettel FALSE.

public class LongerThanStringValidator extends AbstractStringValidator {

private final int textLengthLowerLimit;

public LongerThanStringValidator(int textLengthLowerLimit) {
    this.textLengthLowerLimit = textLengthLowerLimit;
}

@Override
public boolean isValid() {
    return textToValidate.length() >= textLengthLowerLimit;
}

@Override
public String getErrorMessage() {
    StringBuilder builder = new StringBuilder();
    builder.append("A megadott szoveg hossza (");
    builder.append(textToValidate.length());
    builder.append(") nem eri el a minimalis szoveghosszt (");
    builder.append(textLengthLowerLimit);
    builder.append(").");
    return builder.toString();
}

public static void main(String[] args) {
    LongerThanStringValidator object = new LongerThanStringValidator(4);
    object.setStringToValidate("abc");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: abcde
FALSE: abc + getErrorMessage()


LowerCaseStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg csakis kisbetűket tartalmaz, másként hibaüzenettel FALSE.

public class LowerCaseStringValidator extends AbstractStringValidator {

@Override
public boolean isValid() {
    return textToValidate.equals(textToValidate.toLowerCase());
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg nem csupa kisbetubol all.";
}

public static void main(String[] args) {
    LowerCaseStringValidator object = new LowerCaseStringValidator();
    object.setStringToValidate("Abc");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: abc
FALSE: Abc + getErrorMessage()


NotEmptyStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg nem üres, másként hibaüzenettel FALSE.

public class NotEmptyStringValidator extends AbstractStringValidator {

@Override
public boolean isValid() {
    return !textToValidate.isEmpty();
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg nem lehet ures.";
}

public static void main(String[] args) {
    NotEmptyStringValidator object = new NotEmptyStringValidator();
    object.setStringToValidate("");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: a
FALSE: üres szöveg + getErrorMessage()


NumbersStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg csakis számokat tartalmaz, másként hibaüzenettel FALSE.

public class NumbersStringValidator extends AbstractStringValidator {

@Override
public boolean isValid() {
    for (char character : textToValidate.toCharArray()) {
        if (!Character.isDigit(character)) {
            return false;
        }
    }
    return true;
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg nemcsak szamokat tartalmaz.";
}

public static void main(String[] args) {
    NumbersStringValidator object = new NumbersStringValidator();
    object.setStringToValidate("1234a");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: 1234
FALSE: 1234a + getErrorMessage()


ShorterThanStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg hossza kisebb vagy egyenlő a megadott szöveghossznál, másként hibaüzenettel FALSE.

public class ShorterThanStringValidator extends AbstractStringValidator {

private final int textLengthUpperLimit;

public ShorterThanStringValidator(int textLengthUpperLimit) {
    this.textLengthUpperLimit = textLengthUpperLimit;
}

@Override
public boolean isValid() {
    return textToValidate.length() <= textLengthUpperLimit;
}

@Override
public String getErrorMessage() {
    StringBuilder builder = new StringBuilder();
    builder.append("A megadott szoveg hossza (");
    builder.append(textToValidate.length());
    builder.append(") meghaladja a maximalis szoveghosszt (");
    builder.append(textLengthUpperLimit);
    builder.append(").");
    return builder.toString();
}

public static void main(String[] args) {
    ShorterThanStringValidator object = new ShorterThanStringValidator(2);
    object.setStringToValidate("abc");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: a
FALSE: abc + getErrorMessage()


StringLengthBetweenRange
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg hossza a megadott tartományon belül van, másként hibaüzenettel FALSE.

public class StringLengthBetweenRange extends AbstractStringValidator {

@Override
public boolean isValid() {
    boolean valid = false;
    int stringLength = textToValidate.length();
    if(stringLength >= 5 && stringLength <= 20) {
        valid = true;
    }
    return valid;
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg hossza min. 5, max. 20 lehet!";
}

public static void main(String[] args) {
    StringLengthBetweenRange object = new StringLengthBetweenRange();
    object.setStringToValidate("abcd");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}

Végeredmény (például):
TRUE: abcde
FALSE: abcd + getErrorMessage()


UpperCaseStringValidator
Az osztály isValid() metódusa TRUE értékkel tér vissza, ha a vizsgált szöveg csakis nagybetűket tartalmaz, másként hibaüzenettel FALSE.

public class UpperCaseStringValidator extends AbstractStringValidator {

@Override
public boolean isValid() {
    return textToValidate.equals(textToValidate.toUpperCase());
}

@Override
public String getErrorMessage() {
    return "A megadott szoveg nem csupa nagybetubol all.";
}

public static void main(String[] args) {
    UpperCaseStringValidator object = new UpperCaseStringValidator();
    object.setStringToValidate("ABCDe");
    if(!object.isValid()) {
        System.out.println(object.getErrorMessage());
    }
    else
        System.out.println(object.isValid());
    }
}


Végeredmény (például):
TRUE: ABCD
FALSE: ABCDe + getErrorMessage()