protected Stanza(Stanza p) { id = p.getStanzaId(); to = p.getTo(); from = p.getFrom(); error = p.error; // Copy extensions for (ExtensionElement pe : p.getExtensions()) { addExtension(pe); } }
@Override public void onPacket(ConnectionItem connection, final String bareAddress, Stanza packet) { String from = packet.getFrom(); if (from == null) return; if (!(connection instanceof AccountItem) || !(packet instanceof Message)) return; String account = ((AccountItem) connection).getAccount(); Message message = (Message) packet; String session = message.getThread(); if (session == null) return; for (ExtensionElement packetExtension : packet.getExtensions()) if (packetExtension instanceof Feature) { Feature feature = (Feature) packetExtension; if (!feature.isValid()) continue; DataFormType type = feature.getDataFormType(); if (type == DataFormType.form) onFormReceived(account, from, bareAddress, session, feature); else if (type == DataFormType.submit) onSubmitReceived(account, from, bareAddress, session, feature); else if (type == DataFormType.result) onResultReceived(account, from, bareAddress, session, feature); } }