1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.rest.repr;
21
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
25 import java.util.Map;
26
27 public final class ServerExtensionRepresentation extends MappingRepresentation
28 {
29 private final Map<String, EntityExtensionRepresentation> extended;
30
31 public ServerExtensionRepresentation( String name, List<ExtensionPointRepresentation> methods )
32 {
33 super( RepresentationType.SERVER_PLUGIN_DESCRIPTION );
34 this.extended = new HashMap<String, EntityExtensionRepresentation>();
35 for ( ExtensionPointRepresentation extension : methods )
36 {
37 EntityExtensionRepresentation entity = extended.get( extension.getExtendedEntity() );
38 if ( entity == null )
39 {
40 extended.put( extension.getExtendedEntity(),
41 entity = new EntityExtensionRepresentation() );
42 }
43 entity.add( extension );
44 }
45 }
46
47 @Override
48 protected void serialize( MappingSerializer serializer )
49 {
50 for ( Map.Entry<String, EntityExtensionRepresentation> entity : extended.entrySet() )
51 {
52 serializer.putMapping( entity.getKey(), entity.getValue() );
53 }
54 }
55
56 private static class EntityExtensionRepresentation extends MappingRepresentation
57 {
58 private final List<ExtensionPointRepresentation> extensions;
59
60 EntityExtensionRepresentation()
61 {
62 super( "entity-extensions" );
63 this.extensions = new ArrayList<ExtensionPointRepresentation>();
64 }
65
66 void add( ExtensionPointRepresentation extension )
67 {
68 extensions.add( extension );
69 }
70
71 @Override
72 protected void serialize( MappingSerializer serializer )
73 {
74 for ( ExtensionPointRepresentation extension : extensions )
75 {
76 serializer.putMapping( extension.getName(), extension );
77 }
78 }
79 }
80 }