Bonjour,
Je suis en train (pour le boulot), de créer une API rest en java avec jetty, hk2 comme IOC, et java 8.
Je me trouve coincé lorsqu’il faut que je valide mes ressources d’entrée. En effet fonctionnellement parlant il m’est spécifié que deux champs peuvent être nuls mais pas les deux en même temps. J’aimerais pouvoir intégrer cette contrainte dans le flux de validation que permet JAX-RS avec l’API javax.validation.constraints.
Voici ma ressource de base (StatusType est une énum):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class AnalysisInput { @javax.validation.constraints.Pattern(regexp = "^(?:(?:https?|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})" + "(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})" + "(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" + "(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" + "|(?:(?:[a-z\\x{00a1}-\\x{ffff}0-9]+-?)*[a-z\\x{00a1}-\\x{ffff}0-9]+)" + "(?:\\.(?:[a-z\\x{00a1}-\\x{ffff}0-9]+-?)*[a-z\\x{00a1}-\\x{ffff}0-9]+)*(?:\\.(?:[a-z\\x{00a1}-\\x{ffff}]{2,})))" + "(?::\\d{2,5})?(?:/[^\\s]*)?$_iuS", message = "Url is not valid.") private String url; private String document; private List<TokenInput> token; // constructeur + accesseur // ... // public boolean hasDocument() { return document != null && !"".equals(document); } public boolean hasToken() { return !isDocument() && !token.isEmpty(); } } |
Globalement, je veux que hasDocument
et hasToken
ne puisse pas être faux en même temps.
Comment puis-je faire?
+0
-0