⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node.java

📁 openfire 服务器源码下载
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            // Update the modification date to reflect the last time when the node's configuration            // was modified            modificationDate = new Date();            // Notify subscribers that the node configuration has changed            nodeConfigurationChanged();        }        // Store the new or updated node in the backend store        saveToDB();        // Check if we need to subscribe or unsubscribe from affiliate presences        if (wasPresenceBased != isPresenceBasedDelivery()) {            if (isPresenceBasedDelivery()) {                addPresenceSubscriptions();            }            else {                cancelPresenceSubscriptions();            }        }    }    /**     * Configures the node with the completed form field. Fields that are common to leaf     * and collection nodes are handled in {@link #configure(org.xmpp.forms.DataForm)}.     * Subclasses should implement this method in order to configure the node with form     * fields specific to the node type.     *     * @param field the form field specific to the node type.     */    abstract void configure(FormField field);    /**     * Node configuration was changed based on the completed form. Subclasses may implement     * this method to finsh node configuration based on the completed form.     *     * @param completedForm the form completed by the node owner.     */    abstract void postConfigure(DataForm completedForm);    /**     * The node configuration has changed. If this is the first time the node is configured     * after it was created (i.e. is not yet persistent) then do nothing. Otherwise, send     * a notification to the node subscribers informing that the configuration has changed.     */    private void nodeConfigurationChanged() {        if (!isNotifiedOfConfigChanges() || !savedToDB) {            // Do nothing if node was just created and configure or if notification            // of config changes is disabled            return;        }        // Build packet to broadcast to subscribers        Message message = new Message();        Element event = message.addChildElement("event", "http://jabber.org/protocol/pubsub#event");        Element items = event.addElement("items");        items.addAttribute("node", nodeID);        Element item = items.addElement("item");        item.addAttribute("id", "configuration");        if (deliverPayloads) {            item.add(getConfigurationChangeForm().getElement());        }        // Send notification that the node configuration has changed        broadcastNodeEvent(message, false);    }    /**     * Returns the data form to be included in the authorization request to be sent to     * node owners when a new subscription needs to be approved.     *     * @param subscription the new subscription that needs to be approved.     * @return the data form to be included in the authorization request.     */    DataForm getAuthRequestForm(NodeSubscription subscription) {        DataForm form = new DataForm(DataForm.Type.form);        form.setTitle(LocaleUtils.getLocalizedString("pubsub.form.authorization.title"));        form.addInstruction(                LocaleUtils.getLocalizedString("pubsub.form.authorization.instruction"));        FormField formField = form.addField();        formField.setVariable("FORM_TYPE");        formField.setType(FormField.Type.hidden);        formField.addValue("http://jabber.org/protocol/pubsub#subscribe_authorization");        formField = form.addField();        formField.setVariable("pubsub#subid");        formField.setType(FormField.Type.hidden);        formField.addValue(subscription.getID());        formField = form.addField();        formField.setVariable("pubsub#node");        formField.setType(FormField.Type.text_single);        formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.authorization.node"));        formField.addValue(getNodeID());        formField = form.addField();        formField.setVariable("pusub#subscriber_jid");        formField.setType(FormField.Type.jid_single);        formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.authorization.subscriber"));        formField.addValue(subscription.getJID().toString());        formField = form.addField();        formField.setVariable("pubsub#allow");        formField.setType(FormField.Type.boolean_type);        formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.authorization.allow"));        formField.addValue(Boolean.FALSE);        return form;    }    /**     * Returns a data form used by the owner to edit the node configuration.     *     * @return data form used by the owner to edit the node configuration.     */    public DataForm getConfigurationForm() {        DataForm form = new DataForm(DataForm.Type.form);        form.setTitle(LocaleUtils.getLocalizedString("pubsub.form.conf.title"));        List<String> params = new ArrayList<String>();        params.add(getNodeID());        form.addInstruction(LocaleUtils.getLocalizedString("pubsub.form.conf.instruction", params));        FormField formField = form.addField();        formField.setVariable("FORM_TYPE");        formField.setType(FormField.Type.hidden);        formField.addValue("http://jabber.org/protocol/pubsub#node_config");        // Add the form fields and configure them for edition        addFormFields(form, true);        return form;    }    /**     * Adds the required form fields to the specified form. When editing is true the field type     * and a label is included in each fields. The form being completed will contain the current     * node configuration. This information can be used for editing the node or for notifing that     * the node configuration has changed.     *     * @param form the form containing the node configuration.     * @param isEditing true when the form will be used to edit the node configuration.     */    protected void addFormFields(DataForm form, boolean isEditing) {        FormField formField = form.addField();        formField.setVariable("pubsub#title");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.short_name"));        }        formField.addValue(name);        formField = form.addField();        formField.setVariable("pubsub#description");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.description"));        }        formField.addValue(description);        formField = form.addField();        formField.setVariable("pubsub#subscribe");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.subscribe"));        }        formField.addValue(subscriptionEnabled);        formField = form.addField();        formField.setVariable("pubsub#subscription_required");        // TODO Replace this variable for the one defined in the JEP (once one is defined)        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.subscription_required"));        }        formField.addValue(subscriptionConfigurationRequired);        formField = form.addField();        formField.setVariable("pubsub#deliver_payloads");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.deliver_payloads"));        }        formField.addValue(deliverPayloads);        formField = form.addField();        formField.setVariable("pubsub#notify_config");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.notify_config"));        }        formField.addValue(notifyConfigChanges);        formField = form.addField();        formField.setVariable("pubsub#notify_delete");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.notify_delete"));        }        formField.addValue(notifyDelete);        formField = form.addField();        formField.setVariable("pubsub#notify_retract");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.notify_retract"));        }        formField.addValue(notifyRetract);        formField = form.addField();        formField.setVariable("pubsub#presence_based_delivery");        if (isEditing) {            formField.setType(FormField.Type.boolean_type);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.presence_based"));        }        formField.addValue(presenceBasedDelivery);        formField = form.addField();        formField.setVariable("pubsub#type");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.type"));        }        formField.addValue(payloadType);        formField = form.addField();        formField.setVariable("pubsub#body_xslt");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.body_xslt"));        }        formField.addValue(bodyXSLT);        formField = form.addField();        formField.setVariable("pubsub#dataform_xslt");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.dataform_xslt"));        }        formField.addValue(dataformXSLT);        formField = form.addField();        formField.setVariable("pubsub#access_model");        if (isEditing) {            formField.setType(FormField.Type.list_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.access_model"));            formField.addOption(null, AccessModel.authorize.getName());            formField.addOption(null, AccessModel.open.getName());            formField.addOption(null, AccessModel.presence.getName());            formField.addOption(null, AccessModel.roster.getName());            formField.addOption(null, AccessModel.whitelist.getName());        }        formField.addValue(accessModel.getName());        formField = form.addField();        formField.setVariable("pubsub#publish_model");        if (isEditing) {            formField.setType(FormField.Type.list_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.publish_model"));            formField.addOption(null, PublisherModel.publishers.getName());            formField.addOption(null, PublisherModel.subscribers.getName());            formField.addOption(null, PublisherModel.open.getName());        }        formField.addValue(publisherModel.getName());        formField = form.addField();        formField.setVariable("pubsub#roster_groups_allowed");        if (isEditing) {            formField.setType(FormField.Type.list_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.roster_allowed"));        }        for (String group : rosterGroupsAllowed) {            formField.addValue(group);        }        formField = form.addField();        formField.setVariable("pubsub#contact");        if (isEditing) {            formField.setType(FormField.Type.jid_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.contact"));        }        for (JID contact : contacts) {            formField.addValue(contact.toString());        }        formField = form.addField();        formField.setVariable("pubsub#language");        if (isEditing) {            formField.setType(FormField.Type.text_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.language"));        }        formField.addValue(language);        formField = form.addField();        formField.setVariable("pubsub#owner");        if (isEditing) {            formField.setType(FormField.Type.jid_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.owner"));        }        for (JID owner : getOwners()) {            formField.addValue(owner.toString());        }        formField = form.addField();        formField.setVariable("pubsub#publisher");        if (isEditing) {            formField.setType(FormField.Type.jid_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.publisher"));        }        for (JID owner : getPublishers()) {            formField.addValue(owner.toString());        }        formField = form.addField();        formField.setVariable("pubsub#itemreply");        if (isEditing) {            formField.setType(FormField.Type.list_single);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.itemreply"));        }        if (replyPolicy != null) {            formField.addValue(replyPolicy.name());        }        formField = form.addField();        formField.setVariable("pubsub#replyroom");        if (isEditing) {            formField.setType(FormField.Type.jid_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.replyroom"));        }        for (JID owner : getReplyRooms()) {            formField.addValue(owner.toString());        }        formField = form.addField();        formField.setVariable("pubsub#replyto");        if (isEditing) {            formField.setType(FormField.Type.jid_multi);            formField.setLabel(LocaleUtils.getLocalizedString("pubsub.form.conf.replyto"));        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -