samedi 3 mars 2018

How to eliminate all "if" statements from my validator class

Is there a way to eliminate all the "if" statements from this class and still maintain the exact same functionality ?

So far I managed to simplify the code by creating the 2 extra functions: isNameValid and isPhoneValid, but I need a way to get rid of all the "if" statements.

public class ClientValidator implements Validator<Client> {
    @Override
    public void validate(Client entity) throws ValidatorException {
        if(!isNameValid(entity.getName())){
            throw new ClientException("Invalid name!");
        }
        if(!isPhoneValid(entity.getPhone())){
            throw new ClientException("Invalid phone number!");
        }
    }

    private boolean isNameValid(String name) {
        return name.length() > 1 && name.length() < 100;
    }

    private boolean isPhoneValid(String phone) {
        try {
            Long.parseLong(phone);
        } catch (NumberFormatException e) {
            return false;
        }
        return true;
    }
}

Aucun commentaire:

Enregistrer un commentaire