EMMA Coverage Report (generated Mon Oct 17 05:41:20 EDT 2011)
[all classes][org.jclouds.cloudloadbalancers.domain]

COVERAGE SUMMARY FOR SOURCE FILE [LoadBalancerRequest.java]

nameclass, %method, %block, %line, %
LoadBalancerRequest.java67%  (2/3)55%  (11/20)49%  (111/227)61%  (19.5/32)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class LoadBalancerRequest100% (1/1)50%  (4/8)48%  (54/113)73%  (10.9/15)
LoadBalancerRequest (String, String, int, String, Iterable, List, LoadBalance... 0%   (0/1)0%   (0/9)0%   (0/1)
access$100 (LoadBalancerRequest): List 0%   (0/1)0%   (0/3)0%   (0/1)
toBuilder (): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/6)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/35)0%   (0/1)
getVirtualIPsFromOptions (VirtualIP$Type, Integer): List 100% (1/1)80%  (24/30)82%  (4.9/6)
LoadBalancerRequest (String, String, int, String, Iterable, List): void 100% (1/1)100% (15/15)100% (3/3)
LoadBalancerRequest (String, String, int, String, Iterable, VirtualIP$Type, I... 100% (1/1)100% (11/11)100% (2/2)
builder (): LoadBalancerRequest$Builder 100% (1/1)100% (4/4)100% (1/1)
     
class LoadBalancerRequest$10%   (0/1)100% (0/0)100% (0/0)100% (0/0)
     
class LoadBalancerRequest$Builder100% (1/1)58%  (7/12)50%  (57/114)50%  (8.6/17)
algorithm (String): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/7)0%   (0/1)
from (LoadBalancerRequest): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/10)0%   (0/1)
node (NodeRequest): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/9)0%   (0/2)
nodes (Iterable): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/9)0%   (0/2)
virtualIPs (List): LoadBalancerRequest$Builder 0%   (0/1)0%   (0/5)0%   (0/2)
build (): LoadBalancerRequest 100% (1/1)57%  (23/40)57%  (0.6/1)
LoadBalancerRequest$Builder (): void 100% (1/1)100% (3/3)100% (1/1)
name (String): LoadBalancerRequest$Builder 100% (1/1)100% (7/7)100% (1/1)
port (Integer): LoadBalancerRequest$Builder 100% (1/1)100% (7/7)100% (1/1)
protocol (String): LoadBalancerRequest$Builder 100% (1/1)100% (7/7)100% (1/1)
virtualIPId (Integer): LoadBalancerRequest$Builder 100% (1/1)100% (5/5)100% (2/2)
virtualIPType (VirtualIP$Type): LoadBalancerRequest$Builder 100% (1/1)100% (5/5)100% (2/2)

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.cloudloadbalancers.domain;
20 
21import static com.google.common.base.Preconditions.checkArgument;
22import static com.google.common.base.Preconditions.checkNotNull;
23 
24import java.util.List;
25import java.util.Map;
26 
27import org.jclouds.cloudloadbalancers.domain.internal.BaseLoadBalancer;
28 
29import com.google.common.collect.ImmutableList;
30import com.google.common.collect.ImmutableMap;
31import com.google.common.collect.ImmutableSet;
32 
33/**
34 * 
35 * @author Adrian Cole
36 * @see <a href=
37 *      "http://docs.rackspacecloud.com/loadbalancers/api/v1.0/clb-devguide/content/ch04s01s02.html"
38 *      />
39 */
40public class LoadBalancerRequest extends BaseLoadBalancer<NodeRequest, LoadBalancerRequest> {
41 
42   @SuppressWarnings("unchecked")
43   public static Builder builder() {
44      return new Builder();
45   }
46 
47   /**
48    * {@inheritDoc}
49    */
50   @Override
51   public Builder toBuilder() {
52      return new Builder().from(this);
53   }
54 
55   public static class Builder extends BaseLoadBalancer.Builder<NodeRequest, LoadBalancerRequest> {
56      private VirtualIP.Type virtualIPType;
57      private Integer virtualIPId;
58      private List<Map<String, String>> virtualIps;
59 
60      public Builder virtualIPId(Integer virtualIPId) {
61         this.virtualIPId = virtualIPId;
62         return this;
63      }
64 
65      public Builder virtualIPType(VirtualIP.Type virtualIPType) {
66         this.virtualIPType = virtualIPType;
67         return this;
68      }
69 
70      public LoadBalancerRequest build() {
71         return virtualIps == null ? new LoadBalancerRequest(name, protocol, port, algorithm, nodes, virtualIPType,
72                  virtualIPId) : new LoadBalancerRequest(name, protocol, port, algorithm, nodes, virtualIps);
73      }
74 
75      @Override
76      public Builder nodes(Iterable<NodeRequest> nodes) {
77         this.nodes = ImmutableSet.<NodeRequest> copyOf(checkNotNull(nodes, "nodes"));
78         return this;
79      }
80 
81      @Override
82      public Builder node(NodeRequest nodes) {
83         this.nodes.add(checkNotNull(nodes, "nodes"));
84         return this;
85      }
86 
87      private Builder virtualIPs(List<Map<String, String>> virtualIPs) {
88         this.virtualIps = virtualIPs;
89         return this;
90      }
91 
92      @Override
93      public Builder algorithm(String algorithm) {
94         return Builder.class.cast(super.algorithm(algorithm));
95      }
96 
97      @Override
98      public Builder from(LoadBalancerRequest in) {
99         return Builder.class.cast(super.from(in)).virtualIPs(in.virtualIps);
100      }
101 
102      @Override
103      public Builder name(String name) {
104         return Builder.class.cast(super.name(name));
105      }
106 
107      @Override
108      public Builder port(Integer port) {
109         return Builder.class.cast(super.port(port));
110      }
111 
112      @Override
113      public Builder protocol(String protocol) {
114         return Builder.class.cast(super.protocol(protocol));
115      }
116 
117   }
118 
119   private final List<Map<String, String>> virtualIps;
120 
121   public LoadBalancerRequest(String name, String protocol, int port, String algorithm, Iterable<NodeRequest> nodes,
122            VirtualIP.Type virtualIPType, Integer virtualIPId) {
123      this(name, protocol, port, algorithm, nodes, getVirtualIPsFromOptions(virtualIPType, virtualIPId));
124   }
125 
126   private LoadBalancerRequest(String name, String protocol, int port, String algorithm, Iterable<NodeRequest> nodes,
127            List<Map<String, String>> virtualIPsFromOptions) {
128      super(name, protocol, port, algorithm, nodes);
129      this.virtualIps = checkNotNull(virtualIPsFromOptions, "virtualIPsFromOptions");
130   }
131 
132   static List<Map<String, String>> getVirtualIPsFromOptions(VirtualIP.Type virtualIPType, Integer virtualIPId) {
133      checkArgument(virtualIPType == null || virtualIPId == null,
134               "virtualIPType and virtualIPId cannot both be specified");
135      if (virtualIPType != null)
136         return ImmutableList.<Map<String, String>> of(ImmutableMap.of("type", virtualIPType.name()));
137      else if (virtualIPId != null)
138         return ImmutableList.<Map<String, String>> of(ImmutableMap.of("id", virtualIPId.toString()));
139      else
140         throw new IllegalArgumentException("virtualIPType or virtualIPId must be specified");
141   }
142 
143   @Override
144   public String toString() {
145      return String.format("[algorithm=%s, name=%s, nodes=%s, port=%s, protocol=%s, virtualIps=%s]", algorithm, name,
146               nodes, port, protocol, virtualIps);
147   }
148 
149}

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