/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.components.jsprit.tabledefinitions; import static com.opendoorlogistics.api.components.PredefinedTags.*; import com.opendoorlogistics.api.tables.ODLDatastoreAlterable; import com.opendoorlogistics.api.tables.ODLTableDefinitionAlterable; import com.opendoorlogistics.api.tables.TableFlags; import com.opendoorlogistics.components.jsprit.VRPConfig; import com.opendoorlogistics.components.jsprit.VRPBuilder.TravelCostType; public class SolutionDetailsTableDfn extends TableDfn{ public final int unassignedStops; public final int routesCount; public final int []capacityViolation; public final int deliveriesCount; public final int []deliveredQuantities; public final int [] pickedUpQuantities; public final int pickupsCount; public final int assignedStopsCount; public final int time; public final int timeWindowViolation; public final int [] travelCosts = new int[TravelCostType.values().length]; public final int waitingTime; public final int hasViolation; public SolutionDetailsTableDfn(ODLDatastoreAlterable<? extends ODLTableDefinitionAlterable> ds, VRPConfig config) { super(ds, "Solution-Details"); routesCount = addStrColumn("used-routes"); unassignedStops = addStrColumn("unassigned-stops"); assignedStopsCount = addLngColumn("assigned-stops"); capacityViolation = addQuantities("capacity-violation", config); hasViolation = addLngColumn("has-violation"); deliveriesCount = addLngColumn("deliveries"); deliveredQuantities = addQuantities("delivered-quantity", config); pickedUpQuantities = addQuantities("picked-up-quantity", config); pickupsCount = addLngColumn("pickups"); time = addTimeColumn(TIME); timeWindowViolation = addTimeColumn(TIME_WINDOW_VIOLATION); travelCosts[TravelCostType.COST.ordinal()] = addDblColumn(TRAVEL_COST); travelCosts[TravelCostType.DISTANCE_KM.ordinal()] = addDblColumn(TRAVEL_KM); travelCosts[TravelCostType.TIME.ordinal()] = addTimeColumn(TRAVEL_TIME); waitingTime = addTimeColumn(WAITING_TIME); } }