@Override public int hashCode() { int code = getMessage().hashCode() + (isError() ? 100 : 101); if (getSource() != null) { code += getSource().hashCode(); } return code; }
private void checkPort(@NotNull ConfigPart part, @Nullable String rawPort, @Nullable P4ServerName serverName) { if (rawPort != null && serverName == null) { problems.add(new ConfigProblem(part, P4Bundle.message("configuration.port.invalid", rawPort), true)); } }
@Override public String toString() { return "problem(" + getSource() + ": " + getMessage() + ")"; }
@Override public Component getListCellRendererComponent(JList<? extends ConfigProblem> list, ConfigProblem problem, int index, boolean isSelected, boolean cellHasFocus) { // TODO allow selection, and show selection differently. cell.setForeground(problem.isError() ? JBColor.RED : UIUtil.getTextAreaForeground()); cell.setBackground(UIUtil.getListBackground(isSelected)); cell.setText(problem.getMessage()); return cell; } }
@Test void getters_1() { MockConfigPart part = new MockConfigPart(); ConfigProblem cp = new ConfigProblem(part, "Foo bar", true); assertEquals("Foo bar", cp.getMessage()); assertEquals(part, cp.getSource()); assertTrue(cp.isError()); assertEquals( "problem(" + part + ": Foo bar)", cp.toString()); }
@Override public boolean hasError() { for (ConfigProblem configProblem : getConfigProblems()) { if (configProblem.isError()) { return true; } } return false; }
@Test void compareTo_err2() { MockConfigPart part = new MockConfigPart(); ConfigProblem cpF1 = new ConfigProblem(part, "Abc", false); ConfigProblem cpF2 = new ConfigProblem(part, "Def", false); ConfigProblem cpT1 = new ConfigProblem(part, "Abc", true); ConfigProblem cpT2 = new ConfigProblem(part, "Def", true); assertThat(cpF1.compareTo(cpF2), lessThan(0)); assertThat(cpF2.compareTo(cpF1), greaterThan(0)); assertThat(cpT1.compareTo(cpT2), lessThan(0)); assertThat(cpT2.compareTo(cpT1), greaterThan(0)); } }
@Nls(capitalization = Nls.Capitalization.Sentence) private String toMessage(Collection<ConfigProblem> problems) { StringBuilder sb = new StringBuilder(); boolean first = true; for (ConfigProblem problem : problems) { if (first) { first = false; } else { sb.append(P4Bundle.getString("config.message.separator")); } sb.append(problem.getMessage()); } return sb.toString(); }
@Test void getters_2() { MockConfigPart part = new MockConfigPart(); ConfigProblem cp = new ConfigProblem(part, "Too bad", false); assertFalse(cp.isError()); assertEquals("Too bad", cp.getMessage()); assertEquals(part, cp.getSource()); assertEquals( "problem(" + part + ": Too bad)", cp.toString()); part.withUsername("u"); assertEquals(part, cp.getSource()); assertEquals( "problem(" + part + ": Too bad)", cp.toString()); }
Set<String> problemText = new HashSet<>(); for (ConfigProblem configProblem : PartValidation.findAllProblems(part)) { if (!problemText.contains(configProblem.getMessage())) { problemText.add(configProblem.getMessage()); problemListModel.addElement(configProblem); if (configProblem.isError()) { errorCount++; } else {
@Override public boolean hasError() { for (ConfigProblem configProblem : getConfigProblems()) { if (configProblem.isError()) { return true; } } return false; }
@Test void compareTo_err1() { MockConfigPart part = new MockConfigPart(); ConfigProblem cpF1 = new ConfigProblem(part, "Abc", false); ConfigProblem cpT1 = new ConfigProblem(part, "Abc", true); ConfigProblem cpF2 = new ConfigProblem(part, "Abc", false); ConfigProblem cpT2 = new ConfigProblem(part, "Abc", true); assertEquals( 1, cpF1.compareTo(cpT1) ); assertEquals( -1, cpT1.compareTo(cpF1) ); assertEquals( 0, cpT1.compareTo(cpT2) ); assertEquals( 0, cpT2.compareTo(cpT1) ); assertEquals( 0, cpF2.compareTo(cpF1) ); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof ConfigProblem)) { return false; } ConfigProblem that = (ConfigProblem) o; return isError() == that.isError() && // Not perfect: the source can change, which changes the // equality. But this will do. As long as the source object // has correct equality / hashCode semantics, and it isn't used // as the key for a hash table when the source changes, this // will work. EqualUtil.isEqual(getSource(), that.getSource()) && getMessage().equals(that.getMessage()); }
@Override public boolean hasError() { for (ConfigProblem configProblem : getConfigProblems()) { if (configProblem.isError()) { return true; } } return false; }
private void checkLoginSsoFile(@NotNull ConfigPart part, @Nullable String file) { if (file != null && file.isEmpty()) { problems.add(new ConfigProblem(part, P4Bundle.message("configuration.problem.loginsso.exist", file), false)); } }
public int compareTo(@Nonnull ConfigProblem that) { if (that.isError() && !isError()) { return 1; if (isError() && !that.isError()) { return -1; if (getSource() == null) { if (that.getSource() != null) { return -1; } else if (that.getSource() == null) { return 1; } else { int cmp = getSource().getSourceName().compareTo(that.getSource().getSourceName()); if (cmp != 0) { return cmp; return getMessage().compareTo(that.getMessage());
@Override public boolean hasError() { for (ConfigProblem configProblem : getConfigProblems()) { if (configProblem.isError()) { return true; } } return false; }
private void checkAuthTicketFile(@NotNull ConfigPart part, @Nullable File file) { // If it points to a directory, then we ignore this. if (file != null && ! file.exists()) { problems.add(new ConfigProblem(part, P4Bundle.message("configuration.problem.authticket.exist", file), false)); } }
@Override public boolean hasError() { for (ConfigProblem configProblem : getConfigProblems()) { if (configProblem.isError()) { return true; } } return false; }
private void checkTrustTicketFile(@NotNull ConfigPart part, @Nullable File file) { // If it points to a directory, then we ignore this. if (file != null && ! file.exists()) { problems.add(new ConfigProblem(part, P4Bundle.message("configuration.problem.trustticket.exist", file), false)); } }