package com.sissi.pipeline.in.iq.search.get;
import java.util.List;
import com.sissi.context.JIDContext;
import com.sissi.field.Field;
import com.sissi.pipeline.Input;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.ProtocolType;
import com.sissi.protocol.iq.data.XData;
import com.sissi.protocol.iq.data.XDataType;
import com.sissi.protocol.iq.data.XField;
import com.sissi.protocol.iq.data.XFieldType;
import com.sissi.protocol.iq.data.XReported;
import com.sissi.protocol.iq.data.XValue;
import com.sissi.protocol.iq.search.Search;
import com.sissi.ucenter.search.SearchContext;
/**
* 表单用户查询
*
* @author kim 2014年6月6日
*/
public class SearchGetMultiProcessor implements Input {
private final XData data;
private final SearchContext searchContext;
/**
* @param reports 报表
* @param searchContext
*/
public SearchGetMultiProcessor(List<Field<?>> reports, SearchContext searchContext) {
super();
this.searchContext = searchContext;
this.data = new XData().setType(XDataType.RESULT.toString()).add(new XField().setType(XFieldType.HIDDEN.toString()).setVar(XDataType.FORM_TYPE.toString()).add(new XValue(Search.XMLNS))).add(Field.class.cast(new XReported().add(reports)));
}
@Override
public boolean input(JIDContext context, Protocol protocol) {
Search search = protocol.cast(Search.class);
context.write(search.clear().x(this.searchContext.search(search.getX(), this.data.clone(), XData.class)).parent().reply().setType(ProtocolType.RESULT));
return true;
}
}