@Test public void should_build() { TaskDefinition def = TaskDefinition.builder().key("foo").taskClass(FooTask.class).description("Foo").build(); assertThat(def.key()).isEqualTo("foo"); assertThat(def.description()).isEqualTo("Foo"); assertThat(def.taskClass()).isEqualTo(FooTask.class); assertThat(def.toString()).isEqualTo("Task foo[class=org.sonar.api.task.TaskDefinitionTest$FooTask, desc=Foo]"); }
public Tasks(TaskDefinition[] definitions) { SortedMap<String, TaskDefinition> map = Maps.newTreeMap(); for (TaskDefinition definition : definitions) { if (map.containsKey(definition.key())) { throw new IllegalStateException("Task '" + definition.key() + "' is declared twice"); } map.put(definition.key(), definition); } this.byKey = ImmutableSortedMap.copyOf(map); }
public Tasks(TaskDefinition[] definitions) { SortedMap<String, TaskDefinition> map = Maps.newTreeMap(); for (TaskDefinition definition : definitions) { if (map.containsKey(definition.key())) { throw new SonarException("Task '" + definition.key() + "' is declared twice"); } map.put(definition.key(), definition); } this.byKey = ImmutableSortedMap.copyOf(map); }
private void checkDuplicatedClasses() { Map<Class<? extends Task>, TaskDefinition> byClass = Maps.newHashMap(); for (TaskDefinition def : definitions()) { TaskDefinition other = byClass.get(def.taskClass()); if (other == null) { byClass.put(def.taskClass(), def); } else { throw new IllegalStateException("Task '" + def.taskClass().getName() + "' is defined twice: first by '" + other.key() + "' and then by '" + def.key() + "'"); } } } }
@Override public void execute() { StringBuilder sb = new StringBuilder(); sb.append("\nAvailable tasks:\n"); for (TaskDefinition def : tasks.definitions()) { sb.append(" - " + def.key() + ": " + def.description() + "\n"); } sb.append("\n"); LOG.info(sb.toString()); }
private void checkDuplicatedClasses() { Map<Class<? extends Task>, TaskDefinition> byClass = Maps.newHashMap(); for (TaskDefinition def : definitions()) { TaskDefinition other = byClass.get(def.taskClass()); if (other == null) { byClass.put(def.taskClass(), def); } else { throw new SonarException("Task '" + def.taskClass().getName() + "' is defined twice: first by '" + other.key() + "' and then by '" + def.key() + "'"); } } } }
@Override public void execute() { logBlankLine(); log("Available tasks:"); logBlankLine(); for (TaskDefinition def : tasks.definitions()) { log(" - " + def.key() + ": " + def.description()); } logBlankLine(); }