* @param global true to retrieve global macros, otherwise false for personal macros.
* @return MacroGroup the root macro group.
* @throws XMPPException if an error occurs while getting information from the server.
*/
public MacroGroup getMacros(boolean global) throws XMPPException {
Macros request = new Macros();
request.setType(IQ.Type.GET);
request.setTo(workgroupJID);
request.setPersonal(!global);
PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
connection.sendPacket(request);
Macros response = (Macros)collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
// Cancel the collector.
collector.cancel();
if (response == null) {
throw new XMPPException("No response from server.");
}
if (response.getError() != null) {
throw new XMPPException(response.getError());
}
return response.getRootGroup();
}