1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.plugins;
21
22 import org.neo4j.kernel.AbstractGraphDatabase;
23 import org.neo4j.server.rest.repr.BadInputException;
24
25 abstract class ListParameterExtractor extends ParameterExtractor
26 {
27 ListParameterExtractor( TypeCaster caster, Class<?> type, Parameter param,
28 Description description )
29 {
30 super( caster, type, param, description );
31 }
32
33 @Override
34 Object extract( AbstractGraphDatabase graphDb, Object source, ParameterList parameters )
35 throws BadInputException
36 {
37 Object[] result = caster.getList( graphDb, parameters, name );
38 if ( result != null )
39 {
40 if ( type.isPrimitive() ) return caster.convert( result );
41 return convert( result );
42 }
43 if ( optional ) return null;
44 throw new IllegalArgumentException( "Mandatory argument \"" + name + "\" not supplied." );
45 }
46
47 abstract Object convert( Object[] result );
48
49 @Override
50 void describe( ParameterDescriptionConsumer consumer )
51 {
52 consumer.describeListParameter( name, type, optional, description );
53 }
54 }