@Override
public Response handleResponse(Message m, OperationResourceInfo ori,
			Response response) {

	// exit now if not an http GET method
	if (!ori.getHttpMethod().equals("GET"))
		return null;

	// exit now if not a 200 response, no sense in apply filtering if not a
	// '200 OK'
	if (response.getStatus() != 200)
		return null;

	// exit now if we are not returning json
	if (!ori.getProduceTypes().get(0).toString()
			.equals(MediaType.APPLICATION_JSON))
		return null;

	// get a reference to the response entity. the entity holds the payload
	// of our response
	Object entity = response.getEntity();

	// try to get the 'fields' parameter from the QueryString
	String fields = uriInfo.getQueryParameters().getFirst("fields");

	// if the 'fields' QueryString is blank, then check to see if we have
	// @DefaultValue for 'fields'
	if (StringUtils.isBlank(fields)) {
		// get the Parameters for this Resource
		List<Parameter> parameters = ori.getParameters();
		for (Parameter parm : parameters) {
			// is the current Parameter named 'fields'?
			if (parm.getName().equals("fields")) {
				// get the default value for 'fields'
				fields = parm.getDefaultValue();

				// now that we found 'fields', there's no need to keep
				// looping
				break;
			}
		}
		// If 'fields' is still blank then we don't have a value from either
		// the QueryString or @DefaultValue
		if (StringUtils.isBlank(fields)) {
			logger.debug("Did not find 'fields' pararm for Resource '"
					+ uriInfo.getPath() + "'");
			return null;
		}
	}