EMMA Coverage Report (generated Wed Oct 26 13:47:17 EDT 2011)
[all classes][org.jclouds.domain]

COVERAGE SUMMARY FOR SOURCE FILE [JsonBall.java]

nameclass, %method, %block, %line, %
JsonBall.java100% (1/1)50%  (6/12)46%  (69/151)43%  (16/37)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JsonBall100% (1/1)50%  (6/12)46%  (69/151)43%  (16/37)
JsonBall (double): void 0%   (0/1)0%   (0/13)0%   (0/3)
JsonBall (int): void 0%   (0/1)0%   (0/13)0%   (0/3)
JsonBall (long): void 0%   (0/1)0%   (0/13)0%   (0/3)
compareTo (String): int 0%   (0/1)0%   (0/5)0%   (0/1)
hashCode (): int 0%   (0/1)0%   (0/19)0%   (0/4)
subSequence (int, int): CharSequence 0%   (0/1)0%   (0/6)0%   (0/1)
equals (Object): boolean 100% (1/1)65%  (24/37)54%  (7/13)
JsonBall (String): void 100% (1/1)100% (10/10)100% (3/3)
charAt (int): char 100% (1/1)100% (5/5)100% (1/1)
length (): int 100% (1/1)100% (4/4)100% (1/1)
quoteStringIfNotNumber (String): String 100% (1/1)100% (23/23)100% (3/3)
toString (): String 100% (1/1)100% (3/3)100% (1/1)

1/**
2 * Licensed to jclouds, Inc. (jclouds) under one or more
3 * contributor license agreements.  See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership.  jclouds licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License.  You may obtain a copy of the License at
9 *
10 *   http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied.  See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19package org.jclouds.domain;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22 
23import org.jclouds.util.Patterns;
24 
25/**
26 * 
27 * As String is final, using a different marker to imply this is a json object
28 * 
29 * @author Adrian Cole
30 * @see <a href="http://code.google.com/p/google-gson/issues/detail?id=326"/>
31 */
32public class JsonBall implements java.io.Serializable, Comparable<String>, CharSequence {
33 
34   private static final long serialVersionUID = -8168997021767065199L;
35   private final String value;
36 
37   @Override
38   public boolean equals(Object obj) {
39      if (this == obj)
40         return true;
41      if (obj == null)
42         return false;
43      if (getClass() != obj.getClass())
44         return false;
45      JsonBall other = (JsonBall) obj;
46      if (value == null) {
47         if (other.value != null)
48            return false;
49      } else if (!value.equals(other.value))
50         return false;
51      return true;
52   }
53 
54   @Override
55   public int hashCode() {
56      final int prime = 31;
57      int result = 1;
58      result = prime * result + ((value == null) ? 0 : value.hashCode());
59      return result;
60   }
61 
62   @Override
63   public String toString() {
64      return value;
65   }
66 
67   public JsonBall(double value) {
68      this.value = value + "";
69   }
70 
71   public JsonBall(int value) {
72      this.value = value + "";
73   }
74 
75   public JsonBall(long value) {
76      this.value = value + "";
77   }
78 
79   public JsonBall(String value) {
80      this.value = quoteStringIfNotNumber(checkNotNull(value, "value"));
81   }
82 
83   static String quoteStringIfNotNumber(String in) {
84      if (Patterns.JSON_STRING_PATTERN.matcher(in).find() && !Patterns.JSON_NUMBER_PATTERN.matcher(in).find()) {
85         return "\"" + in + "\"";
86      }
87      return in;
88   }
89 
90   @Override
91   public char charAt(int index) {
92      return value.charAt(index);
93   }
94 
95   @Override
96   public int length() {
97      return value.length();
98   }
99 
100   @Override
101   public CharSequence subSequence(int start, int end) {
102      return value.subSequence(start, end);
103   }
104 
105   @Override
106   public int compareTo(String o) {
107      return value.compareTo(o);
108   }
109 
110}

[all classes][org.jclouds.domain]
EMMA 2.0.5312 (C) Vladimir Roubtsov