package ex;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class OPM_Sample extends OPMSuper implements Comparator<String> {
public void testNormalMethodCouldBePrivate() {
someNormalMethod();
}
@Override
public int compare(String s1, String s2) {
return s2.compareTo(s1);
}
public int testFPGenericDerivation() {
return compare("Hello", "World");
}
public void someNormalMethod() {
List<String> l = getFoo(new ArrayList<String>());
}
@Override
public List<String> getFoo(List<String> l) {
return l;
}
public void fpUncalledDontReport() {
fpHasRTAnnotation();
}
@RT
public void fpHasRTAnnotation() {
}
public void setFPFoo(int x) {
}
public int getFPFoo() {
return 0;
}
public void doIt() {
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(Writer::fpFlush, 1L, 1L, TimeUnit.SECONDS);
}
}
abstract class OPMSuper {
public abstract List<String> getFoo(List<String> l);
}
@Retention(RetentionPolicy.RUNTIME)
@interface RT {
}
enum FPEnumValueOf {
What, Where;
public static void fpWithValueOf() {
FPEnumValueOf f = FPEnumValueOf.valueOf(String.valueOf("What"));
}
}
class Writer {
public static void fpFlush() {
}
public void close() {
fpFlush();
}
}