private VCPENetworkModel getLogicalInfrastructureSuggestionFromCompletePhysical( VCPENetworkModel physicalInfrastructure) { VCPENetworkModel generatedLogical = MPTemplateModelBuilder.generateLogicalElements(); VCPENetworkModel suggestedLogical = suggestor.getSuggestionForLogicalModel(physicalInfrastructure, generatedLogical); VCPENetworkModel completeSuggestion = MPTemplateModelBuilder.mapLogicalAndPhysical(physicalInfrastructure, suggestedLogical); return completeSuggestion; }
/** * FIXME TO BE REMOVED, part of WORKAROUND * * @param initialModel model with user preferences. Without physicalInfrastructure elements * @return given initialModel merged with suggested physical one. */ private VCPENetworkModel buildModelWithPhyInfrastructureWorkaround( VCPENetworkModel initialModelLogical) { // Merge initialModelLogical with suggested physical VCPENetworkModel phy = MPTemplateModelBuilder.generatePhysicalElements(); phy = suggestor.getSuggestionForPhysicalModel(phy); VCPENetworkModel logical = MPTemplateModelBuilder.generateLogicalElements(); logical = partialCopy(initialModelLogical, logical); VCPENetworkModel logicalWithSuggestedPhysical = MPTemplateModelBuilder.mapLogicalAndPhysical(phy, logical); return logicalWithSuggestedPhysical; }
@Override public VCPENetworkModel getPhysicalInfrastructureSuggestion() throws VCPENetworkManagerException { VCPENetworkModel generated = MPTemplateModelBuilder.generatePhysicalElements(); VCPENetworkModel suggestion = suggestor.getSuggestionForPhysicalModel(generated); return suggestion; }
/** * @param initialModel model with user preferences. It MAY not contain all elements, but MUST * contain every configurable element (including physical infrastructure) * @return complete model with all required values. */ @Override public VCPENetworkModel buildModel(VCPENetworkModel initialModel) { // WORKAROUND starts here // When given initialModel does not contain physical elements, this workaround must be executed if (APPLY_WORKAROUND) { initialModel = buildModelWithPhyInfrastructureWorkaround(initialModel); } // WORKAROUND ends here VCPENetworkModel model = MPTemplateModelBuilder.generateModel(); model = partialCopy(initialModel, model); model = hierarchicalLRnames(model); model = configureRouting(model); return model; }