package com.sissi.ucenter.relation.muc.register.impl; import com.sissi.field.Field; import com.sissi.field.Fields; import com.sissi.protocol.iq.data.XDataType; import com.sissi.protocol.iq.data.XFieldType; import com.sissi.protocol.iq.data.XInput; import com.sissi.ucenter.relation.muc.register.RegisterConfig; import com.sissi.ucenter.relation.muc.register.RegisterContext; /** * 将Register请求转换为可转发格式 * * @author kim 2014年3月24日 */ public class FilterRegisterContext implements RegisterContext { /** * 表单头 */ private final XInput header = new XInput(XFieldType.HIDDEN.toString(), null, XDataType.FORM_TYPE.toString(), RegisterConfig.XMLNS); /** * 是否允许 */ private final XInput allowed = new XInput(XFieldType.BOOLEAN.toString(), null, RegisterConfig.ALLOW.toString(), Boolean.TRUE.toString()); @Override public <T extends Fields> T register(Fields source, T target) { target.add(this.header); for (Field<?> each : source) { // 过滤非Register表单属性 if (RegisterConfig.contains(each.getName())) { target.add(each); } } target.add(this.allowed); return target; } }