You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VaadinClasses.java 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.vaadin.v7.tests;
  2. import java.io.File;
  3. import java.lang.reflect.Modifier;
  4. import java.net.URISyntaxException;
  5. import java.util.HashSet;
  6. import java.util.List;
  7. import java.util.Set;
  8. import java.util.function.Predicate;
  9. import java.util.stream.Collectors;
  10. import java.util.stream.Stream;
  11. import com.vaadin.tests.server.ClasspathHelper;
  12. import com.vaadin.ui.Component;
  13. import com.vaadin.v7.ui.Field;
  14. @SuppressWarnings("deprecation")
  15. public class VaadinClasses {
  16. private static final Set<String> WHITE_LIST_FQNS = new HashSet<>();
  17. public static List<Class<? extends Field>> getFields() {
  18. return getServerClasses(Field.class::isAssignableFrom)
  19. .map(VaadinClasses::castFieldClass)
  20. .collect(Collectors.toList());
  21. }
  22. public static Stream<Class<?>> getServerClasses(
  23. Predicate<? super Class<?>> predicate) {
  24. try {
  25. File testRoot = new File(com.vaadin.tests.VaadinClasses.class
  26. .getResource("/").toURI());
  27. File compatibilityTestRoot = new File(
  28. VaadinClasses.class.getResource("/").toURI());
  29. ClasspathHelper helper = new ClasspathHelper(
  30. fqn -> !fqn.startsWith("com.vaadin.v7.ui"));
  31. return helper.getVaadinClassesFromClasspath(
  32. entry -> !compatibilityTestRoot.equals(new File(entry))
  33. && !testRoot.equals(new File(entry)),
  34. cls -> predicate.test(cls) && !cls.isInterface()
  35. && !Modifier.isAbstract(cls.getModifiers()));
  36. } catch (URISyntaxException e) {
  37. throw new RuntimeException(e);
  38. }
  39. }
  40. public static List<Class<? extends Component>> getComponents() {
  41. return getServerClasses(Component.class::isAssignableFrom)
  42. .map(VaadinClasses::castComponentClass)
  43. .collect(Collectors.toList());
  44. }
  45. private static Class<? extends Field> castFieldClass(Class<?> clazz) {
  46. return (Class<? extends Field>) clazz;
  47. }
  48. private static Class<? extends Component> castComponentClass(
  49. Class<?> clazz) {
  50. return (Class<? extends Component>) clazz;
  51. }
  52. protected static Set<String> getWhiteListFqns() {
  53. return WHITE_LIST_FQNS;
  54. }
  55. }