package org.opennaas.extensions.vnmapper;
/*
* #%L
* OpenNaaS :: VNMapper Resource
* %%
* 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;
public class MappingResult {
private ArrayList<Integer> nodes;
private ArrayList<Integer> vnodes;
private ArrayList<ArrayList<Integer>> links;
private ArrayList<ArrayList<VNTLinkMappingCell>> VNTLinkMappingArray;
private int providerID;
private int cost;
private VNState mappingState;
private VNState matchingState;
public MappingResult() {
nodes = new ArrayList<Integer>();
vnodes = new ArrayList<Integer>();
links = new ArrayList<ArrayList<Integer>>();
VNTLinkMappingArray = new ArrayList<ArrayList<VNTLinkMappingCell>>();
mappingState = VNState.SKIPPED;
matchingState = VNState.SKIPPED;
}
public VNState getMappingState() {
return mappingState;
}
public void setMappingState(VNState mappingState) {
this.mappingState = mappingState;
}
public VNState getMatchingState() {
return matchingState;
}
public void setMatchingState(VNState matchingState) {
this.matchingState = matchingState;
}
public ArrayList<Integer> getNodes() {
return nodes;
}
public void setNodes(ArrayList<Integer> nodes) {
this.nodes = nodes;
}
public ArrayList<Integer> getVnodes() {
return vnodes;
}
public void setVnodes(ArrayList<Integer> vnodes) {
this.vnodes = vnodes;
}
public ArrayList<ArrayList<Integer>> getLinks() {
return links;
}
public void setLinks(ArrayList<ArrayList<Integer>> links) {
this.links = links;
}
public ArrayList<ArrayList<VNTLinkMappingCell>> getVNTLinkMappingArray() {
return VNTLinkMappingArray;
}
public void setVNTLinkMappingArray(ArrayList<ArrayList<VNTLinkMappingCell>> vNTLinkMappingArray) {
VNTLinkMappingArray = vNTLinkMappingArray;
}
public int getProviderID() {
return providerID;
}
public void setProviderID(int providerID) {
this.providerID = providerID;
}
public int getCost() {
return cost;
}
public void setCost(int cost) {
this.cost = cost;
}
@Override
public String toString() {
String mappingString = "";
mappingString += "Mapping Result: \n";
mappingString += "vnodes: \n";
for (int i = 0; i < vnodes.size(); i++)
{
mappingString += i + "--" + Integer.valueOf(vnodes.get(i).toString()) + "\n";
}
mappingString += "vlinks: \n";
for (int i = 0; i < (int) VNTLinkMappingArray.size(); i++) {
for (int j = 0; j < (int) VNTLinkMappingArray.get(i).size(); j++)
{
if (VNTLinkMappingArray.get(i).get(j).getIsMapped() == 1)
{
if (i < j) {
mappingString += i + "--" + j + ":";
VNTLinkMappingArray.get(i).get(j).getResultPath().setNode1Id(Integer.valueOf(vnodes.get(i).toString()));
VNTLinkMappingArray.get(i).get(j).getResultPath().setNode2Id(Integer.valueOf(vnodes.get(j).toString()));
mappingString += VNTLinkMappingArray.get(i).get(j).getResultPath().toString();
mappingString += "\n";
}
else
{
mappingString += j + "--" + i + ":";
VNTLinkMappingArray.get(j).get(i).getResultPath().setNode1Id(Integer.valueOf(vnodes.get(j).toString()));
VNTLinkMappingArray.get(j).get(i).getResultPath().setNode2Id(Integer.valueOf(vnodes.get(i).toString()));
mappingString += VNTLinkMappingArray.get(j).get(i).getResultPath().toString();
mappingString += "\n";
}
}
}
}
return mappingString;
}
}