The Java Binding, version 1.1a

13th February 2002

WARNING: version 1.1a of the Java Binding is EXTREMELY OUTDATED, and is kept on this site for historical interest only. The work on the Java Binding changed approach radically with version 1.1b - you should be using the up to date version.

Specification Interfaces

Version 1.1a of the Java binding for ZOOM is specified as a set of .java files which specify interfaces representing the classes of the abtract API. These interfaces are all in the package org.z3950.zoom. Most of the interfaces include commented-out constructors.

The binding may be viewed in two forms:

Implementing the Binding

Implementations of this binding should define classes with the same names as these interfaces, but in a different package; it should be specified that each class implements its corresponding interface. For example, Knowledge Integration's putative implementation might specify:

	package com.k_int.zoom;
	class Connection implements org.z3950.zoom.Connection {
		// ...
	}
  

It turns out that this approach just plain does not work. More explanation of why to follow, but you might like to start with the commentaries on interface constructors, static methods in interfaces and abstract interfaces to get an idea of how Java's interfaces just don't do what we're trying to make them do here.

Feedback to <mike@indexdata.com> is welcome!