EMMA Coverage Report (generated Mon Dec 09 15:12:29 EST 2013)
[all classes][org.jclouds.glesys.compute.options]

COVERAGE SUMMARY FOR SOURCE FILE [GleSYSTemplateOptions.java]

nameclass, %method, %block, %line, %
GleSYSTemplateOptions.java100% (2/2)48%  (12/25)54%  (144/269)61%  (33.8/55)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class GleSYSTemplateOptions$Builder100% (1/1)38%  (3/8)40%  (33/82)40%  (6/15)
GleSYSTemplateOptions$Builder (): void 0%   (0/1)0%   (0/3)0%   (0/1)
blockOnPort (int, int): GleSYSTemplateOptions 0%   (0/1)0%   (0/12)0%   (0/2)
inboundPorts (int []): GleSYSTemplateOptions 0%   (0/1)0%   (0/11)0%   (0/2)
userMetadata (Map): GleSYSTemplateOptions 0%   (0/1)0%   (0/11)0%   (0/2)
userMetadata (String, String): GleSYSTemplateOptions 0%   (0/1)0%   (0/12)0%   (0/2)
ip (String): GleSYSTemplateOptions 100% (1/1)100% (11/11)100% (2/2)
rootPassword (String): GleSYSTemplateOptions 100% (1/1)100% (11/11)100% (2/2)
transferGB (int): GleSYSTemplateOptions 100% (1/1)100% (11/11)100% (2/2)
     
