package org.opennaas.extensions.router.capabilities.api.helper; /* * #%L * OpenNaaS :: Router :: IP Capability * %% * Copyright (C) 2007 - 2014 FundaciĆ³ Privada i2CAT, Internet i InnovaciĆ³ a Catalunya * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import java.util.ArrayList; import java.util.List; import org.opennaas.extensions.router.capabilities.api.model.ip.IPAddresses; import org.opennaas.extensions.router.model.IPProtocolEndpoint; import org.opennaas.extensions.router.model.utils.IPUtilsHelper; /** * * @author Isart Canyameres Gimenez (i2cat) * */ public class IPApi2ModelTranslator { public static IPAddresses ipPEPs2IPAddresses(List<IPProtocolEndpoint> peps) { IPAddresses ipAddresses = new IPAddresses(); // arraylist size is fixed knowing that ipPEP2IPAddresses will return 2 elements for each pep at most. List<String> completeAddresses = new ArrayList<String>(peps.size() * 2); for (IPProtocolEndpoint pep : peps) { completeAddresses.addAll(ipPEP2IPAddresses(pep)); } ipAddresses.setIpAddresses(completeAddresses); return ipAddresses; } public static List<String> ipPEP2IPAddresses(IPProtocolEndpoint pep) { String ipv4 = pep.getIPv4Address(); String mask = pep.getSubnetMask(); String ipv6 = pep.getIPv6Address(); Short prefix = pep.getPrefixLength(); String completeipv4 = null; String completeipv6 = null; if (ipv4 != null && mask != null) { completeipv4 = ipv4 + "/" + IPUtilsHelper.parseLongToShortIpv4NetMask(mask); } if (ipv6 != null && prefix != null) { completeipv6 = ipv6 + "/" + prefix; } List<String> completeAddresses = new ArrayList<String>(2); if (completeipv4 != null) completeAddresses.add(completeipv4); if (completeipv6 != null) completeAddresses.add(completeipv6); return completeAddresses; } }