summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2014-10-01 10:53:43 +0200
committerThomas Lenz <thomas.lenz@egiz.gv.at>2014-10-01 10:53:43 +0200
commit6a7f44f110197c67d772b399e6693d18eff0c19d (patch)
tree640e8bac2801b13aca276662b41936fd22874db7
parent384e79256a0bde2494e8a54f2850b29733588284 (diff)
downloadegovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.tar.gz
egovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.tar.bz2
egovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.zip
add 'Funktionregel' date validation
-rw-r--r--src/main/java/at/gv/util/client/ur_V5/URClient.java40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/main/java/at/gv/util/client/ur_V5/URClient.java b/src/main/java/at/gv/util/client/ur_V5/URClient.java
index e39b18d..537ed25 100644
--- a/src/main/java/at/gv/util/client/ur_V5/URClient.java
+++ b/src/main/java/at/gv/util/client/ur_V5/URClient.java
@@ -47,6 +47,7 @@ import at.gv.util.xsd.ur_V5.pd.PersonenDatenTyp.Zusatzdaten;
import at.gv.util.xsd.ur_V5.pd.PersonenDatenZusatzdatenTyp;
import at.gv.util.xsd.ur_V5.pd.ZusatzdatenPersonenTyp;
import at.gv.util.xsd.ur_V5.search.BestandszeitraumVollzug;
+import at.gv.util.xsd.ur_V5.search.FktRegelTypVollzug;
import at.gv.util.xsd.ur_V5.search.FunktionVollzug;
import at.gv.util.xsd.ur_V5.search.SucheUnternehmenNachBpkRequest;
import at.gv.util.xsd.ur_V5.search.SucheUnternehmenRequest;
@@ -215,22 +216,37 @@ public class URClient {
} else {
- if(zsd != null) {
- List<PersonenDatenZusatzdatenTyp> pd = zsd.getPersonenDaten();
- for (PersonenDatenZusatzdatenTyp pdzd : pd) {
-
- ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten();
- if (zusatzdaten != null) {
-
- List<FunktionVollzug> function = zusatzdaten.getFunktion();
- for (FunktionVollzug funct : function) {
+ GregorianCalendar now = new GregorianCalendar();
+ XMLGregorianCalendar xmldate;
+ try {
+ xmldate = DatatypeFactory.newInstance().newXMLGregorianCalendar(now);
+ if(zsd != null) {
+ List<PersonenDatenZusatzdatenTyp> pd = zsd.getPersonenDaten();
+ for (PersonenDatenZusatzdatenTyp pdzd : pd) {
- if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName())))
+ ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten();
+ if (zusatzdaten != null) {
+
+ List<FunktionVollzug> function = zusatzdaten.getFunktion();
+ for (FunktionVollzug funct : function) {
- set.add(String.valueOf(funct.getFktName()));
- }
+ if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) {
+ List<FktRegelTypVollzug> functRegel = funct.getFktRegel();
+ for (FktRegelTypVollzug el : functRegel) {
+ if ( (el.getFktRegelVon().compare(xmldate) == DatatypeConstants.LESSER
+ && el.getFktRegelBis().compare(xmldate) == DatatypeConstants.GREATER) )
+ set.add(String.valueOf(funct.getFktName()));
+
+ }
+ }
+ }
+ }
}
}
+
+ } catch (DatatypeConfigurationException e) {
+ log.warn("Internal error during date conversion", e);
+
}
return new ArrayList<String>(set);