package asmack.org.jivesoftware.smackx.packet; import asmack.org.jivesoftware.smack.packet.IQ; import asmack.org.jivesoftware.smack.packet.PacketExtension; import asmack.org.jivesoftware.smackx.commands.AdHocCommand; import asmack.org.jivesoftware.smackx.commands.AdHocCommandNote; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class AdHocCommandData extends IQ { private AdHocCommand.Action action; private ArrayList<AdHocCommand.Action> actions = new ArrayList<>(); private AdHocCommand.Action executeAction; private DataForm form; private String id; private String lang; private String name; private String node; private List<AdHocCommandNote> notes = new ArrayList(); private String sessionID; private AdHocCommand.Status status; public static class SpecificError implements PacketExtension { public static final String namespace = "http://jabber.org/protocol/commands"; public AdHocCommand.SpecificErrorCondition condition; public SpecificError(AdHocCommand.SpecificErrorCondition specificErrorCondition) { this.condition = specificErrorCondition; } public AdHocCommand.SpecificErrorCondition getCondition() { return this.condition; } @Override // asmack.org.jivesoftware.smack.packet.PacketExtension public String getElementName() { return this.condition.toString(); } @Override // asmack.org.jivesoftware.smack.packet.PacketExtension public String getNamespace() { return namespace; } @Override // asmack.org.jivesoftware.smack.packet.PacketExtension public String toXML() { return "<" + getElementName() + " xmlns=\"" + getNamespace() + "\"/>"; } } public void addAction(AdHocCommand.Action action2) { this.actions.add(action2); } public void addNote(AdHocCommandNote adHocCommandNote) { this.notes.add(adHocCommandNote); } public AdHocCommand.Action getAction() { return this.action; } public List<AdHocCommand.Action> getActions() { return this.actions; } @Override // asmack.org.jivesoftware.smack.packet.IQ public String getChildElementXML() { StringBuilder sb = new StringBuilder(); sb.append("<command xmlns=\"http://jabber.org/protocol/commands\""); sb.append(" node=\""); sb.append(this.node); sb.append("\""); String str = this.sessionID; if (str != null && !str.equals("")) { sb.append(" sessionid=\""); sb.append(this.sessionID); sb.append("\""); } if (this.status != null) { sb.append(" status=\""); sb.append(this.status); sb.append("\""); } if (this.action != null) { sb.append(" action=\""); sb.append(this.action); sb.append("\""); } String str2 = this.lang; if (str2 != null && !str2.equals("")) { sb.append(" lang=\""); sb.append(this.lang); sb.append("\""); } sb.append(">"); if (getType() == IQ.Type.RESULT) { sb.append("<actions"); if (this.executeAction != null) { sb.append(" execute=\""); sb.append(this.executeAction); sb.append("\""); } if (this.actions.size() == 0) { sb.append("/>"); } else { sb.append(">"); Iterator<AdHocCommand.Action> it2 = this.actions.iterator(); while (it2.hasNext()) { sb.append("<"); sb.append(it2.next()); sb.append("/>"); } sb.append("</actions>"); } } DataForm dataForm = this.form; if (dataForm != null) { sb.append(dataForm.toXML()); } for (AdHocCommandNote adHocCommandNote : this.notes) { sb.append("<note type=\""); sb.append(adHocCommandNote.getType().toString()); sb.append("\">"); sb.append(adHocCommandNote.getValue()); sb.append("</note>"); } sb.append("</command>"); return sb.toString(); } public AdHocCommand.Action getExecuteAction() { return this.executeAction; } public DataForm getForm() { return this.form; } public String getId() { return this.id; } public String getName() { return this.name; } public String getNode() { return this.node; } public List<AdHocCommandNote> getNotes() { return this.notes; } public String getSessionID() { return this.sessionID; } public AdHocCommand.Status getStatus() { return this.status; } public void remveNote(AdHocCommandNote adHocCommandNote) { this.notes.remove(adHocCommandNote); } public void setAction(AdHocCommand.Action action2) { this.action = action2; } public void setExecuteAction(AdHocCommand.Action action2) { this.executeAction = action2; } public void setForm(DataForm dataForm) { this.form = dataForm; } public void setId(String str) { this.id = str; } public void setName(String str) { this.name = str; } public void setNode(String str) { this.node = str; } public void setSessionID(String str) { this.sessionID = str; } public void setStatus(AdHocCommand.Status status2) { this.status = status2; } }