Example usage for org.springframework.aop.framework Advised removeAdvice

List of usage examples for org.springframework.aop.framework Advised removeAdvice

Introduction

In this page you can find the example usage for org.springframework.aop.framework Advised removeAdvice.

Prototype

boolean removeAdvice(Advice advice);

Source Link

Document

Remove the Advisor containing the given advice.

Usage

From source file:org.openmrs.module.trumpmodule.TrumpModuleActivator.java

/**
 * This method will remove AuthorizationAdvice from a particular core OpenMRS service.
 *//*from  w  w w . jav  a  2s.  com*/
public void reInitialServiceAdvices() {

    ArrayList<OpenmrsService> services = new ArrayList<OpenmrsService>();

    // painstakingly add all the services to a list, because reflection is dangerous
    // not the tidiest way, but hey...
    services.add(Context.getPatientService());
    services.add(Context.getAdministrationService());
    services.add(Context.getAlertService());
    services.add(Context.getCohortService());
    services.add(Context.getConceptService());
    services.add(Context.getEncounterService());
    services.add(Context.getFormService());
    services.add(Context.getHL7Service());
    services.add(Context.getLocationService());
    services.add(Context.getObsService());
    services.add(Context.getOrderService());
    services.add(Context.getPatientService());
    services.add(Context.getProgramWorkflowService());
    services.add(Context.getReportObjectService());
    services.add(Context.getSchedulerService());
    services.add(Context.getSerializationService());

    for (OpenmrsService service : services) {

        Advised advisedService = (Advised) service;
        Advisor[] advisors = advisedService.getAdvisors();
        for (Advisor a : advisors) {
            if (a.getAdvice() instanceof AuthorizationAdvice) {
                advisedService.removeAdvice(a.getAdvice());
            }
        }
    }
}

From source file:org.openmrs.api.context.ServiceContext.java

/**
 * @param cls/*from   w  w w. ja  v a  2 s.c om*/
 * @param advice
 */
@SuppressWarnings("unchecked")
public void removeAdvice(Class cls, Advice advice) {
    Advised advisedService = (Advised) services.get(cls);
    advisedService.removeAdvice(advice);
    getAddedAdvice(cls).remove(advice);
}

From source file:org.openmrs.api.context.ServiceContext.java

/**
 * Moves advisors and advice added by ServiceContext from the source service to the target one.
 *
 * @param source the existing service/*from w w w . j a va 2  s  .  c  o m*/
 * @param target the new service
 */
@SuppressWarnings("unchecked")
private void moveAddedAOP(Advised source, Advised target) {
    Class serviceClass = source.getClass();
    Set<Advisor> existingAdvisors = getAddedAdvisors(serviceClass);
    for (Advisor advisor : existingAdvisors) {
        target.addAdvisor(advisor);
        source.removeAdvisor(advisor);
    }

    Set<Advice> existingAdvice = getAddedAdvice(serviceClass);
    for (Advice advice : existingAdvice) {
        target.addAdvice(advice);
        source.removeAdvice(advice);
    }
}