summaryrefslogtreecommitdiff
path: root/src/main/java/ATCCodes
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-03-14 11:45:59 +0100
committerPaul-Christian Volkmer2023-03-14 11:45:59 +0100
commite10c7fba2d7f5358c12b90308f68b84269d1a0c5 (patch)
tree3b233da10eca0e06c428cba91f4ed39231300150 /src/main/java/ATCCodes
parentdfd0bcead45259e8fe317d54e7eeaa8d1f3b79fe (diff)
Issue #9: Entspricht der Code aus OS dem ATC-Schema, verwende Substanz als ATCCode
Diffstat (limited to 'src/main/java/ATCCodes')
-rw-r--r--src/main/java/ATCCodes/AtcCode.java11
-rw-r--r--src/main/java/ATCCodes/services/OnkostarAgentCodeService.java11
2 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/ATCCodes/AtcCode.java b/src/main/java/ATCCodes/AtcCode.java
index e8bf9f1..deb1419 100644
--- a/src/main/java/ATCCodes/AtcCode.java
+++ b/src/main/java/ATCCodes/AtcCode.java
@@ -48,4 +48,15 @@ public class AtcCode implements AgentCode {
public int hashCode() {
return Objects.hash(code.toLowerCase(), name.toLowerCase());
}
+
+ /**
+ * Prüft auf gültiges ATCCode-Schema ab Ebene 2
+ * @param code Der zu prüfende Code
+ * @return Gibt <code>true</code> zurück, wenn der angegebene Code dem ATCCode-Schema entspricht
+ */
+ public static boolean isAtcCode(String code) {
+ return null != code
+ && ! code.isBlank()
+ && code.matches("[ABCDGHJLMNPRSV][0-2][1-9]([A-Z]([A-Z]([0-9]{2})?)?)?");
+ }
} \ No newline at end of file
diff --git a/src/main/java/ATCCodes/services/OnkostarAgentCodeService.java b/src/main/java/ATCCodes/services/OnkostarAgentCodeService.java
index f29f074..e0c75f4 100644
--- a/src/main/java/ATCCodes/services/OnkostarAgentCodeService.java
+++ b/src/main/java/ATCCodes/services/OnkostarAgentCodeService.java
@@ -1,6 +1,7 @@
package ATCCodes.services;
import ATCCodes.AgentCode;
+import ATCCodes.AtcCode;
import ATCCodes.UnregisteredCode;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@@ -47,8 +48,14 @@ public class OnkostarAgentCodeService implements AgentCodeService {
return jdbcTemplate.query(
sql,
new Object[]{query + "%", "%" + query + "%", "%" + query + "%"},
- (resultSet, i) ->
- new UnregisteredCode(resultSet.getString("code"), resultSet.getString("shortdesc"))
+ (resultSet, i) -> {
+ var code = resultSet.getString("code");
+ var shortdesc = resultSet.getString("shortdesc");
+ if (AtcCode.isAtcCode(code)) {
+ return new AtcCode(code, shortdesc);
+ }
+ return new UnregisteredCode(code, shortdesc);
+ }
);
}
} \ No newline at end of file