Java Code Examples for org.springframework.shell.table.TableModel#getRowCount()
The following examples show how to use
org.springframework.shell.table.TableModel#getRowCount() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: StreamCommandTemplate.java From spring-cloud-dataflow with Apache License 2.0 | 6 votes |
/** * Verify the stream is listed in stream list. * * @param streamName the name of the stream * @param definition definition of the stream */ public void verifyExists(String streamName, String definition, boolean deployed) { CommandResult cr = shell.executeCommand("stream list"); assertTrue("Failure. CommandResult = " + cr.toString(), cr.isSuccess()); Table table = (org.springframework.shell.table.Table) cr.getResult(); TableModel model = table.getModel(); Collection<String> statuses = deployed ? Arrays.asList(DeploymentStateResource.DEPLOYED.getDescription(), DeploymentStateResource.DEPLOYING.getDescription()) : Arrays.asList(DeploymentStateResource.UNDEPLOYED.getDescription()); for (int row = 0; row < model.getRowCount(); row++) { if (streamName.equals(model.getValue(row, 0)) && definition.replace("\\\\", "\\").equals(model.getValue(row, 2))) { // TODO (Tzolov) CLASSIC-MODE-REMOVAL To compute an aggregated state the Info returned by the mocked // TODO SkipperClient.info() (in SkipperStreamDeployer#getStreamDeploymentState) must have a // TODO valid PlatformStatus // && statuses.contains(model.getValue(row, 2))) { return; } } fail("Stream named " + streamName + " does not exist"); }
Example 2
Source File: TableMatcher.java From spring-cloud-dataflow with Apache License 2.0 | 5 votes |
public static DiagnosingMatcher<Table> hasRowThat(Matcher<?>... cells) { return new DiagnosingMatcher<Table>() { @Override protected boolean matches(Object item, Description mismatchDescription) { TableModel model = ((Table) item).getModel(); outer: for (int row = 0; row < model.getRowCount(); row++) { mismatchDescription.appendText("\nRow " + row + ": "); for (int col = 0; col < cells.length; col++) { mismatchDescription.appendText("\n Column " + col + ": "); cells[col].describeMismatch(model.getValue(row, col), mismatchDescription); if (!cells[col].matches(model.getValue(row, col))) { continue outer; } } return true; } return false; } @Override public void describeTo(Description description) { description.appendText("a table having at least one row that\n"); for (int col = 0; col < cells.length; col++) { description.appendText("column " + col + ": "); cells[col].describeTo(description); description.appendText("\n"); } } }; }
Example 3
Source File: TaskCommandTemplate.java From spring-cloud-dataflow with Apache License 2.0 | 5 votes |
/** * Verify the task is listed in task list. * * @param taskName the name of the task * @param definition definition of the task */ public void verifyExists(String taskName, String definition) { CommandResult cr = shell.executeCommand("task list"); assertTrue("Failure. CommandResult = " + cr.toString(), cr.isSuccess()); Table table = (Table) cr.getResult(); TableModel model = table.getModel(); for (int row = 0; row < model.getRowCount(); row++) { if (taskName.equals(model.getValue(row, 0)) && definition.replace("\\\\", "\\").equals(model.getValue(row, 1))) { return; } } fail("Task named " + taskName + " was not created"); }
Example 4
Source File: RuntimeCommands.java From spring-cloud-dashboard with Apache License 2.0 | 4 votes |
@CliCommand(value = LIST_APPS, help = "List runtime apps") public Table list( @CliOption(key = "summary", help = "whether to hide app instance details", unspecifiedDefaultValue = "false", specifiedDefaultValue = "true") boolean summary, @CliOption(key = {"appId", "appIds"}, help = "app id(s) to display, also supports '<group>.*' pattern") String[] appIds) { Set<String> filter = null; if (appIds != null) { filter = new HashSet<>(Arrays.asList(appIds)); } TableModelBuilder<Object> modelBuilder = new TableModelBuilder<>(); if (!summary) { modelBuilder.addRow() .addValue("App Id / Instance Id") .addValue("Unit Status") .addValue("No. of Instances / Attributes"); } else { modelBuilder.addRow() .addValue("App Id") .addValue("Unit Status") .addValue("No. of Instances"); } // In detailed mode, keep track of app vs instance lines, to use // a different border style later. List<Integer> splits = new ArrayList<>(); int line = 1; // Optimise for the single app case, which is likely less resource intensive on the server // than client side filtering Iterable<AppStatusResource> statuses; if (filter != null && filter.size() == 1 && !filter.iterator().next().endsWith(".*")) { statuses = Collections.singleton(runtimeOperations().status(filter.iterator().next())); } else { statuses = runtimeOperations().status(); } for (AppStatusResource appStatusResource : statuses) { if (filter != null && !shouldRetain(filter, appStatusResource)) { continue; } modelBuilder.addRow() .addValue(appStatusResource.getDeploymentId()) .addValue(appStatusResource.getState()) .addValue(appStatusResource.getInstances().getContent().size()); splits.add(line); line++; if (!summary) { for (AppInstanceStatusResource appInstanceStatusResource : appStatusResource.getInstances()) { modelBuilder.addRow() .addValue(appInstanceStatusResource.getInstanceId()) .addValue(appInstanceStatusResource.getState()) .addValue(appInstanceStatusResource.getAttributes()); line++; } } } TableModel model = modelBuilder.build(); final TableBuilder builder = new TableBuilder(model); DataFlowTables.applyStyle(builder); builder.on(column(0)).addAligner(middle) .on(column(1)).addAligner(middle) .on(column(1)).addAligner(center) // This will match the "number of instances" cells only .on(ofType(Integer.class)).addAligner(center); Tables.configureKeyValueRendering(builder, " = "); for (int i = 2; i < model.getRowCount(); i++) { if (splits.contains(i)) { builder.paintBorder(fancy_light, TOP).fromRowColumn(i, 0).toRowColumn(i + 1, model.getColumnCount()); } else { builder.paintBorder(fancy_light_quadruple_dash, TOP).fromRowColumn(i, 0).toRowColumn(i + 1, model.getColumnCount()); } } return builder.build(); }
Example 5
Source File: RuntimeCommands.java From spring-cloud-dataflow with Apache License 2.0 | 4 votes |
@CliCommand(value = LIST_APPS, help = "List runtime apps") public Table list( @CliOption(key = "summary", help = "whether to hide app instance details", unspecifiedDefaultValue = "false", specifiedDefaultValue = "true") boolean summary, @CliOption(key = { "appId", "appIds" }, help = "app id(s) to display, also supports '<group>.*' pattern") String[] appIds) { Set<String> filter = null; if (appIds != null) { filter = new HashSet<>(Arrays.asList(appIds)); } TableModelBuilder<Object> modelBuilder = new TableModelBuilder<>(); if (!summary) { modelBuilder.addRow().addValue("App Id / Instance Id").addValue("Unit Status") .addValue("No. of Instances / Attributes"); } else { modelBuilder.addRow().addValue("App Id").addValue("Unit Status").addValue("No. of Instances"); } // In detailed mode, keep track of app vs instance lines, to use // a different border style later. List<Integer> splits = new ArrayList<>(); int line = 1; // Optimise for the single app case, which is likely less resource intensive on // the server // than client side filtering Iterable<AppStatusResource> statuses; if (filter != null && filter.size() == 1 && !filter.iterator().next().endsWith(".*")) { statuses = Collections.singleton(runtimeOperations().status(filter.iterator().next())); } else { statuses = runtimeOperations().status(); } for (AppStatusResource appStatusResource : statuses) { if (filter != null && !shouldRetain(filter, appStatusResource)) { continue; } modelBuilder.addRow().addValue(appStatusResource.getDeploymentId()).addValue(appStatusResource.getState()) .addValue(appStatusResource.getInstances().getContent().size()); splits.add(line); line++; if (!summary) { for (AppInstanceStatusResource appInstanceStatusResource : appStatusResource.getInstances()) { modelBuilder.addRow().addValue(appInstanceStatusResource.getInstanceId()) .addValue(appInstanceStatusResource.getState()) .addValue(appInstanceStatusResource.getAttributes()); line++; } } } TableModel model = modelBuilder.build(); final TableBuilder builder = new TableBuilder(model); DataFlowTables.applyStyle(builder); builder.on(CellMatchers.column(0)).addAligner(SimpleVerticalAligner.middle).on(CellMatchers.column(1)).addAligner(SimpleVerticalAligner.middle).on(CellMatchers.column(1)).addAligner(SimpleHorizontalAligner.center) // This will match the "number of instances" cells only .on(CellMatchers.ofType(Integer.class)).addAligner(SimpleHorizontalAligner.center); Tables.configureKeyValueRendering(builder, " = "); for (int i = 2; i < model.getRowCount(); i++) { if (splits.contains(i)) { builder.paintBorder(BorderStyle.fancy_light, BorderSpecification.TOP).fromRowColumn(i, 0).toRowColumn(i + 1, model.getColumnCount()); } else { builder.paintBorder(BorderStyle.fancy_light_quadruple_dash, BorderSpecification.TOP).fromRowColumn(i, 0).toRowColumn(i + 1, model.getColumnCount()); } } return builder.build(); }