1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.webadmin.rest.representations;
21
22 import org.neo4j.server.rest.repr.ListRepresentation;
23 import org.neo4j.server.rest.repr.MappingRepresentation;
24 import org.neo4j.server.rest.repr.MappingSerializer;
25 import org.neo4j.server.rest.repr.ObjectRepresentation;
26 import org.neo4j.server.rest.repr.ValueRepresentation;
27 import org.rrd4j.core.FetchData;
28
29 public class RrdDataRepresentation extends ObjectRepresentation
30 {
31 private final FetchData rrdData;
32
33 public RrdDataRepresentation( FetchData rrdData )
34 {
35 super( "rrd-data" );
36 this.rrdData = rrdData;
37 }
38
39 @Mapping( "start_time" )
40 public ValueRepresentation getStartTime()
41 {
42 return ValueRepresentation.number( rrdData.getFirstTimestamp() );
43 }
44
45 @Mapping( "end_time" )
46 public ValueRepresentation getEndTime()
47 {
48 return ValueRepresentation.number( rrdData.getLastTimestamp() );
49 }
50
51 @Mapping( "timestamps" )
52 public ListRepresentation getTimestamps()
53 {
54 return ListRepresentation.numbers( rrdData.getTimestamps() );
55 }
56
57 @Mapping( "data" )
58 public MappingRepresentation getDatasources()
59 {
60 return new MappingRepresentation( "datasources" )
61 {
62 @Override
63 protected void serialize( MappingSerializer serializer )
64 {
65 String[] dsNames = rrdData.getDsNames();
66 for ( int i = 0, l = dsNames.length; i < l; i++ )
67 {
68 serializer.putList( dsNames[i],
69 ListRepresentation.numbers( rrdData.getValues( i ) ) );
70 }
71 }
72 };
73 }
74 }
75