/** * This page exists so that the existence of pages with {@link LoginPage} and * {@link SecurityError} roles can be enforced at compile-time. Currently the * {@link NavigationGraphGenerator} only scans {@link Page} annotated classes for transitions. For * performance reasons, this is preferable to scanning the whole classpath. */ @Page public static class SecurityRolesConstraintPage implements IsElement { @SuppressWarnings("unused") @Inject private TransitionToRole<LoginPage> loginTransition; @SuppressWarnings("unused") @Inject private TransitionToRole<SecurityError> securityErrorTransition; @Inject private Div element; @Override public HTMLElement getElement() { return element; } }
private String getPageURL(MetaClass pageClass, String pageName) { Page pageAnnotation = pageClass.getAnnotation(Page.class); String path = pageAnnotation.path(); if (path.equals("")) { return pageName; } return path; }
private void scanForUniquePageRoles(final GeneratorContext generatorContext) { final Collection<MetaClass> pages = ClassScanner.getTypesAnnotatedWith(Page.class, generatorContext); pages .stream() .filter(type -> type.getAnnotation(Page.class).role().length > 0) .forEach(type -> { final Page anno = type.getAnnotation(Page.class); Arrays .stream(anno.role()) .filter(role -> UniquePageRole.class.isAssignableFrom(role)) .map(role -> role.<UniquePageRole>asSubclass(UniquePageRole.class)) .forEach(role -> pagesByRole.put(role, type)); }); }
List<Class<? extends PageRole>> annotatedPageRoles = Arrays.asList(annotation.role()); if (annotatedPageRoles.contains(DefaultPage.class)) { URLPattern pattern = URLPatternMatcher.generatePattern(annotation.path()); if (pattern.getParamList().size() > 0) { throw new GenerationException("Default Page must not contain any path parameters.");
List<Class<? extends PageRole>> annotatedPageRoles = Arrays.asList(annotation.role()); if (annotatedPageRoles.contains(DefaultPage.class)) { URLPattern pattern = URLPatternMatcher.generatePattern(annotation.path()); if (pattern.getParamList().size() > 0) { throw new GenerationException("Default Page must not contain any path parameters.");
private void scanForUniquePageRoles(final GeneratorContext generatorContext) { final Collection<MetaClass> pages = ClassScanner.getTypesAnnotatedWith(Page.class, generatorContext); pages .stream() .filter(type -> type.getAnnotation(Page.class).role().length > 0) .forEach(type -> { final Page anno = type.getAnnotation(Page.class); Arrays .stream(anno.role()) .filter(role -> UniquePageRole.class.isAssignableFrom(role)) .map(role -> role.<UniquePageRole>asSubclass(UniquePageRole.class)) .forEach(role -> pagesByRole.put(role, type)); }); }
private String getPageURL(MetaClass pageClass, String pageName) { Page pageAnnotation = pageClass.getAnnotation(Page.class); String path = pageAnnotation.path(); if (path.equals("")) { return pageName; } return path; }
/** * This page exists so that the existence of pages with {@link LoginPage} and * {@link SecurityError} roles can be enforced at compile-time. Currently the * {@link NavigationGraphGenerator} only scans {@link Page} annotated classes for transitions. For * performance reasons, this is preferable to scanning the whole classpath. */ @Page public static class SecurityRolesConstraintPage implements IsElement { @SuppressWarnings("unused") @Inject private TransitionToRole<LoginPage> loginTransition; @SuppressWarnings("unused") @Inject private TransitionToRole<SecurityError> securityErrorTransition; @Inject private Div element; @Override public HTMLElement getElement() { return element; } }
List<Class<? extends PageRole>> roles = Arrays.asList(pageAnnotation.role()); if (roles.contains(DefaultPage.class)) { out.print(" [penwidth=3]");
List<Class<? extends PageRole>> roles = Arrays.asList(pageAnnotation.role()); if (roles.contains(DefaultPage.class)) { out.print(" [penwidth=3]");