package com.intellij.flex.uiDesigner; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class ProblemDescriptor { private final String message; private final int lineNumber; private final VirtualFile file; public ProblemDescriptor(@NotNull String message, @Nullable VirtualFile file, int line) { this.message = message; this.file = file; this.lineNumber = line; } @Nullable public VirtualFile getFile() { return file; } @NotNull public String getMessage() { return message; } public int getLineNumber() { return lineNumber; } public boolean hasLineNumber() { return lineNumber != -1; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj instanceof ProblemDescriptor) { ProblemDescriptor a = (ProblemDescriptor)obj; return a.getMessage().equals(getMessage()) && a.getLineNumber() == getLineNumber() && Comparing.equal(a.getFile(), getFile()); } return false; } @Override public int hashCode() { int hashCode = message.hashCode(); if (hasLineNumber()) { hashCode += lineNumber; } if (file != null) { hashCode += file.hashCode(); } return hashCode; } }