/** * Sets or replaces all elements for {@link Project#getVariables() variables} list. * @param elements An iterable of variables elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("variables") @JsonIgnore public final Project.Builder variables(Iterable<? extends Variable> elements) { this.variables = ImmutableList.builder(); return addAllVariables(elements); }
/** * Sets or replaces all elements for {@link Project#getPopulations() populations} list. * @param elements An iterable of populations elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("populations") @JsonIgnore public final Project.Builder populations(Iterable<? extends Population> elements) { this.populations = ImmutableList.builder(); return addAllPopulations(elements); }
/** * Sets or replaces all elements for {@link Project#getScenarios() scenarios} list. * @param elements An iterable of scenarios elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("scenarios") public final Project.Builder scenarios(Iterable<? extends Scenario> elements) { this.scenarios = ImmutableList.builder(); return addAllScenarios(elements); }
container.setShared(true); container.setName(uniqueName); projectBuilder.addSharedElements(container);
@Override public synchronized Project read() { try { final ImmutableProject.Builder projectBuilder = Project.builder().name(this.projectName); final List<File> projectFolders = getProjectFolders(); final int totalScriptNumber = projectFolders.size(); eventListener.startReadingScripts(totalScriptNumber); if (projectFolders.isEmpty()) { throw new IllegalStateException("No Load Runner project found."); } for (final File projectFolder : projectFolders) { readScript(projectBuilder, projectFolder); } projectBuilder.servers(currentProjectServers.values()); return projectBuilder.build(); } finally { eventListener.endReadingScripts(); } }
private void readScript(final ImmutableProject.Builder projectBuilder, final File projectFolder) { try { currentScriptFolder = projectFolder; eventListener.startScript(currentScriptFolder.getName()); final ProjectFileReader projectFileReader = new ProjectFileReader(this, eventListener, projectFolder); final Map<String, String> actionsMap = projectFileReader.getAllActionsMap(); if (actionsMap.isEmpty()) { LOGGER.error("No action in the map. Ignore the script."); return; } final ParameterFileReader parameterFileReader = new ParameterFileReader(this, projectFileReader, projectFolder); final ImmutableUserPath.Builder userPathBuilder = ImmutableUserPath.builder(); final boolean hasAction = manageActions(projectFolder, projectFileReader, actionsMap, projectBuilder, userPathBuilder); final UserPath userPath = userPathBuilder.name(projectFileReader.getVirtualUserName()).build(); if (!hasAction) { LOGGER.error("No Init / Actions / End. Ignore the script."); return; } projectBuilder.addAllVariables(parameterFileReader.getAllVariables()).addUserPaths(userPath); } finally { eventListener.endScript(); } }
/** * Fill a builder with attribute values from the provided {@code Project} instance. * Regular attribute values will be replaced with those from the given instance. * Absent optional values will not replace present values. * Collection elements and entries will be added, not replaced. * @param instance The instance from which to copy values * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue public final Project.Builder from(Project instance) { Objects.requireNonNull(instance, "instance"); name(instance.getName()); addAllSharedElements(instance.getSharedElements()); addAllUserPaths(instance.getUserPaths()); addAllServers(instance.getServers()); addAllVariables(instance.getVariables()); addAllPopulations(instance.getPopulations()); addAllScenarios(instance.getScenarios()); putAllProjectSettings(instance.getProjectSettings()); return (Project.Builder) this; }
/** * Sets or replaces all elements for {@link Project#getServers() servers} list. * @param elements An iterable of servers elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("servers") @JsonIgnore public final Project.Builder servers(Iterable<? extends Server> elements) { this.servers = ImmutableList.builder(); return addAllServers(elements); }
/** * Sets or replaces all elements for {@link Project#getSharedElements() sharedElements} list. * @param elements An iterable of sharedElements elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("sharedElements") @JsonIgnore public final Project.Builder sharedElements(Iterable<? extends Container> elements) { this.sharedElements = ImmutableList.builder(); return addAllSharedElements(elements); }
/** * Sets or replaces all mappings from the specified map as entries for the {@link Project#getProjectSettings() projectSettings} map. Nulls are not permitted * @param projectSettings The entries that will be added to the projectSettings map * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("projectSettings") @JsonIgnore public final Project.Builder projectSettings(Map<String, ? extends String> projectSettings) { this.projectSettings = ImmutableMap.builder(); return putAllProjectSettings(projectSettings); }
/** * Sets or replaces all elements for {@link Project#getUserPaths() userPaths} list. * @param elements An iterable of userPaths elements * @return {@code this} builder for use in a chained invocation */ @CanIgnoreReturnValue @JsonProperty("userPaths") @JsonIgnore public final Project.Builder userPaths(Iterable<? extends UserPath> elements) { this.userPaths = ImmutableList.builder(); return addAllUserPaths(elements); }