Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9a248a1

Browse files
committed
add getAsEnumList
1 parent 37405b4 commit 9a248a1

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

‎pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<modelVersion>4.0.0</modelVersion>
1717
<artifactId>http-server</artifactId>
18-
<version>0.3.11</version>
18+
<version>0.3.12</version>
1919
<name>HttpServer</name>
2020
<packaging>jar</packaging>
2121

‎src/main/java/info/unterrainer/commons/httpserver/HandlerUtils.java‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import java.time.LocalDateTime;
44
import java.time.format.DateTimeFormatter;
55
import java.time.format.DateTimeParseException;
6+
import java.util.ArrayList;
7+
import java.util.List;
68
import java.util.Set;
79

810
import info.unterrainer.commons.httpserver.daos.CoreDao;
@@ -156,6 +158,25 @@ public int convertToInt(final String s) {
156158
}
157159
}
158160

161+
public <T extends Enum<T>> List<T> convertToEnumList(final String[] o, final Class<T> enumType) {
162+
List<T> result = new ArrayList<>();
163+
try {
164+
for (String s : o)
165+
result.add(Enum.valueOf(enumType, s));
166+
} catch (IllegalArgumentException e) {
167+
throw new BadRequestException("Parameter has to be a comma-separated list of a valid enum type.");
168+
}
169+
return result;
170+
}
171+
172+
public <T extends Enum<T>> List<T> getQueryParamAsEnumList(final Context ctx, final String name,
173+
final Class<T> enumType, final List<T> defaultValue) {
174+
String paramString = getQueryParamAsString(ctx, name);
175+
if (paramString == null)
176+
return defaultValue;
177+
return convertToEnumList(paramString.split(","), enumType);
178+
}
179+
159180
public String getQueryParamAsString(final Context ctx, final String name) {
160181
return getQueryParamAsString(ctx, name, true, null);
161182
}

‎src/main/java/info/unterrainer/commons/httpserver/daos/ListQuery.java‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@
44
import java.util.List;
55
import java.util.function.Function;
66

7+
import info.unterrainer.commons.httpserver.jsons.ListJson;
8+
import info.unterrainer.commons.rdbutils.Transactions;
9+
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
710
import jakarta.persistence.EntityManager;
811
import jakarta.persistence.EntityManagerFactory;
912
import jakarta.persistence.NoResultException;
1013
import jakarta.persistence.NonUniqueResultException;
1114
import jakarta.persistence.TypedQuery;
12-
13-
import info.unterrainer.commons.httpserver.jsons.ListJson;
14-
import info.unterrainer.commons.rdbutils.Transactions;
15-
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
1615
import lombok.AccessLevel;
1716
import lombok.RequiredArgsConstructor;
1817

@@ -59,7 +58,7 @@ public ListJson<T> getListJson(final long offset, final long size) {
5958
}
6059

6160
/**
62-
* Gets the first row this query returns.
61+
* Gets the first row this query returns or null, if no row was returned at all.
6362
*
6463
* @return the result-row as a JPA
6564
*/

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /