Skip to content

Commit 33e26e1

Browse files
committed
Validator that validate that the type of the field/returned type of the method is instance of "PaginatedData"
1 parent dbcc9be commit 33e26e1

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Copyright 2016 Yurii Rashkovskii
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
*/
15+
package graphql.annotations.connection;
16+
17+
import java.lang.reflect.AccessibleObject;
18+
import java.lang.reflect.Field;
19+
import java.lang.reflect.Method;
20+
21+
public class ConnectionTypeValidator {
22+
23+
public void validate(AccessibleObject field) {
24+
if(field instanceof Field) {
25+
if(!PaginatedData.class.isAssignableFrom(((Field)field).getType())) {
26+
throw new GraphQLConnectionException(((Field) field).getName() + " type must be PaginatedData");
27+
}
28+
}
29+
else {
30+
if(!PaginatedData.class.isAssignableFrom(((Method)field).getReturnType())){
31+
throw new GraphQLConnectionException(((Method) field).getName() + " return type must be PaginatedData");
32+
}
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)