mirror of
https://github.com/pcvolkmer/onkostar-plugin-dnpm.git
synced 2025-07-04 10:02:55 +00:00
Klasse mit Hilfsfunktionen zum Prüfen und Ermitteln von Werten hinzugefügt
This commit is contained in:
143
src/main/java/DNPM/analyzer/AnalyzerUtils.java
Normal file
143
src/main/java/DNPM/analyzer/AnalyzerUtils.java
Normal file
@ -0,0 +1,143 @@
|
||||
package DNPM.analyzer;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Klasse mit Hilfsfunktionen für Analyzer
|
||||
*
|
||||
* @since 0.1.0
|
||||
*/
|
||||
public class AnalyzerUtils {
|
||||
|
||||
/**
|
||||
* Prüft, ob ein Optional mit Wert, wenn in InputMap ein Eintrag mit key <code>key</code> und Typ <code>type</code>
|
||||
* gefunden wurde.
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @param type Typ des Werts
|
||||
* @return <code>true</code>>, wenn ein Wert von dem Typ gefunden wurde
|
||||
*/
|
||||
public static boolean requiredValuePresent(final Map<String, Object> input, final String key, final Class<?> type) {
|
||||
var value = input.get(key);
|
||||
|
||||
if (null == value) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return type.isInstance(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Übergibt ein Optional mit Wert, wenn in InputMap ein Eintrag mit key <code>key</code> und Typ <code>type</code>
|
||||
* gefunden wurde. Anderenfalls ein leeres Optional
|
||||
*
|
||||
* <p><b>Beispiel</b>
|
||||
* <pre>
|
||||
* var id = AnalyzerUtils.getRequiredValue(input, "id", Integer.class);
|
||||
* if (id.isEmpty()) {
|
||||
* logger.error("Keine ID angegeben!");
|
||||
* return false;
|
||||
* }
|
||||
*
|
||||
* var idNummer = id.get();
|
||||
* ...
|
||||
* </pre>
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @param type Typ des Werts
|
||||
* @return Optional mit entsprechendem Wert oder leeres Optional
|
||||
*/
|
||||
public static <T> Optional<T> getRequiredValue(final Map<String, Object> input, final String key, final Class<T> type) {
|
||||
if (! requiredValuePresent(input, key, type)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
var result = Optional.of((T)input.get(key));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob ein Wert als Zeichenkette dem angegebenen RegExp entspricht
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @param regexp Der zu prüfende reguläre Ausdruck
|
||||
* @return <code>true</code>>, wenn ein Wert gefunden wurde, der dem RegExp entspricht
|
||||
*/
|
||||
public static boolean requiredValueMatches(final Map<String, Object> input, final String key, final String regexp) {
|
||||
var value = input.get(key);
|
||||
|
||||
if (null == value) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return value.toString().matches(regexp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Übergibt ein Optional mit dem Wert als Zeichenkette, wenn er dem angegebenen RegExp entspricht.
|
||||
* Hierzu wird die Methode <code>toString()</code> auf den Wert angewendet.
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @param regexp Der zu prüfende reguläre Ausdruck
|
||||
* @return Optional mit entsprechendem Wert als Zeichenkette oder leeres Optional
|
||||
*/
|
||||
public static Optional<String> getRequiredValueMatching(final Map<String, Object> input, final String key, final String regexp) {
|
||||
if (! requiredValueMatches(input, key, regexp)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
return Optional.of(input.get(key).toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob ein Wert eine ID ist und damit eine Zahl größer Null ist.
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @return <code>true</code>>, wenn ein Wert gefunden wurde, der dem RegExp entspricht
|
||||
*/
|
||||
public static boolean requiredValueIsId(final Map<String, Object> input, final String key) {
|
||||
return requiredValuePresent(input, key, Integer.class) && Integer.valueOf(input.get(key).toString()) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Übergibt ein Optional, wenn der Wert eine ID ist und damit eine Zahl größer Null ist.
|
||||
* <p><b>Beispiel</b>
|
||||
* <pre>
|
||||
* var id = AnalyzerUtils.getRequiredId(input, "id");
|
||||
* if (id.isEmpty()) {
|
||||
* logger.error("Keine gültige ID angegeben!");
|
||||
* return false;
|
||||
* }
|
||||
*
|
||||
* // Ist hier immer größer als Null
|
||||
* var idNummer = id.get();
|
||||
* ...
|
||||
* </pre>
|
||||
*
|
||||
* @param input InputMap
|
||||
* @param key Key des Werts
|
||||
* @return Optional mit entsprechendem Wert oder leeres Optional
|
||||
*/
|
||||
public static Optional<Integer> getRequiredId(final Map<String, Object> input, final String key) {
|
||||
if (! requiredValuePresent(input, key, Integer.class)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
var id = (int)input.get(key);
|
||||
|
||||
if (id > 0) {
|
||||
return Optional.of(id);
|
||||
}
|
||||
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user