package org.openrosa.client.jr.core.reference;
/**
* A ReferenceFactory is responsible for knowing how to derive a
* reference for a range of URI's. ReferenceFactories may or may
* not be present in different environments.
*
* ReferenceFactory are not required to generate particular references, and
* may rely on (or attempt to rely on) other factories in implementation,
* negotiated through the reference manager.
*
* In general, simple reference derivations should happen using a
* PrefixedRootFactory, which handles most of the URI munging for you
*
* @author ctsims
*
*/
public interface ReferenceFactory {
public boolean derives(String URI);
public Reference derive(String URI) throws InvalidReferenceException;
public Reference derive(String URI, String context) throws InvalidReferenceException;
}