Example

The following is a sample interceptor and configuration file, where one interceptor class implements all four interfaces.

Configuration file CMServiceConfig.xml:


<ServiceInterceptors
    <Service name="CMLTBTCP">
        <Interceptor action="add">
            com.splwg.cis.interceptortest.InterceptorTest
        </Interceptor> 
        <Interceptor action="change">
            com.splwg.cis.interceptortest.InterceptorTest
        </Interceptor> 
        <Interceptor action="delete">
            com.splwg.cis.interceptortest.InterceptorTest
        </Interceptor> 
        <Interceptor action="read">
            com.splwg.cis.interceptortest.InterceptorTest
        </Interceptor>
    </Service>
</ServiceInterceptors>

Class com.splwg.cm.interceptortest.InterceptorTest:


package com.splwg.cm.interceptortest;

import com.splwg.base.api.serviceinterception.IAddInterceptor;
import com.splwg.base.api.serviceinterception.IChangeInterceptor;
import com.splwg.base.api.serviceinterception.IDeleteInterceptor;
import com.splwg.base.api.serviceinterception.IReadInterceptor;
import com.splwg.base.api.service.PageBody;
import com.splwg.base.api.service.PageHeader;
import com.splwg.base.api.service.RequestContext;

public class InterceptorTest implements IAddInterceptor, IChangeInterceptor,
        IDeleteInterceptor, IReadInterceptor {

    public PageBody aboutToAdd(RequestContext context, PageBody in) {
        System.out.println("aboutToAdd: " + in);
        return null;
    }

    public void afterAdd(RequestContext context, PageBody added) {
        System.out.println("afterAdd: " + added);
    };

    public PageBody aboutToChange(RequestContext context, PageBody in) {
        System.out.println("aboutToChange: " + in);
        return null;
    };

    public void afterChange(RequestContext context, PageBody changed) {
        System.out.println("afterChange: " + changed);
    };

    public boolean aboutToDelete(RequestContext context, PageBody in) {
        System.out.println("aboutToDelete: " + in);
        return true;
    }

    public void afterDelete(RequestContext context, PageBody in) {
        System.out.println("afterDelete: " + in);
    }

    public PageBody aboutToRead(RequestContext context, PageHeader in) {
        System.out.println("aboutToRead: " + in);
        return null;
    }

    public void afterRead(RequestContext context, PageBody result) {
        System.out.println("afterRead: " + result);
    }
}