Statistics
| Branch: | Revision:

root / main / java / net / elasticgrid / rackspace / cloudservers / Addresses.java @ f8be9cce

History | View | Annotate | Download (2.9 kB)

1
/**
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements.  See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership.  The ASF 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
 */
19
package net.elasticgrid.rackspace.cloudservers;
20

    
21
import net.elasticgrid.rackspace.cloudservers.internal.Public;
22
import net.elasticgrid.rackspace.cloudservers.internal.Private;
23
import java.io.Serializable;
24
import java.net.InetAddress;
25
import java.net.UnknownHostException;
26
import java.util.List;
27
import java.util.ArrayList;
28

    
29
/**
30
 * Addresses are either public or private.
31
 * @author Jerome Bernard
32
 */
33
public class Addresses implements Serializable {
34
    private final List<InetAddress> publicAddresses;
35
    private final List<InetAddress> privateAddresses;
36

    
37
    public Addresses(List<InetAddress> publicAddresses, List<InetAddress> privateAddresses) {
38
        this.publicAddresses = publicAddresses;
39
        this.privateAddresses = privateAddresses;
40
    }
41

    
42
    public Addresses(net.elasticgrid.rackspace.cloudservers.internal.Addresses addresses) throws UnknownHostException {
43
        // populate public addresses list
44
        Public publicAddresses = addresses.getPublic();
45
        this.publicAddresses = new ArrayList<InetAddress>(publicAddresses.getAddressLists().size());
46
        for (net.elasticgrid.rackspace.cloudservers.internal.Address address : publicAddresses.getAddressLists()) {
47
            this.publicAddresses.add(InetAddress.getByName(address.getAddr()));
48
        }
49
        // populate private addresses list
50
        Private privateAddresses = addresses.getPrivate();
51
        this.privateAddresses = new ArrayList<InetAddress>(privateAddresses.getAddressLists().size());
52
        for (net.elasticgrid.rackspace.cloudservers.internal.Address address : privateAddresses.getAddressLists()) {
53
            this.privateAddresses.add(InetAddress.getByName(address.getAddr()));
54
        }
55
    }
56

    
57
    public List<InetAddress> getPublicAddresses() {
58
        return publicAddresses;
59
    }
60

    
61
    public List<InetAddress> getPrivateAddresses() {
62
        return privateAddresses;
63
    }
64

    
65
    @Override
66
    public String toString() {
67
        final StringBuilder sb = new StringBuilder();
68
        sb.append("Addresses");
69
        sb.append("{publicAddresses=").append(publicAddresses);
70
        sb.append(", privateAddresses=").append(privateAddresses);
71
        sb.append('}');
72
        return sb.toString();
73
    }
74
}