当前位置: 首页>>代码示例>>Java>>正文


Java Element.addChildren方法代码示例

本文整理汇总了Java中tigase.xml.Element.addChildren方法的典型用法代码示例。如果您正苦于以下问题:Java Element.addChildren方法的具体用法?Java Element.addChildren怎么用?Java Element.addChildren使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tigase.xml.Element的用法示例。


在下文中一共展示了Element.addChildren方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: block

import tigase.xml.Element; //导入方法依赖的package包/类
public static boolean block(XMPPResourceConnection session, String jid) throws NotAuthorizedException, TigaseDBException {
	String name = getDefaultListName(session);
	if(name == null) {
		name = "default";
	}
	Element list = getList(session,name);			
	if(list != null) {
		if (list.findChild(item -> jid.equals(item.getAttributeStaticStr(VALUE)) && isBlockItem(item)) != null)
			return false;
	}
	Element list_new = new Element(LIST,new String[]{NAME},new String[]{name});		
	list_new.addChild(new Element(ITEM,new String[]{TYPE,ACTION,VALUE,ORDER},new String[]{"jid","deny",jid,"0"}));
	if (list != null) {
		List<Element> items = list.getChildren();
		if (items != null) {
			Collections.sort(items, JabberIqPrivacy.compar);
			for (int i = 0; i < items.size(); i++) {
				items.get(i).setAttribute(ORDER, "" + (i + 1));
			}
			list_new.addChildren(items);
		}
	}
	updateList(session, name, list_new);
	return true;
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:26,代码来源:Privacy.java

示例2: unblock

import tigase.xml.Element; //导入方法依赖的package包/类
public static boolean unblock(XMPPResourceConnection session, String jid) throws NotAuthorizedException, TigaseDBException {
	String name = getDefaultListName(session);
	Element list = getList(session,name);
	if(list == null)
		return false;
	
	Element list_new = new Element(LIST,new String[]{NAME},new String[]{name});	
	List<Element> items = list.findChildren(item -> !jid.equals(item.getAttributeStaticStr(VALUE)) || !isBlockItem(item));
	if (items != null) {
		Collections.sort(items, JabberIqPrivacy.compar);
		for (int i = 0; i < items.size(); i++) {
			items.get(i).setAttribute(ORDER, "" + (i + 1));
		}
		list_new.addChildren(items);
	}

	updateList(session, name, list_new);
	
	return false;		
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:21,代码来源:Privacy.java

示例3: unblockAll

import tigase.xml.Element; //导入方法依赖的package包/类
public static List<String> unblockAll(XMPPResourceConnection session) throws NotAuthorizedException, TigaseDBException {
	String name = getDefaultListName(session);
	Element list = getList(session,name);
	if(list == null)
		return null;

	List<String> ulist = list.mapChildren(item -> isBlockItem(item), item -> item.getAttributeStaticStr(VALUE));
	
	Element list_new = new Element(LIST,new String[]{NAME},new String[]{name});			
	List<Element> items = list.findChildren(item -> !isBlockItem(item));
	if (items != null) {
		Collections.sort(items, JabberIqPrivacy.compar);
		for (int i = 0; i < items.size(); i++) {
			items.get(i).setAttribute(ORDER, "" + (i + 1));
		}
		list_new.addChildren(items);
	}

	updateList(session, name, list_new);
	
	return ulist;				
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:23,代码来源:Privacy.java

示例4: preparePacket

import tigase.xml.Element; //导入方法依赖的package包/类
protected Packet preparePacket(String messageId, Element... content) throws TigaseStringprepException {
    Element e = new Element("message", new String[]{"type"}, new String[]{"groupchat"});
    if (messageId != null) {
        e.setAttribute("id", messageId);
    }
    if (content != null)
        e.addChildren(Arrays.asList(content));
    Packet message = Packet.packetInstance(e);

    message.setXMLNS(Packet.CLIENT_XMLNS);
    return message;
}
 
开发者ID:QuickBlox,项目名称:QuickBlox-Tigase-CustomFeatures,代码行数:13,代码来源:GroupchatMessageModule.java

示例5: processIQPacket

import tigase.xml.Element; //导入方法依赖的package包/类
/**
 * Describe <code>processIQPacket</code> method here.
 * 
 * @param packet
 *          a <code>Packet</code> value
 * @return a <code>boolean</code> value
 */
private boolean processIQPacket(Packet packet) {
	boolean processed = false;
	Element iq = packet.getElement();
	Element query = iq.getChild("query", INFO_XMLNS);
	Element query_rep = null;

	if ((query != null) && (packet.getType() == StanzaType.get)) {
		query_rep = serviceEntity.getDiscoInfo(packet.getStanzaTo().getLocalpart());
		processed = true;
	} // end of if (query != null && packet.getType() == StanzaType.get)

	query = iq.getChild("query", ITEMS_XMLNS);

	if ((query != null) && (packet.getType() == StanzaType.get)) {
		query_rep = query.clone();

		List<Element> items =
				serviceEntity.getDiscoItems(packet.getStanzaTo().getLocalpart(), packet
						.getStanzaTo().toString());

		if ((items != null) && (items.size() > 0)) {
			query_rep.addChildren(items);
		} // end of if (items != null && items.size() > 0)

		processed = true;
	} // end of if (query != null && packet.getType() == StanzaType.get)

	if (query_rep != null) {
		addOutPacket(packet.okResult(query_rep, 0));
	} // end of if (query_rep != null)

	return processed;
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:41,代码来源:StanzaReceiver.java

示例6: streamOpened

import tigase.xml.Element; //导入方法依赖的package包/类
@Override
public String streamOpened(S2SIOService serv, Map<String, String> attribs) {
	if (attribs.containsKey("version")) {

		// A version=1.0,  sending features
		if (serv.connectionType() == ConnectionType.accept) {

			// Send features only for accept connections
			List<Element> features = handler.getStreamFeatures(serv);
			Element featuresElement = new Element(STREAM_FEATURES_EL);

			featuresElement.addChildren(features);

			// do not send stattls feature to hosts in skip tls list
			if (attribs.containsKey("from")) {
				if (skipTLSForHost(attribs.get("from"))) {
					Element startTls = featuresElement.getChild(START_TLS_EL, START_TLS_NS);
					featuresElement.removeChild(startTls);
				}
			}

			if (log.isLoggable(Level.FINEST)) {
				log.log(Level.FINEST, "{0}, Sending stream features: {1}", new Object[] { serv,
						featuresElement });
			}

			serv.addPacketToSend(Packet.packetInstance(featuresElement, null, null));
		}
	}

	return null;
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:33,代码来源:StreamFeatures.java

示例7: addDiscoItems

import tigase.xml.Element; //导入方法依赖的package包/类
private void addDiscoItems( XMPPResourceConnection session, Element query ) {

		try {
			List<Element> messagesList = msg_repo.getMessagesList( session.getJID() );
			if ( null != messagesList && !messagesList.isEmpty() ){
				query.addChildren( messagesList );
			}
		} catch ( NotAuthorizedException | UserNotFoundException ex ) {
			log.log( Level.WARNING, "Problem retrieving messages from repository: ", ex );
		}
	}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:12,代码来源:FlexibleOfflineMessageRetrieval.java

示例8: processAdHocCommandItems

import tigase.xml.Element; //导入方法依赖的package包/类
protected void processAdHocCommandItems(Packet packet, JID jid, String node, JID senderJID) throws ComponentException,
		RepositoryException {
	AdHocCommandModule<?> module = context.getModuleProvider().getModule(AdHocCommandModule.ID);
	if (module == null)
		throw new ComponentException(Authorization.ITEM_NOT_FOUND);

	Element resultQuery = new Element("query", new String[] { Packet.XMLNS_ATT }, new String[] { DISCO_ITEMS_XMLNS });
	Packet result = packet.okResult(resultQuery, 0);

	List<Element> items = module.getScriptItems(node, packet.getStanzaTo(), packet.getStanzaFrom());

	resultQuery.addChildren(items);

	write(result);
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:16,代码来源:DiscoveryModule.java

示例9: processAdHocCommandItems

import tigase.xml.Element; //导入方法依赖的package包/类
@Override
protected void processAdHocCommandItems(Packet packet, JID jid, String node, JID senderJID) throws ComponentException,
		RepositoryException {
	if (jid.getResource() != null && isAdHocCompatible(context.getKernel().getInstance(jid.getResource()))) {
		final Object taskInstance = context.getKernel().getInstance(jid.getResource());

		List<Element> items = new ArrayList<Element>();
		Element resultQuery = new Element("query", new String[] { Packet.XMLNS_ATT }, new String[] { DISCO_ITEMS_XMLNS });
		Packet result = packet.okResult(resultQuery, 0);

		if (taskInstance instanceof InfoTask) {
			items.add(new Element("item", new String[] { "jid", "node", "name" }, new String[] { jid.toString(),
					InfoTaskCommand.NODE, "Task Info" }));
		}
		if (taskInstance instanceof ConfigurableTask) {
			items.add(new Element("item", new String[] { "jid", "node", "name" }, new String[] { jid.toString(),
					ConfigureTaskCommand.NODE, "Task config" }));
		}

		if (taskInstance instanceof AdHocTask) {
			items.addAll(((AdHocTask) taskInstance).getAdHocCommands(jid, senderJID));
		}

		resultQuery.addChildren(items);
		write(result);

	} else if (jid.getResource() != null) {
		throw new ComponentException(Authorization.ITEM_NOT_FOUND);
	} else
		super.processAdHocCommandItems(packet, jid, node, senderJID);
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:32,代码来源:DiscoveryMonitorModule.java

示例10: processIq

import tigase.xml.Element; //导入方法依赖的package包/类
private void processIq(Packet packet, XMPPResourceConnection session,
											 NonAuthUserRepository repo, Queue<Packet> results,
											 Map<String, Object> settings)
				throws PacketErrorTypeException {
	Element query = packet.getElement().getChild("query",
										"http://spectrum.im/protocol/remote-roster");

	if (query == null) {
		super.processToUserPacket(packet, session, repo, results, settings);

		// log.warn("processing IQ with bad query = {}", packet.toString());
		return;
	}
	switch (packet.getType()) {
	case set :
		if ("request".equals(query.getAttributeStaticStr(Packet.TYPE_ATT))) {
			JID from    = JID.jidInstanceNS(packet.getStanzaTo().getDomain());
			Element msg = new Element(tigase.server.Message.ELEM_NAME);

			msg.setAttribute(Packet.FROM_ATT, from.toString());
			msg.setAttribute(Packet.TO_ATT, packet.getStanzaTo().toString());

			Form form = new Form(Packet.FROM_ATT, "Roster change permission",
													 packet.getStanzaFrom().getBareJID().toString() +
													 " wants to edit your roster with following reason: " +
													 query.getAttributeStaticStr("reason") +
													 ". Do you want to allow it?");

			form.addField(Field.fieldHidden("FORM_TYPE", XMLNS));
			form.addField(Field.fieldHidden("jid",
																			packet.getStanzaFrom().getBareJID().toString()));
			form.addField(Field.fieldBoolean("answer", true, "Allow roster edit"));
			msg.addChildren(Collections.singletonList(form.getElement()));

			Packet resp = Packet.packetInstance(msg, from, packet.getStanzaTo());

			results.offer(resp);
		} else {
			results.offer(Authorization.BAD_REQUEST.getResponseMessage(packet,
							"Unknown request type", false));
		}

		break;

	default :
		results.offer(Authorization.BAD_REQUEST.getResponseMessage(packet, "Bad request",
						true));
	}
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:50,代码来源:RemoteRosterManagement.java

示例11: processMessageFormResponse

import tigase.xml.Element; //导入方法依赖的package包/类
private void processMessageFormResponse(Packet packet, XMPPResourceConnection session,
				NonAuthUserRepository repo, Queue<Packet> results)
				throws NotAuthorizedException, TigaseDBException {
	Element x = packet.getElement().getChild("x");

	if (x != null) {
		Form form        = new Form(x);
		if (!XMLNS.equals(form.getAsString("FORM_TYPE")) 
				&& !session.isLocalDomain(packet.getStanzaTo().toString(), false)) {				
			results.offer(packet);
		}
		JID jid          = JID.jidInstanceNS(form.get("jid").getValue());
		Boolean answer   = false;
		String answerStr = form.get("answer").getValue();

		if ("true".equals(answerStr) || "1".equals(answerStr)) {
			answer = true;
		}
		synchronized (session) {
			Set<JID> allowed = getAllowed(session);

			// Apply result of form
			if (answer) {
				allowed.add(jid);
			} else {
				allowed.remove(jid);
			}
			setAllowed(session, allowed);
		}

		// Notify remote jid about answer
		Element iq = new Element("iq");

		iq.setAttribute("from", packet.getStanzaFrom().getBareJID().toString());
		iq.setAttribute("to", jid.toString());

		Element query = new Element("query");

		query.setAttribute("xmlns", XMLNS);
		query.setAttribute("type", answer
															 ? "allowed"
															 : "rejected");
		iq.addChildren(Collections.singletonList(query));
		results.offer(Packet.packetInstance(iq,
						packet.getStanzaFrom().copyWithoutResource(), jid));
	} else {
		results.offer(packet);
	}
}
 
开发者ID:kontalk,项目名称:tigase-server,代码行数:50,代码来源:RemoteRosterManagement.java


注:本文中的tigase.xml.Element.addChildren方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。