com.osomapps.pt.admin.certificate.CertificateValidator   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 19
Duplicated Lines 94.74 %

Importance

Changes 0
Metric Value
wmc 5
eloc 15
dl 18
loc 19
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A supports(Class) 3 3 1
A validate(Object,Errors) 9 10 4

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
package com.osomapps.pt.admin.certificate;
2
3
import java.util.regex.Matcher;
4
import java.util.regex.Pattern;
5
import org.springframework.stereotype.Component;
6
import org.springframework.validation.Errors;
7
import org.springframework.validation.Validator;
8
9 View Code Duplication
@Component
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
10
class CertificateValidator implements Validator {
11
    private static final Pattern CERTIFICATE_PATTERN = Pattern.compile("^[A-Z]{4}[0-9]{4}$");
12
13
    @Override
14
    public boolean supports(final Class<?> aClass) {
15
        return String.class.equals(aClass);
16
    }
17
18
    @Override
19
    public void validate(final Object obj, final Errors errors) {
20
        final String certificate = (String) obj;
21
        if (certificate == null || certificate.trim().isEmpty()) {
22
            errors.reject("certificate", "Invalid empty certificate");
23
            return;
24
        }
25
        final Matcher matcher = CERTIFICATE_PATTERN.matcher(certificate);
26
        if (!matcher.matches()) {
27
            errors.reject("certificate", "Invalid certificate code (" + certificate + ")");
28
        }
29
    }
30
}
31