Advertisement
Guest User

Test

a guest
Jul 23rd, 2013
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. package org.openmrs.module.patientnarratives.api.advice;
  2.  
  3. import java.lang.reflect.Method;
  4. import java.util.LinkedHashSet;
  5. import java.util.Set;
  6.  
  7. import org.aopalliance.aop.Advice;
  8. import org.aopalliance.intercept.MethodInterceptor;
  9. import org.aopalliance.intercept.MethodInvocation;
  10. import org.apache.commons.logging.Log;
  11. import org.apache.commons.logging.LogFactory;
  12. import org.openmrs.Encounter;
  13. import org.openmrs.EncounterProvider;
  14. import org.openmrs.User;
  15. import org.openmrs.api.context.Context;
  16. import org.springframework.aop.Advisor;
  17. import org.springframework.aop.MethodBeforeAdvice;
  18. import org.springframework.aop.support.StaticMethodMatcherPointcutAdvisor;
  19.  
  20. public class EncounterServiceAroundAdvisor extends StaticMethodMatcherPointcutAdvisor implements Advisor {
  21.  
  22. private static final long serialVersionUID = 3333L;
  23.  
  24. private Log log = LogFactory.getLog(this.getClass());
  25.  
  26. public boolean matches(Method method, Class targetClass) {
  27. // only 'run' this advice on the save methods
  28. if (method.getName().startsWith("save"))
  29. return true;
  30.  
  31. return false;
  32. }
  33.  
  34. @Override
  35. public Advice getAdvice() {
  36. log.debug("Getting new around advice");
  37. return new EncounterServiceAroundAdvice();
  38. }
  39.  
  40. private class EncounterServiceAroundAdvice implements MethodInterceptor {
  41. public Object invoke(MethodInvocation invocation) throws Throwable {
  42.  
  43. log.info("\n\n*********Before EncounterServiceAroundAdvice ***********\n\n");
  44.  
  45. Object object = null;
  46. String methodName = invocation.getMethod().getName();
  47.  
  48. if (methodName.equals("saveEncounter")) {
  49.  
  50. Encounter encounter = (Encounter) invocation.getArguments()[0];
  51. User user = Context.getUserService().getUser(1);
  52. encounter.setCreator(user);
  53.  
  54. Set<EncounterProvider> encounterProviders = encounter.getEncounterProviders();
  55. Set<EncounterProvider> newEncPs = new LinkedHashSet<EncounterProvider>();
  56. for(EncounterProvider encounterP : encounterProviders) {
  57. encounterP.setCreator(user);
  58. newEncPs.add(encounterP);
  59. }
  60. encounter.setEncounterProviders(newEncPs);
  61.  
  62. object = invocation.proceed();
  63. }
  64.  
  65. log.info("\n\n*********After EncounterServiceAroundAdvice ***********\n\n");
  66.  
  67. return object;
  68. }
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement