public void transform( PlasticClass plasticClass, TransformationSupport support, MutableComponentModel model) { final ImportJQueryUI annotation = plasticClass.getAnnotation(ImportJQueryUI.class); PlasticMethod setupRender = plasticClass.introduceMethod(TransformConstants.SETUP_RENDER_DESCRIPTION); if (annotation != null) { if (annotation.value().length > 0) { final Flow<Asset> assetFlow = F.flow(annotation.value()).map(expandSimpleName).map(pathToAsset); setupRender.addAdvice( new MethodAdvice() { public void advise(MethodInvocation invocation) { assetFlow.each(importLibrary); invocation.proceed(); } }); } } if (model.isPage()) { setupRender.addAdvice( new MethodAdvice() { public void advise(MethodInvocation invocation) { String path = (annotation != null && InternalUtils.isNonBlank(annotation.theme())) ? annotation.theme() : themePath; javaScriptSupport.importStylesheet(assetSource.getExpandedAsset(path)); invocation.proceed(); } }); } model.addRenderPhase(SetupRender.class); }
@Override public void transform( PlasticClass plasticClass, TransformationSupport support, MutableComponentModel model) { for (final PlasticMethod method : plasticClass.getMethodsWithAnnotation(CommitAfter.class)) { PersistenceContext annotation = method.getAnnotation(PersistenceContext.class); MethodAdvice advice = annotation == null ? shared : new TransactionalUnitMethodAdvice(manager, annotation); method.addAdvice(advice); } }