IDEA-163627 Simplify optional.isPresent() inspection could better handle some specific cases

IDEA-163462 Simplify Optional.isPresent() ? Optional.get() : ...
This commit is contained in:
Tagir Valeev
2016-11-07 17:20:46 +07:00
parent 0000a95ba2
commit 21564bba7b
49 changed files with 628 additions and 236 deletions

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElseGet()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static String test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return (String) first.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -0,0 +1,12 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Optional;
public class Main {
public Optional<String> get() {
Optional<String> port = Optional.ofNullable(System.getProperty("abc");
Optional<String> result;
result = port.map(String::trim);
return result;
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static String test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return (String) first.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,20 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
public static Optional<String> trimmed(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
private static Optional<String> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return first.flatMap(o -> trimmed((String) o));
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static Optional<String> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return first.map(o -> (String) o);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static Optional<Object> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return first;
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElseGet()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "false"
// "Replace Optional.isPresent() condition with functional style expression" "false"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with ifPresent()" "false"
// "Replace Optional.isPresent() condition with functional style expression" "false"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -0,0 +1,19 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static String test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
if(first.isPre<caret>sent()) {
return (String)first.get();
}
return null;
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "false"
// "Replace Optional.isPresent() condition with functional style expression" "false"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "false"
// "Replace Optional.isPresent() condition with functional style expression" "false"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with map().orElse()" "false"
// "Replace Optional.isPresent() condition with functional style expression" "false"
import java.util.*;

View File

@@ -1,4 +1,4 @@
// "Replace Optional.isPresent() condition with orElse()" "true"
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.*;

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Optional;
public class Main {
public Optional<String> get() {
Optional<String> port = Optional.ofNullable(System.getProperty("abc");
Optional<String> result;
if(po<caret>rt.isPresent()) {
result = Optional.of(port.get().trim());
} else {
result = port;
}
return result;
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static String test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return fi<caret>rst.isPresent() ? (String) first.get() : null;
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,20 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
public static Optional<String> trimmed(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
private static Optional<String> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return first.is<caret>Present() ? trimmed((String) first.get()) : Optional.empty();
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static Optional<String> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return !fi<caret>rst.isPresent() ? Optional.empty() : Optional.of((String) first.get());
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,16 @@
// "Replace Optional.isPresent() condition with functional style expression" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class Main {
private static Optional<Object> test(List<Object> list) {
Optional<Object> first = list.stream().filter(obj -> obj instanceof String).findFirst();
return fir<caret>st.isPresent() ? Optional.of(first.get()) : Optional.empty();
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,17 @@
// "Replace with findFirst()" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class Main {
private static String test(List<String> list) {
Optional<String> found = list.stream().filter(Objects::nonNull).findFirst();
return found.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,15 @@
// "Replace with findFirst()" "true"
import java.util.List;
import java.util.Optional;
public class Main {
public Optional<String> trim(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
public Optional<String> test(List<Object> objects) {
Optional<String> result = objects.stream().filter(obj -> obj instanceof String).findFirst().flatMap(obj -> trim((String) obj));
return result;
}
}

View File

@@ -0,0 +1,23 @@
// "Replace with findFirst()" "true"
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class Main {
private static String test(List<String> list) {
Optional<String> found = Optional.empty();
for (String s : li<caret>st) {
if (Objects.nonNull(s)) {
found = Optional.of(s);
break;
}
}
return found.orElse(null);
}
public static void main(String[] args) {
System.out.println(test(Arrays.asList(null, null, "aa", "bbb", "c", null, "dd")));
}
}

View File

@@ -0,0 +1,21 @@
// "Replace with findFirst()" "true"
import java.util.List;
import java.util.Optional;
public class Main {
public Optional<String> trim(String s) {
return s.isEmpty() ? Optional.empty() : Optional.of(s.trim());
}
public Optional<String> test(List<Object> objects) {
Optional<String> result = Optional.empty();
for(Object obj : obj<caret>ects) {
if(obj instanceof String) {
result = trim((String)obj);
break;
}
}
return result;
}
}