package com.psddev.cms.view.servlet;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.servlet.http.HttpServletRequest;
import com.psddev.cms.db.PageFilter;
/**
* Populates a field with the "current site" of the request as defined by
* {@link com.psddev.cms.db.PageFilter.Static#getSite(javax.servlet.http.HttpServletRequest)}.
*/
@ServletViewRequestAnnotationProcessorClass(CurrentSiteProcessor.class)
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface CurrentSite {
}
class CurrentSiteProcessor implements ServletViewRequestAnnotationProcessor<CurrentSite> {
@Override
public Object getValue(HttpServletRequest request, String fieldName, CurrentSite annotation) {
return PageFilter.Static.getSite(request);
}
}