class GleSYSTemplateOptions100% (1/1)53%  (9/17)59%  (111/187)68%  (28/41)
authorizePublicKey (String): GleSYSTemplateOptions 0%   (0/1)0%   (0/7)0%   (0/1)
blockOnPort (int, int): GleSYSTemplateOptions 0%   (0/1)0%   (0/8)0%   (0/1)
hasRootPassword (): boolean 0%   (0/1)0%   (0/7)0%   (0/1)
inboundPorts (int []): GleSYSTemplateOptions 0%   (0/1)0%   (0/7)0%   (0/1)
installPrivateKey (String): GleSYSTemplateOptions 0%   (0/1)0%   (0/7)0%   (0/1)
string (): Objects$ToStringHelper 0%   (0/1)0%   (0/25)0%   (0/6)
userMetadata (Map): GleSYSTemplateOptions 0%   (0/1)0%   (0/7)0%   (0/1)
userMetadata (String, String): GleSYSTemplateOptions 0%   (0/1)0%   (0/8)0%   (0/1)
GleSYSTemplateOptions (): void 100% (1/1)100% (12/12)100% (5/5)
clone (): GleSYSTemplateOptions 100% (1/1)100% (9/9)100% (3/3)
copyTo (TemplateOptions): void 100% (1/1)100% (27/27)100% (7/7)
getIp (): String 100% (1/1)100% (3/3)100% (1/1)
getRootPassword (): String 100% (1/1)100% (3/3)100% (1/1)
getTransferGB (): int 100% (1/1)100% (3/3)100% (1/1)
ip (String): GleSYSTemplateOptions 100% (1/1)100% (26/26)100% (4/4)
rootPassword (String): GleSYSTemplateOptions 100% (1/1)100% (9/9)100% (3/3)
transferGB (int): GleSYSTemplateOptions 100% (1/1)100% (19/19)100% (3/3)

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 */
17package org.jclouds.glesys.compute.options;
18 
19import static com.google.common.base.Preconditions.checkArgument;
20import static com.google.common.base.Preconditions.checkNotNull;
21 
22import java.util.Map;
23 
24import org.jclouds.compute.options.TemplateOptions;
25import org.jclouds.glesys.domain.ServerSpec;
26 
27import com.google.common.base.Objects.ToStringHelper;
28import com.google.common.net.InetAddresses;
29 
30/**
31 * Contains options supported by the
32 * {@link ComputeService#createNodesInGroup(String, int, TemplateOptions)} and
33 * {@link ComputeService#createNodesInGroup(String, int, TemplateOptions)}
34 * operations on the <em>glesys</em> provider.
35 * 
36 * <h2>Usage</h2> The recommended way to instantiate a
37 * {@link GleSYSTemplateOptions} object is to statically import
38 * {@code GleSYSTemplateOptions.*} and invoke a static creation method followed
39 * by an instance mutator (if needed):
40 * <p>
41 * 
42 * <pre>
43 * import static org.jclouds.compute.options.GleSYSTemplateOptions.Builder.*;
44 * ComputeService api = // get connection
45 * templateBuilder.options(rootPassword("caQu5rou"));
46 * Set&lt;? extends NodeMetadata&gt; set = api.createNodesInGroup(tag, 2, templateBuilder.build());
47 * </pre>
48 * 
49 * @author Adrian Cole
50 */
51public class GleSYSTemplateOptions extends TemplateOptions implements Cloneable {
52 
53   /**
54    * The IP address to assign to the new node instance. If set to "
55    * <code>any</code>" the node will be automatically assigned a free IP
56    * address.
57    */
58   protected String ip = "any";
59   /**
60    * The password to set for the root user on the created server instance. If
61    * left unspecified, a random password will be assigned.
62    */
63   protected String rootPassword = null;
64 
65   /** The monthly data transfer limit (in GB) for the server. */
66   protected int transferGB = 50;
67 
68   @Override
69   public GleSYSTemplateOptions clone() {
70      GleSYSTemplateOptions options = new GleSYSTemplateOptions();
71      copyTo(options);
72      return options;
73   }
74 
75   @Override
76   public void copyTo(TemplateOptions to) {
77      super.copyTo(to);
78      if (to instanceof GleSYSTemplateOptions) {
79         GleSYSTemplateOptions copy = GleSYSTemplateOptions.class.cast(to);
80         copy.ip(ip);
81         copy.rootPassword(rootPassword);
82         copy.transferGB(transferGB);
83      }
84   }
85 
86   /**
87    * Sets the IP address to assign to the new server instance. If set to "
88    * <code>any</code>" the server will be automatically assigned a free IP
89    * address.
90    * 
91    * @see ServerApi#createWithHostnameAndRootPassword
92    * @see InetAddresses#isInetAddress
93    */
94   public GleSYSTemplateOptions ip(String ip) {
95      checkNotNull(ip);
96      checkArgument("any".equals(ip) || InetAddresses.isInetAddress(ip), "ip %s is not valid", ip);      
97      this.ip = ip;
98      return this;
99   }
100 
101   /**
102    * @return the IP address to assign to the new server instance.
103    */
104   public String getIp() {
105      return ip;
106   }
107 
108   /**
109    * Sets the password for the root user on the created server instance. If
110    * left unspecified, a random password will be assigned.
111    * 
112    * @see ServerApi#createWithHostnameAndRootPassword
113    */
114   public GleSYSTemplateOptions rootPassword(String rootPassword) {
115      checkNotNull(rootPassword, "root password cannot be null");
116      this.rootPassword = rootPassword;
117      return this;
118   }
119 
120   /**
121    * @return the password set for the root user or <code>null</code> if none is
122    *         set (and a random password will be assigned).
123    */
124   public String getRootPassword() {
125      return rootPassword;
126   }
127 
128   /**
129    * @return <code>true</code> if a root password has been specified.
130    */
131   public boolean hasRootPassword() {
132      return rootPassword != null;
133   }
134 
135   /**
136    * Sets the monthly data transfer limit (in GB) for the server.
137    * 
138    * @see ServerSpec#getTransferGB()
139    */
140   public GleSYSTemplateOptions transferGB(int transferGB) {
141      checkArgument(transferGB >= 0, "transferGB value must be >= 0", transferGB);
142      this.transferGB = transferGB;
143      return this;
144   }
145 
146   /**
147    * @return the monthly data transfer limit (in GB) for the server.
148    */
149   public int getTransferGB() {
150      return transferGB;
151   }
152 
153   public static class Builder {
154 
155      /**
156       * @see GleSYSTemplateOptions#ip
157       */
158      public static GleSYSTemplateOptions ip(String ip) {
159         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
160         return GleSYSTemplateOptions.class.cast(options.ip(ip));
161      }
162 
163      /**
164       * @see GleSYSTemplateOptions#rootPassword
165       */
166      public static GleSYSTemplateOptions rootPassword(String rootPassword) {
167         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
168         return GleSYSTemplateOptions.class.cast(options.rootPassword(rootPassword));
169      }
170 
171      /**
172       * @see GleSYSTemplateOptions#transferGB
173       */
174      public static GleSYSTemplateOptions transferGB(int transferGB) {
175         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
176         return GleSYSTemplateOptions.class.cast(options.transferGB(transferGB));
177      }
178 
179      // methods that only facilitate returning the correct object type
180 
181      /**
182       * @see TemplateOptions#inboundPorts(int...)
183       */
184      public static GleSYSTemplateOptions inboundPorts(int... ports) {
185         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
186         return GleSYSTemplateOptions.class.cast(options.inboundPorts(ports));
187      }
188 
189      /**
190       * @see TemplateOptions#blockOnPort(int, int)
191       */
192      public static GleSYSTemplateOptions blockOnPort(int port, int seconds) {
193         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
194         return GleSYSTemplateOptions.class.cast(options.blockOnPort(port, seconds));
195      }
196 
197      /**
198       * @see TemplateOptions#userMetadata(Map)
199       */
200      public static GleSYSTemplateOptions userMetadata(Map<String, String> userMetadata) {
201         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
202         return GleSYSTemplateOptions.class.cast(options.userMetadata(userMetadata));
203      }
204 
205      /**
206       * @see TemplateOptions#userMetadata(String, String)
207       */
208      public static GleSYSTemplateOptions userMetadata(String key, String value) {
209         GleSYSTemplateOptions options = new GleSYSTemplateOptions();
210         return GleSYSTemplateOptions.class.cast(options.userMetadata(key, value));
211      }
212   }
213 
214   // methods that only facilitate returning the correct object type
215 
216   /**
217    * @see TemplateOptions#blockOnPort(int, int)
218    */
219   @Override
220   public GleSYSTemplateOptions blockOnPort(int port, int seconds) {
221      return GleSYSTemplateOptions.class.cast(super.blockOnPort(port, seconds));
222   }
223 
224   /**
225    * @see TemplateOptions#inboundPorts(int...)
226    */
227   @Override
228   public GleSYSTemplateOptions inboundPorts(int... ports) {
229      return GleSYSTemplateOptions.class.cast(super.inboundPorts(ports));
230   }
231 
232   /**
233    * @see TemplateOptions#authorizePublicKey(String)
234    */
235   @Override
236   public GleSYSTemplateOptions authorizePublicKey(String publicKey) {
237      return GleSYSTemplateOptions.class.cast(super.authorizePublicKey(publicKey));
238   }
239 
240   /**
241    * @see TemplateOptions#installPrivateKey(String)
242    */
243   @Override
244   public GleSYSTemplateOptions installPrivateKey(String privateKey) {
245      return GleSYSTemplateOptions.class.cast(super.installPrivateKey(privateKey));
246   }
247 
248   /**
249    * {@inheritDoc}
250    */
251   @Override
252   public GleSYSTemplateOptions userMetadata(Map<String, String> userMetadata) {
253      return GleSYSTemplateOptions.class.cast(super.userMetadata(userMetadata));
254   }
255 
256   /**
257    * {@inheritDoc}
258    */
259   @Override
260   public GleSYSTemplateOptions userMetadata(String key, String value) {
261      return GleSYSTemplateOptions.class.cast(super.userMetadata(key, value));
262   }
263 
264   @Override
265   public ToStringHelper string() {
266      ToStringHelper stringHelper = super.string();
267 
268      stringHelper.add("transferGB", this.transferGB);
269      stringHelper.add("ip", this.ip);
270      if (this.hasRootPassword()) {
271         stringHelper.add("rootPasswordPresent", true);
272      }
273 
274      return stringHelper;
275   }
276 
277}

[all classes][org.jclouds.glesys.compute.options]
EMMA 2.0.5312 (C) Vladimir Roubtsov