[udig-devel] Friendly relations and getById

Jody Garnett jgarnett at refractions.net
Wed Oct 4 18:47:55 PDT 2006


Jody Garnett wrote:
> I will:
> 1. write up the interfaces
The interfaces are:
/net.refractions.udig.catalog/schema/friendly.exsd
/net.refractions.udig.catalog/src/net/refractions/udig/catalog/util/IFriend.java
> 2. and some test cases
Just working on sample implementation currently:
/net.refractions.udig.catalog.wms/src/net/refractions/udig/catalog/wms/GeoServerFriend.java
> 3. and ask for review.
So far my complaints have been about the evolution of the ICatalog 
interface:
- findService( id ) was created as a non blocking lookup - used by DnD 
code? Method can only be implemented for the local catalog!
- find( id, monitor ) is used to find a list of associated services or 
GeoResources

In implementing IFriend (aka detection of peer resources based on prior 
knowledge, application specific assumptions or external metadata) we
need the ability to look up an entry in the local catalog exactly by ID.

Options:
- just walk it the catalog structure (Navigate from ICatalog, through 
IService, through IGeoResource (and children for WMS case)
- create a helper method similar to CSW2 getRecordById (or WFS 1.1 
getObjectById)
> If there are no complaints and myself or someone else has time we can 
> then
> 4. hook it into the code base.
I will try and get this to work first and then sort out naming and 
consistency issues after. Any suggestions welcome (It could be that 
ICatalog and ILocalCatalog need to be seperated so the two concerns stop 
confusing each other).
Jody


More information about the udig-devel mailing list