ThreeState (UserDefinedJsonSchemaConfiguration.Item left, UserDefinedJsonSchemaConfiguration.Item right) { String leftPath = left.getPath(); String rightPath = right.getPath(); if (JsonFileResolver.isTempOrMockUrl(leftPath) || JsonFileResolver.isTempOrMockUrl(rightPath)) { return leftPath.equals(rightPath) ? ThreeState.YES : ThreeState.NO; } final File leftFile = new File(myProject.getBasePath(), leftPath); final File rightFile = new File(myProject.getBasePath(), rightPath); if (left.isDirectory()) { if (FileUtil.isAncestor(leftFile, rightFile, true)) return ThreeState.YES; } if (right.isDirectory()) { if (FileUtil.isAncestor(rightFile, leftFile, true)) return ThreeState.YES; } return FileUtil.filesEqual(leftFile, rightFile) && left.isDirectory() == right.isDirectory() ? ThreeState.YES : ThreeState.NO; }