@Override public boolean equals(Object obj) { if (obj instanceof IApiProblem) { IApiProblem problem = (IApiProblem) obj; if (problem.getId() == fId && argumentsEqual(problem.getMessageArguments())) { String resourcePath = problem.getResourcePath(); if (resourcePath == null) { if (this.fResourcePath != null) { return false; } } else if (this.fResourcePath == null) { return false; } else if (!new Path(resourcePath).equals(new Path(fResourcePath))) { return false; } String typeName = problem.getTypeName(); if (typeName == null) { if (this.fTypeName != null) { return false; } return true; } else if (this.fTypeName == null) { return false; } return typeName.equals(this.fTypeName); } return false; } return super.equals(obj); }