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:
-
-
StringMappingBooleanValidator
-
-
-
EvenIntegerValidator
-
FixSelectionIntegerValidator
-
GreaterThanIntegerValidator
-
LessThanIntegerValidator
-
NegativeIntegerValidator
-
NonZeroIntegerValidator
-
OddIntegerValidator
-
PositiveIntegerValidator
-
PrimeIntegerValidator
-
RangeIntegerValidator
-
-
-
GreaterThanDoubleValidator
-
LessThanDoubleValidator
-
NegativeDoubleValidator
-
NonZeroDoubleValidator
-
PositiveDoubleValidator
-
RangeDoubleValidator
-
-
-
ContainingAllCharacterValidator
-
ContainingNoCharacterValidator
-
ContainsAllStringValidator
-
ContainsAnyStringValidator
-
ContainsStringValidator
-
IsEmptyStringValidator
-
LongerThanStringValidator
-
LowerCaseStringValidator
-
NotEmptyStringValidator
-
NumbersStringValidator
-
ShorterThanStringValidator
-
StringLengthBetweenRange
-
UpperCaseStringValidator
-
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:
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.
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()
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()
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()
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()
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()