1 | /* |
2 | �*�Licensed�to�the�Apache�Software�Foundation�(ASF)�under�one�or�more |
3 | �*�contributor�license�agreements.��See�the�NOTICE�file�distributed�with |
4 | �*�this�work�for�additional�information�regarding�copyright�ownership. |
5 | �*�The�ASF�licenses�this�file�to�You�under�the�Apache�License,�Version�2.0 |
6 | �*�(the�"License");�you�may�not�use�this�file�except�in�compliance�with |
7 | �*�the�License.��You�may�obtain�a�copy�of�the�License�at |
8 | �* |
9 | �*�����http://www.apache.org/licenses/LICENSE-2.0 |
10 | �* |
11 | �*�Unless�required�by�applicable�law�or�agreed�to�in�writing,�software |
12 | �*�distributed�under�the�License�is�distributed�on�an�"AS�IS"�BASIS, |
13 | �*�WITHOUT�WARRANTIES�OR�CONDITIONS�OF�ANY�KIND,�either�express�or�implied. |
14 | �*�See�the�License�for�the�specific�language�governing�permissions�and |
15 | �*�limitations�under�the�License. |
16 | �*/ |
17 | package�org.jclouds.glesys.functions.internal; |
18 | � |
19 | import�java.io.IOException; |
20 | � |
21 | import�org.jclouds.glesys.domain.GleSYSBoolean; |
22 | import�org.jclouds.glesys.domain.Server; |
23 | � |
24 | import�com.google.common.base.Objects; |
25 | import�com.google.gson.TypeAdapter; |
26 | import�com.google.gson.stream.JsonReader; |
27 | import�com.google.gson.stream.JsonToken; |
28 | import�com.google.gson.stream.JsonWriter; |
29 | � |
30 | /** |
31 | �*�@author�Adam�Lowe |
32 | �*/ |
33 | public�class�GleSYSTypeAdapters�{ |
34 | � |
35 | ���public�static�class�ServerStateAdapter�extends�TypeAdapter<Server.State>�{ |
36 | ������@Override |
37 | ������public�void�write(JsonWriter�writer,�Server.State�value)�throws�IOException�{ |
38 | ���������writer.value(value.value()); |
39 | ������} |
40 | � |
41 | ������@Override |
42 | ������public�Server.State�read(JsonReader�reader)�throws�IOException�{ |
43 | ���������if�(reader.peek()�==�JsonToken.NULL)�{ |
44 | ������������reader.nextNull(); |
45 | ������������return�Server.State.UNRECOGNIZED; |
46 | ���������} |
47 | ���������return�Server.State.fromValue(reader.nextString()); |
48 | ������} |
49 | ���} |
50 | � |
51 | ���public�static�class�GleSYSBooleanAdapter�extends�TypeAdapter<GleSYSBoolean>�{ |
52 | � |
53 | ������@Override |
54 | ������public�void�write(JsonWriter�writer,�GleSYSBoolean�value)�throws�IOException�{ |
55 | ���������writer.value(value.getValue()�?�"yes"�:�"no"); |
56 | ������} |
57 | � |
58 | ������@Override |
59 | ������public�GleSYSBoolean�read(JsonReader�in)�throws�IOException�{ |
60 | ���������if�(in.peek()�==�JsonToken.BOOLEAN)�{ |
61 | ������������return�new�GleSYSBoolean(in.nextBoolean()); |
62 | ���������}�else�if�(in.peek()�==�JsonToken.NULL)�{ |
63 | ������������return�GleSYSBoolean.FALSE; |
64 | ���������}�else�{ |
65 | ������������return�new�GleSYSBoolean(Objects.equal(in.nextString(),�"yes")); |
66 | ���������} |
67 | ������} |
68 | � |
69 | ���} |
70 | � |
71 | } |