/*******************************************************************************
* Copyright (c) 2014, 2015 Red Hat.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat - Initial Contribution
*******************************************************************************/
package org.eclipse.linuxtools.internal.docker.core;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.linuxtools.docker.core.IDockerNetworkSettings;
import org.eclipse.linuxtools.docker.core.IDockerPortBinding;
import com.spotify.docker.client.messages.NetworkSettings;
import com.spotify.docker.client.messages.PortBinding;
/**
* @author xcoulon
*
*/
public class DockerNetworkSettings implements IDockerNetworkSettings {
private final String bridge;
private final String gateway;
private final String ipAddress;
private final Integer ipPrefixLen;
private final Map<String, Map<String, String>> portMapping;
private final Map<String, List<IDockerPortBinding>> ports;
public DockerNetworkSettings(final NetworkSettings networkSettings) {
this.bridge = networkSettings.bridge();
this.gateway = networkSettings.gateway();
this.ipAddress = networkSettings.ipAddress();
this.ipPrefixLen = networkSettings.ipPrefixLen();
this.portMapping = networkSettings.portMapping();
this.ports = new HashMap<>();
if(networkSettings.ports() != null) {
for(Entry<String, List<PortBinding>> entry : networkSettings.ports().entrySet()) {
final List<IDockerPortBinding> values = new ArrayList<>();
if(entry.getValue() != null) {
for(PortBinding portBinding : entry.getValue()) {
values.add(new DockerPortBinding(portBinding));
}
}
ports.put(entry.getKey(), values);
}
}
}
/**
* @return the bridge
*/
@Override
public String bridge() {
return bridge;
}
/**
* @return the gateway
*/
@Override
public String gateway() {
return gateway;
}
/**
* @return the ipAddress
*/
@Override
public String ipAddress() {
return ipAddress;
}
/**
* @return the ipPrefixLen
*/
@Override
public Integer ipPrefixLen() {
return ipPrefixLen;
}
/**
* @return the portMapping
*/
@Override
public Map<String, Map<String, String>> portMapping() {
return portMapping;
}
/**
* @return the ports
*/
@Override
public Map<String, List<IDockerPortBinding>> ports() {
return ports;
}
}