public class CanonicalModelClassFactory extends DefaultModelClassFactory
DEFAULT_EVENT_MAP_DIRECTORY
Constructor and Description |
---|
CanonicalModelClassFactory()
Constructor which selects the newest version of HAPI known to
|
CanonicalModelClassFactory(Class<? extends Message> theClass)
Constructor for a model class factory which always returns the same
message type.
|
CanonicalModelClassFactory(String theVersion)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Class<? extends Group> |
getGroupClass(String theName,
String theVersion) |
Class<? extends Message> |
getMessageClass(String theName,
String theVersion,
boolean theIsExplicit)
Attempts to return the message class corresponding to the given name, by
searching through default and user-defined (as per packageList()) packages.
|
Class<? extends Segment> |
getSegmentClass(String theName,
String theVersion) |
Class<? extends Type> |
getTypeClass(String theName,
String theVersion) |
getHighestKnownVersion, getMessageClassInASpecificPackage, getMessageStructureForEvent, getVersionPackageName, getVersionPackagePath, packageList, reloadPackages
getEventMapDirectory, getEventMapForVersion, loadMessageStructures, setEventMapDirectory
public CanonicalModelClassFactory()
public CanonicalModelClassFactory(Class<? extends Message> theClass)
SuperStructure
public CanonicalModelClassFactory(String theVersion)
theVersion
- The version to always return (e.g. "2.6")public Class<? extends Group> getGroupClass(String theName, String theVersion) throws HL7Exception
getGroupClass
in interface ModelClassFactory
getGroupClass
in class DefaultModelClassFactory
theName
- name of grouptheVersion
- HL7 versionHL7Exception
- if the version if not recognized or an appropriate class can not be
foundModelClassFactory.getGroupClass(java.lang.String, java.lang.String)
public Class<? extends Message> getMessageClass(String theName, String theVersion, boolean theIsExplicit) throws HL7Exception
Attempts to return the message class corresponding to the given name, by searching through default and user-defined (as per packageList()) packages. Returns GenericMessage if the class is not found.
It is important to note that there can only be one implementation of a particular message
structure (i.e. one class with the message structure name, regardless of its package) among
the packages defined as per the packageList()
method. If there are duplicates
(e.g. two ADT_A01 classes) the first one in the search order will always be used. However,
this restriction only applies to message classes, not (normally) segment classes, etc. This is because
classes representing parts of a message are referenced explicitly in the code for the message
class, rather than being looked up (using findMessageClass() ) based on the String value of MSH-9.
The exception is that Segments may have to be looked up by name when they appear
in unexpected locations (e.g. by local extension) -- see findSegmentClass().
Note: the current implementation will be slow if there are multiple user- defined packages, because the JVM will try to load a number of non-existent classes every parse. This should be changed so that specific classes, rather than packages, are registered by name.
getMessageClass
in interface ModelClassFactory
getMessageClass
in class DefaultModelClassFactory
theName
- name of the desired structure in the form XXX_YYYtheVersion
- HL7 version (e.g. "2.3")theIsExplicit
- true if the structure was specified explicitly in MSH-9-3, false if it
was inferred from MSH-9-1 and MSH-9-2. If false, a lookup may be performed to find
an alternate structure corresponding to that message type and event.HL7Exception
- if the version if not recognized or an appropriate class can not be
foundpublic Class<? extends Segment> getSegmentClass(String theName, String theVersion) throws HL7Exception
getSegmentClass
in interface ModelClassFactory
getSegmentClass
in class DefaultModelClassFactory
theName
- name of segmenttheVersion
- HL7 versionHL7Exception
- if the version if not recognized or an appropriate class can not be
foundModelClassFactory.getSegmentClass(java.lang.String, java.lang.String)
public Class<? extends Type> getTypeClass(String theName, String theVersion) throws HL7Exception
getTypeClass
in interface ModelClassFactory
getTypeClass
in class DefaultModelClassFactory
theName
- name of typetheVersion
- HL7 versionHL7Exception
- if the version if not recognized or an appropriate class can not be
foundModelClassFactory.getTypeClass(java.lang.String, java.lang.String)
Copyright © 2001–2017 University Health Network. All rights reserved.