Package com.opengamma.web.analytics.push

Source Code of com.opengamma.web.analytics.push.TestFilterFactory$TestFilter

/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics.push;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.core.Context;

import com.sun.jersey.api.core.HttpContext;
import com.sun.jersey.api.model.AbstractMethod;
import com.sun.jersey.api.model.AbstractResourceMethod;
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;
import com.sun.jersey.spi.container.ContainerResponse;
import com.sun.jersey.spi.container.ContainerResponseFilter;
import com.sun.jersey.spi.container.ResourceFilter;
import com.sun.jersey.spi.container.ResourceFilterFactory;

/**
* test filter for exploring the data available in the {@code filter} methods.
*/
public class TestFilterFactory implements ResourceFilterFactory {

  @Context
  HttpContext _httpContext;

  @Override
  public List<ResourceFilter> create(AbstractMethod abstractMethod) {
    List<ResourceFilter> filters = new ArrayList<ResourceFilter>();
    filters.add(new TestFilter(abstractMethod));
    return filters;
  }

  class TestFilter implements ResourceFilter {

    private final AbstractMethod _method;

    public TestFilter(AbstractMethod method) {
      _method = method;
    }

    @Override
    public ContainerRequestFilter getRequestFilter() {
      return null;
    }

    @Override
    public ContainerResponseFilter getResponseFilter() {
      return new TestResponseFilter();
    }

    class TestResponseFilter implements ContainerResponseFilter {

      @Override
      public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
        AbstractResourceMethod matchedMethod = _httpContext.getUriInfo().getMatchedMethod();
        boolean methodsEqual = matchedMethod.equals(_method);
        String methodName = methodName(_method);
        String matchedMethodName = methodName(matchedMethod);
        System.out.println(methodsEqual);
        System.out.println(methodName);
        System.out.println(matchedMethodName);
        return response;
      }
    }
  }

  private static String methodName(AbstractMethod abstractMethod) {
    Method method = abstractMethod.getMethod();
    return method.getDeclaringClass().getSimpleName() + "." + method.getName() + "()";
  }
}
TOP

Related Classes of com.opengamma.web.analytics.push.TestFilterFactory$TestFilter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.