[Members] JID Naming and a possible JID Object Model

Chris Mullins chris.mullins at coversant.net
Thu Aug 17 20:55:12 CDT 2006


Kevin Smith Wrote:
> Gaston Dombiak wrote:
> > OTHO, it would be nice if we all start using the same 
> > name to refer to the same concept

> Very much not a bad idea; what different things 
> are there to refer to?

> JID - I'm happy enough with this being a Jabber ID, 
> people say web address rather than http address.

I've never liked JID, although not due to the acronym. I dislike the
overloading of the term:

All of these are JID's:

Jabber.org
jabber.org/resource
cmullins at jabber.org
cmullins at jabber.org/resource

As a developer, I (and most everyone else) sits down and writes:

... Public Class JabberId{} 

This then tranlates into code that look like:
void DoSomething(JabberID jid){}

There's no good way to indicate which of the JID types this method is
expecting. This means my method ends up looking like:

Void DoSomething(JabberId bareJid)
{
	JabberId.AssertIsNotNullOrEmpty(bareJid);
	bareJid.AssertIsBareJid();
	...
}


And moves on from there. 

In the same way that the Xml DOM put together a good object model for
nodes/elements/attributes (all of which are Nodes), I think it would be
great to do something similar for JID's.

Much like the DOM, this theoritcal JID Object Model should take into
account the data being validated (via stringprep), provide cached access
to minimize revalidation, offer a way read-only version of a JID, and so
forth. 

I would love to get a nice Object Model put together for this, and for a
few of the other common XMPP and JEP components.  

Anyone besides me think this would be benficial? 

--
Chris Mullins
http://www.coversant.net/blogs/cmullins


More information about the Members mailing list