/* AuEventAgentBuilder.java
Purpose:
Description:
History:
Apr 22, 2013 Created by pao
Copyright (C) 2011 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.zats.mimic.impl.operation;
import org.zkoss.zats.mimic.AgentException;
import org.zkoss.zats.mimic.ComponentAgent;
import org.zkoss.zats.mimic.impl.ClientCtrl;
import org.zkoss.zats.mimic.impl.OperationAgentBuilder;
import org.zkoss.zats.mimic.operation.AuData;
import org.zkoss.zats.mimic.operation.AuAgent;
/**
* The builder for AU request agent.
* @author pao
* @since 1.1.0
*/
public class AuAgentBuilder implements OperationAgentBuilder<ComponentAgent, AuAgent> {
public AuAgent getOperation(ComponentAgent agent) {
return new AuAgentImpl(agent);
}
public Class<AuAgent> getOperationClass() {
return AuAgent.class;
}
class AuAgentImpl extends AgentDelegator<ComponentAgent> implements AuAgent {
public AuAgentImpl(ComponentAgent target) {
super(target);
}
public void post(AuData... events) {
ClientCtrl client = (ClientCtrl) target.getClient();
String desktopId = target.getDesktop().getId();
for (AuData event : events) {
if(event != null) {
client.postUpdate(desktopId, target.getUuid(), event.getName(), event.getData(), false);
} else {
throw new AgentException("an AU event for posting is null");
}
}
client.flush(desktopId);
}
}
}