Spring ile çalışırken canımız doğrulama işlemi çekti diyelim. Nasıl yapacağımızı düşünürken Validator arayüzü imdadımıza yetişiyor. Tabiki override edilecek iki metoduyla beraber. Önce Worker sınıfımıza bakalım, daha sonra da bunu doğrulayacak olan WorkerValidator sınıfına.

package com.farukbozan.spring;import java.util.ArrayList;public class Worker {private String name;
private double salary;
ArrayList holidays;
Worker bestFriend;

public Worker()
{
name = “”;
salary = 0;
holidays = new ArrayList();
bestFriend = null;
}

public Worker(String name, int salary)
{
this.name = name;
this.salary = salary;
holidays = new ArrayList();
bestFriend = null;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getSalary() {
return salary;
}

public void setSalary(double salary) {
this.salary = salary;
}

public Worker getBestFriend() {
return bestFriend;
}

public void setBestFriend(Worker bestFriend) {
this.bestFriend = bestFriend;
}

public ArrayList getHolidays() {
return holidays;
}

public void setHolidays(ArrayList holidays) {
this.holidays = holidays;
}

}

Şimdi Validator arayüzünü uygulayan WorkerValidator sınıfı.

package com.farukbozan.spring;import org.springframework.validation.Errors;
import org.springframework.validation.Validator;public class WorkerValidator implements Validator {

public boolean supports(Class type)
{
return Worker.class.equals(type);
}

public void validate(Object o, Errors errors)
{
Worker worker = (Worker)o;
if(worker.getHolidays().size() < 1)
errors.reject(“Worker must have at least one holidat !!!”);
}

}

Hemen ne olup bittiğine bakalım. Worker sınıfı klasik bir Java sınıfı özelliğini taşıyor. WorkerValidator sınıfı ise uyguladığı Validator arayüzü nedeniyle iki metodu override ediyor. Bu iki metodun kodlanması tamamen iş mantığı denilen ihtiyaca bağlı. Bu örnekte supports metodu, parametre olarak gelen örneğin aynı sınıftan olup olmadığını karşılaştırıp duruma göre değer döndürmektedir. Validate metodu ise iki parametre alıyor. İlki üzerinde doğrulama yapılacak nesne diğeri ise hata örneği. Burdaki örnekte parametre olarak gelen worker nesnesinin en azından 1 gün tatili olması gerekmektedir. Aksi takdirde gelen örnek geçerli olmayacaktır.

Bol Java’ lı günler dileğiyle…

No responses yet

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.