/*
* Copyright 2011 Alibaba.com All right reserved. This software is the
* confidential and proprietary information of Alibaba.com ("Confidential
* Information"). You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license agreement you entered
* into with Alibaba.com.
*/
package com.alibaba.dubbo.governance.web.common.resolver;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.citrus.service.dataresolver.DataResolver;
import com.alibaba.citrus.service.dataresolver.DataResolverContext;
import com.alibaba.citrus.service.dataresolver.DataResolverFactory;
import com.alibaba.citrus.turbine.TurbineRunDataInternal;
import com.alibaba.citrus.turbine.util.TurbineUtil;
/**
* MapDataResolverFactory
*
* @author william.liangf
*/
public class MapDataResolverFactory implements DataResolverFactory {
@Autowired
private HttpServletRequest request;
public DataResolver getDataResolver(DataResolverContext context) {
if (Map.class == context.getTypeInfo().getRawType()) {
return new MapDataResolver(context);
}
return null;
}
public class MapDataResolver implements DataResolver {
public final DataResolverContext context;
public MapDataResolver(DataResolverContext context){
this.context = context;
}
public Object resolve() {
TurbineRunDataInternal rundata = (TurbineRunDataInternal) TurbineUtil.getTurbineRunData(request);
return new ParameterMap(request, rundata.getContext(), rundata);
}
}
}