<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-ext.aps.anl.gov/epics/index.php?action=history&amp;feed=atom&amp;title=V4_Design%3A_RecordCommon_Support</id>
	<title>V4 Design: RecordCommon Support - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-ext.aps.anl.gov/epics/index.php?action=history&amp;feed=atom&amp;title=V4_Design%3A_RecordCommon_Support"/>
	<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;action=history"/>
	<updated>2026-07-08T18:26:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=2705&amp;oldid=prev</id>
		<title>MartyKraimer at 14:49, 4 October 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=2705&amp;oldid=prev"/>
		<updated>2005-10-04T14:49:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;amp;diff=2705&amp;amp;oldid=553&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>MartyKraimer</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=553&amp;oldid=prev</id>
		<title>MartyKraimer at 19:41, 28 September 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=553&amp;oldid=prev"/>
		<updated>2005-09-28T19:41:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:41, 28 September 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;THIS WIKI NEEDS LOTS OF WORK&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;THIS WIKI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IS OUT OF SYNC WITH OTHER WIKI PAGES. IT &lt;/ins&gt;NEEDS LOTS OF WORK&amp;lt;/b&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the implementation of the record support&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the implementation of the record support&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MartyKraimer</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=546&amp;oldid=prev</id>
		<title>MartyKraimer at 12:57, 22 September 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=546&amp;oldid=prev"/>
		<updated>2005-09-22T12:57:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:57, 22 September 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EPICS V4: RecordCommonSupport - September &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;16 &lt;/del&gt;2005  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EPICS V4: RecordCommonSupport - September &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;22 &lt;/ins&gt;2005  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Overview =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;b&gt;THIS WIKI NEEDS LOTS OF WORK&amp;lt;/b&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the implementation of the record support&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the implementation of the record support&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for RecordCommon, the set &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if &lt;/del&gt;fields associated with &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;all &lt;/del&gt;record &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;types&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for RecordCommon, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i.e. &lt;/ins&gt;the set &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of &lt;/ins&gt;fields associated with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;every &lt;/ins&gt;record &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For V4 dbCommon.dbd and RecordCommon.dbd replace the V3 dbCommon.dbd.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For V4 dbCommon.dbd and RecordCommon.dbd replace the V3 dbCommon.dbd.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This document describes the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A list of the &lt;/del&gt;code &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;autimatically &lt;/del&gt;generated from dbCommon.dbd and RecordCommon.dbd&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The &lt;/ins&gt;code &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;automatically &lt;/ins&gt;generated from dbCommon.dbd and RecordCommon.dbd&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* A proposed implementation of RecordCommonSupport.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* A proposed implementation of RecordCommonSupport.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot;&gt;Line 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See the description of &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; in &amp;quot;V4 Design: RecordCommon&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;See the description of &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; in &amp;quot;V4 Design: RecordCommon&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Link support must register &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for &lt;/del&gt;each of the &amp;lt;tt&amp;gt;link&amp;lt;/tt&amp;gt; definitions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Link support must register &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;support &lt;/ins&gt;each of the &amp;lt;tt&amp;gt;link&amp;lt;/tt&amp;gt; definitions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;           &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; the following class implementations are generated:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;From &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; the following class implementations are generated:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l102&quot;&gt;Line 102:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 104:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      enum Mode {modeNone,modeInput,modeOutput};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      enum Mode {modeNone,modeInput,modeOutput};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      public class RecordCommonSupport implements Callback, Common &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      public class RecordCommonSupport implements &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RecordSupport,&lt;/ins&gt;Callback,Common&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private RecordInstance instance;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private RecordInstance instance;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private Mode           mode;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private Mode           mode;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l116&quot;&gt;Line 116:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 119:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          // Beginning of RecordSupport&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          // Beginning of RecordSupport&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	          public destroy() {} // destroy not needed for Java&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         public destroy() {} // destroy not needed for Java&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          public initialize(int pass) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          public initialize(int pass) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              if(pass==0) return;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              if(pass==0) return;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 127:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              alarm.init(instance);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              alarm.init(instance);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         public destroy() {} // destroy not needed for Java&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          public processState process(processState state) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          public processState process(processState state) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              switch(state) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              switch(state) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              case processCancel: mode = modeNone; return processDone;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              case processCancel:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	         //MUCH MORE NEEDS TO BE DONE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		 // MUST CANCAL ANY OUTSTANDING I/O&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	         &lt;/ins&gt;mode = modeNone; return processDone;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              case processStart: {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;              case processStart: {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                  mode = modeInput;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                  mode = modeInput;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l307&quot;&gt;Line 307:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 314:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      enum Mode {modeNone,modeInput,modeOutput};&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      enum Mode {modeNone,modeInput,modeOutput};&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      public class RecordCommonSupport &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;extends &lt;/del&gt;RecordSupport&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      public class RecordCommonSupport &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;implements &lt;/ins&gt;RecordSupport&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&lt;/ins&gt;Callback, Common&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     implements &lt;/del&gt;Callback, Common &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private RecordInstance instance;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private RecordInstance instance;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private Mode           mode;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;          private Mode           mode;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MartyKraimer</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=525&amp;oldid=prev</id>
		<title>MartyKraimer at 15:06, 16 September 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=V4_Design:_RecordCommon_Support&amp;diff=525&amp;oldid=prev"/>
		<updated>2005-09-16T15:06:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;EPICS V4: RecordCommonSupport - September 16 2005 &lt;br /&gt;
----&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
This document describes the implementation of the record support&lt;br /&gt;
for RecordCommon, the set if fields associated with all record types.&lt;br /&gt;
&lt;br /&gt;
For V4 dbCommon.dbd and RecordCommon.dbd replace the V3 dbCommon.dbd.&lt;br /&gt;
dbCommon.dbd define widely used definitions and RecordCommon.dbd defines&lt;br /&gt;
the fields that are common to all record types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document describes the following:&lt;br /&gt;
&lt;br /&gt;
* A list of the code autimatically generated from dbCommon.dbd and RecordCommon.dbd&lt;br /&gt;
* A proposed implementation of RecordCommonSupport.&lt;br /&gt;
&lt;br /&gt;
This document requires that the reader be familiar with:&lt;br /&gt;
# V3 iocCore&lt;br /&gt;
# V4 Design: Record Processing&lt;br /&gt;
# V4 Design: dbdInterfaces&lt;br /&gt;
# V4 Design: Runtime interfaces&lt;br /&gt;
# V4 Design: RecordCommon&lt;br /&gt;
&lt;br /&gt;
Unless the reader is familiar with these most of this document will&lt;br /&gt;
be very difficult to understand.&lt;br /&gt;
&lt;br /&gt;
Java is used as the example code for two reasons:&lt;br /&gt;
# For V4 iocCore it is intended that both C++ and Java implementations will be provided. Since V3 is only implemented in C and C++ the Java implemention of V4 is described first to make sure that the interfaces defined in dbdInterfaces will work for Java.&lt;br /&gt;
# Java provides facilities that make it easy to handle strings, arrays, and structures.&lt;br /&gt;
&lt;br /&gt;
An implementaion of RecordCommonSupport is presented for two reasons:&lt;br /&gt;
# It demonstrates how to implement code that uses or implements the interface described in &amp;quot;V4 Design: dbdInterfaces&amp;quot; and &amp;quot;V4 Design: Runtime interfaces&amp;quot;.&lt;br /&gt;
# It helps refine the interfaces described in them&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
= dbCommon.dbd =&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the description of &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; in &amp;quot;V4 Design: RecordCommon&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Link support must register for each of the &amp;lt;tt&amp;gt;link&amp;lt;/tt&amp;gt; definitions.&lt;br /&gt;
         &lt;br /&gt;
From &amp;lt;tt&amp;gt;dbCommon.dbd&amp;lt;/tt&amp;gt; the following class implementations are generated:&lt;br /&gt;
* For the link structures:&lt;br /&gt;
** &amp;lt;tt&amp;gt;MonitorLink&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;MonitorLinkData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;MonitorLinkSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
** &amp;lt;tt&amp;gt;InputLink&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;InputLinkData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;InputLinkSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
** &amp;lt;tt&amp;gt;OutputLink&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;OutputLinkData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;OutputLinkSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
** &amp;lt;tt&amp;gt;ProcessLink&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ProcessLinkData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;ProcessLinkSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
* For TimeStamp&lt;br /&gt;
** &amp;lt;tt&amp;gt;TimeStamp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;TimeStampData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;TimeStampSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
* For Scan&lt;br /&gt;
** &amp;lt;tt&amp;gt;Scan&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ScanData&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;ScanSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See &amp;quot;V4 Design: Runtime interfaces&amp;quot; for an example of how these classes are defined.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
= RecordCommon.dbd =&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the description of &amp;lt;tt&amp;gt;RecordCommon.dbd&amp;lt;/tt&amp;gt; in &amp;quot;V4 Design: RecordCommon&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;RecordCommon.dbd&amp;lt;/tt&amp;gt; must be part of every record.&lt;br /&gt;
&lt;br /&gt;
Implementations of &amp;lt;tt&amp;gt;Disable&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;DisableData&amp;lt;/tt&amp;gt;,&lt;br /&gt;
and &amp;lt;tt&amp;gt;DisableDataSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
are automatically generated.&lt;br /&gt;
&lt;br /&gt;
An implementations of RecordCommon is also generated.&lt;br /&gt;
See &amp;quot;V4 Design: Runtime interfaces&amp;quot; for an example of the generated&lt;br /&gt;
classes.&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
= RecordCommonSupport.java =&lt;br /&gt;
 &amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This section describes the java implementation of RecordCommon&lt;br /&gt;
functionality. This code handles processing of the following fields&lt;br /&gt;
of RecordCommon:&lt;br /&gt;
; &amp;lt;tt&amp;gt;disable&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Decides if the record is disabled.&lt;br /&gt;
; &amp;lt;tt&amp;gt;alarmStatus&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;alarmSeverity&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The only way to change alarmStatus and alarmSeverity is via interface Common, which is implemented by RecordCommonSupport.&lt;br /&gt;
; &amp;lt;tt&amp;gt;processLink&amp;lt;/tt&amp;gt;&lt;br /&gt;
: This is an array of process links, which replace the V3 &amp;lt;tt&amp;gt;FLNK&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following subsection contains the complete code for RecordCommonSupport.java.&lt;br /&gt;
The remaining subsections discuss each part of the code.&lt;br /&gt;
&lt;br /&gt;
== IocCommon.java ==&lt;br /&gt;
&lt;br /&gt;
This defines &lt;br /&gt;
     interface Common {&lt;br /&gt;
         bool setSeverity(AlarmSeverity severity, string status);&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  RecordCommonSupport.java ==&lt;br /&gt;
     enum Mode {modeNone,modeInput,modeOutput};&lt;br /&gt;
     &lt;br /&gt;
     public class RecordCommonSupport implements Callback, Common  {&lt;br /&gt;
         private RecordInstance instance;&lt;br /&gt;
         private Mode           mode;&lt;br /&gt;
         private Input          input;&lt;br /&gt;
         private Output         output;&lt;br /&gt;
         private Alarm          alarm;&lt;br /&gt;
         private bool           requestProcess;&lt;br /&gt;
     &lt;br /&gt;
         // Constructor&lt;br /&gt;
         public RecordCommonSupport(RecordInstance instance) {&lt;br /&gt;
             this.instance = instance;&lt;br /&gt;
         }&lt;br /&gt;
     &lt;br /&gt;
         // Beginning of RecordSupport&lt;br /&gt;
         public initialize(int pass) {&lt;br /&gt;
             if(pass==0) return;&lt;br /&gt;
             input.init(instance);&lt;br /&gt;
             output.init(instance);&lt;br /&gt;
             alarm.init(instance);&lt;br /&gt;
         }&lt;br /&gt;
         public destroy() {} // destroy not needed for Java&lt;br /&gt;
&lt;br /&gt;
         public processState process(processState state) {&lt;br /&gt;
             switch(state) {&lt;br /&gt;
             case processCancel: mode = modeNone; return processDone;&lt;br /&gt;
             case processStart: {&lt;br /&gt;
                 mode = modeInput;&lt;br /&gt;
                 requestProcess = false;&lt;br /&gt;
                 LinkWaitResult result = input.disableSupport.getWait(&lt;br /&gt;
                     input.disableInput,0.0,this);&lt;br /&gt;
                 if(result==linkNoop || result==linkDone) return processDone;&lt;br /&gt;
                 requestProcess = true;&lt;br /&gt;
             }&lt;br /&gt;
             // fall through to processInputActive&lt;br /&gt;
             case processInputActive: {&lt;br /&gt;
                 if(requestProcess) return processInputActive;&lt;br /&gt;
                 if(input.disable.disableValue == disable.disableInput)&lt;br /&gt;
                         return processDone;&lt;br /&gt;
                 return processActive;&lt;br /&gt;
             }&lt;br /&gt;
             case processDone: {&lt;br /&gt;
                 mode = modeOutput;&lt;br /&gt;
                 output.nextLink = 0;&lt;br /&gt;
                 output.numberLinksActive = 0;&lt;br /&gt;
                     &lt;br /&gt;
             }&lt;br /&gt;
             // fall through to processOutputActive&lt;br /&gt;
             case processOutputActive:&lt;br /&gt;
                 LinkWaitResult result = linkWaitParallel;&lt;br /&gt;
                 requestProcess = false;&lt;br /&gt;
                 while(output.nextLink&amp;lt; output.link.length) {&lt;br /&gt;
                     if(result==linkWaitSequential) break;&lt;br /&gt;
                     result = output.link[nextLink].support.processWait(0.0,this);&lt;br /&gt;
                     if(result==linkWaitSequential || result==linkWaitParallel)&lt;br /&gt;
                         output.numberLinksActive++&lt;br /&gt;
                     output.nextLink++;&lt;br /&gt;
                 }&lt;br /&gt;
                 if(output.numberLinksActive==0) {&lt;br /&gt;
                      mode = modeNone;&lt;br /&gt;
                      return processDone;&lt;br /&gt;
                 }&lt;br /&gt;
                 requestProcess = true;&lt;br /&gt;
                 return processOutputActive;&lt;br /&gt;
             default: throw java.lang.IllegalStateException;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
         public bool special(bool after,Dbf[] field) {&lt;br /&gt;
             int nlevels = field.length;&lt;br /&gt;
             assert(nlevels&amp;gt;0);&lt;br /&gt;
             if(index==alarmStatusIndex || index==alarmSeverityIndex) {&lt;br /&gt;
                  if(!alarm.modifyingAlarm) return false;&lt;br /&gt;
                  return true;&lt;br /&gt;
             }&lt;br /&gt;
             if(!after) return;&lt;br /&gt;
             switch(index) {&lt;br /&gt;
                 case disableIndex: {&lt;br /&gt;
                     if(nlevels==1) {&lt;br /&gt;
                         input.init(instance);&lt;br /&gt;
                     } else {&lt;br /&gt;
                         input.special(instance,Dbf[1]);&lt;br /&gt;
                     }&lt;br /&gt;
                     break;&lt;br /&gt;
                 }&lt;br /&gt;
                 case processLinkIndex : output.init(instance); break;&lt;br /&gt;
                 default: printf(&amp;quot;Why is special being called?\n&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
         // Start of Callback methods&lt;br /&gt;
         public void done() {&lt;br /&gt;
             lock(instance);&lt;br /&gt;
             switch(mode) {&lt;br /&gt;
             case modeNone:&lt;br /&gt;
                  unlock(instance)&lt;br /&gt;
                  throw java.lang.IllegalStateException;&lt;br /&gt;
             case modeInput:&lt;br /&gt;
                 if(requestProcess) {&lt;br /&gt;
                     requestProcess = false;&lt;br /&gt;
                     DbAccess.process(instance);&lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
             case modeOutput:&lt;br /&gt;
                 output.numberLinksActive--;&lt;br /&gt;
                 if(output.numberLinksActive==0 &amp;amp;&amp;amp; requestProcess) {&lt;br /&gt;
                     requestProcess = false;&lt;br /&gt;
                     DbAccess.process(instance); &lt;br /&gt;
                 }&lt;br /&gt;
                 if(output.numberLinksActive==0 &amp;amp;&amp;amp; requestProcess)&lt;br /&gt;
                 break;&lt;br /&gt;
             }&lt;br /&gt;
             unlock(instance)&lt;br /&gt;
         }&lt;br /&gt;
         public void failure() { done(); }&lt;br /&gt;
&lt;br /&gt;
         // Start of Common methods&lt;br /&gt;
         bool setSeverity(AlarmSeverity severity, string status) {&lt;br /&gt;
             Alarm alarm = this.alarm;&lt;br /&gt;
             if(severity&amp;lt;= alarm.severity) return false;&lt;br /&gt;
             alarm.severity = severity;&lt;br /&gt;
             alarm.status = status;&lt;br /&gt;
             alarm.modifyingAlarm = true;&lt;br /&gt;
             alarm.alarmSeverity.putIndex(severity);&lt;br /&gt;
             alarm.alarmStatus.put(status);&lt;br /&gt;
             alarm.modifyingAlarm = false;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     // Definitions for modeInput&lt;br /&gt;
     class Input {&lt;br /&gt;
         DisableData disable;&lt;br /&gt;
         LinkSupport disableSupport;&lt;br /&gt;
         DbfInt16    disableInput;&lt;br /&gt;
         DbfInt16    disableValue;&lt;br /&gt;
         DbfInt16    alarmSeverity;&lt;br /&gt;
     &lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfLink link = recordAccess.getField(&amp;quot;disable.disableLink&amp;quot;);&lt;br /&gt;
             disableSupport = link.getSupport();&lt;br /&gt;
             DisplayLimitAccess.get(&lt;br /&gt;
                 recordAccess.getField(&amp;quot;disable&amp;quot;),disable);&lt;br /&gt;
             recordAccess.getField(&amp;quot;disable.disableInput&amp;quot;,disableInput);&lt;br /&gt;
         }&lt;br /&gt;
         void special(RecordInstance instance,Dbf field) {&lt;br /&gt;
             int16 index = Dbf.getIndex();&lt;br /&gt;
             switch(index) {&lt;br /&gt;
                 case disableValueIndex:&lt;br /&gt;
                     disableValue = ((DbfInt16)Dbf).get(); break;&lt;br /&gt;
                 case disableInputIndex:&lt;br /&gt;
                     disableInput = ((DbfInt16)Dbf).get(); break;&lt;br /&gt;
                 case disableAlarmSeverityIndex:&lt;br /&gt;
                     alarmSeverity = ((dbfMenu)Dbf).getIndex(); break;&lt;br /&gt;
                 case disableLinkIndex:&lt;br /&gt;
                     init(instance); break;&lt;br /&gt;
                 default:&lt;br /&gt;
                     throw java.lang.IllegalStateException;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     // Definitions for modeOutput&lt;br /&gt;
     class OutputLink {&lt;br /&gt;
         Link        link;&lt;br /&gt;
         LinkSupport support;&lt;br /&gt;
         void init(RecordInstance instance,String linkFieldName) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfLink link = recordAccess.getField(linkFieldName);&lt;br /&gt;
             support = link.getSupport();&lt;br /&gt;
         }&lt;br /&gt;
     };&lt;br /&gt;
     &lt;br /&gt;
     class Output {&lt;br /&gt;
         int          nextLink;&lt;br /&gt;
         int          numberLinksActive;&lt;br /&gt;
         OutputLink[] link;&lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfArray array = recordAccess.getField(&amp;quot;processLink&amp;quot;);&lt;br /&gt;
             int n = array.getNelements();&lt;br /&gt;
             link = new OutputLink[n];&lt;br /&gt;
             for(i=0; i&amp;lt; n; i++) {&lt;br /&gt;
                 String field = &amp;quot;processLink[&amp;quot; + &amp;quot;i&amp;quot; + &amp;quot;]&amp;quot;;&lt;br /&gt;
                 link[i].init(instance,field);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     // Definitions for alarm handling&lt;br /&gt;
     class Alarm {&lt;br /&gt;
         short severity;&lt;br /&gt;
         String status;&lt;br /&gt;
         DbfMenu alarmSeverity;&lt;br /&gt;
         DbfString alarmStatus;&lt;br /&gt;
         bool modifyingAlarm;&lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             alarmSeverity = recordAccess.getField(&amp;quot;alarmSeverity&amp;quot;);&lt;br /&gt;
             alarmStatus = recordAccess.getField(&amp;quot;alarmStatus&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
== Beginning of class definition ==&lt;br /&gt;
     enum Mode {modeNone,modeInput,modeOutput};&lt;br /&gt;
     &lt;br /&gt;
     public class RecordCommonSupport extends RecordSupport&lt;br /&gt;
     implements Callback, Common  {&lt;br /&gt;
         private RecordInstance instance;&lt;br /&gt;
         private Mode           mode;&lt;br /&gt;
         private Input          input;&lt;br /&gt;
         private Output         output;&lt;br /&gt;
         private Alarm          alarm;&lt;br /&gt;
         private bool           requestProcess;&lt;br /&gt;
     &lt;br /&gt;
         // Constructor&lt;br /&gt;
         public RecordCommonSupport(RecordInstance instance) {&lt;br /&gt;
             this.instance = instance;&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RecordCommonSupport implements the following interfaces:&lt;br /&gt;
; &amp;lt;tt&amp;gt;RecordSupport&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Record support for the fields in RecordCommon.&lt;br /&gt;
; &amp;lt;tt&amp;gt;Callback&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The callbacks called by link support&lt;br /&gt;
; &amp;lt;tt&amp;gt;Common&amp;lt;/tt&amp;gt;&lt;br /&gt;
: For now this just has the method &amp;lt;tt&amp;gt;setSeverity&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It has the following private fields:&lt;br /&gt;
* &amp;lt;tt&amp;gt;instance&amp;lt;/tt&amp;gt; -  The record instance to which it is attached. &amp;lt;tt&amp;gt;RecordCommonSupport&amp;lt;/tt&amp;gt; has a single constructor which is passed the &amp;lt;tt&amp;gt;RecordInstance&amp;lt;/tt&amp;gt; to which it is attached.&lt;br /&gt;
* &amp;lt;tt&amp;gt;mode&amp;lt;/tt&amp;gt; - This keeps the state for record processing:&lt;br /&gt;
** &amp;lt;tt&amp;gt;modeNone&amp;lt;/tt&amp;gt; - The record is not being processed.&lt;br /&gt;
** &amp;lt;tt&amp;gt;modeInput&amp;lt;/tt&amp;gt; - The disable link is active but not complete.&lt;br /&gt;
** &amp;lt;tt&amp;gt;modeOutput&amp;lt;/tt&amp;gt; - The processLinks are active but not complete.&lt;br /&gt;
* &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; - Input is a private class that provides access to the fields of disable.&lt;br /&gt;
* &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; - Output is a private class that provides access to processLink.&lt;br /&gt;
* &amp;lt;tt&amp;gt;alarm&amp;lt;/tt&amp;gt; - Alarm is a private class that provides access to fields alarmSeverity and alarmStatus.&lt;br /&gt;
* &amp;lt;tt&amp;gt;requestProcess&amp;lt;/tt&amp;gt; - This is used by callback to decide if a request should be made to process the record.&lt;br /&gt;
&lt;br /&gt;
Notes about &amp;lt;tt&amp;gt;Input&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Output&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;Alarm&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Each of these is a private class to RecordCommonSupport.&lt;br /&gt;
* Each makes fields available to RecordCommonSupport.&lt;br /&gt;
* Each has &amp;quot;introspection&amp;quot; code that gets the values of the private fields from RecordCommon fields during record initialization of if the an RecordCommon fields is changed via a call to &amp;lt;tt&amp;gt;Dbf.put&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*  The implementations of each of these private classes is given after the implementaion of RecordCommonSupport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== RecordSupport Methods ==&lt;br /&gt;
=== initialize ===&lt;br /&gt;
     &lt;br /&gt;
         public initialize(int pass) {&lt;br /&gt;
             if(pass==0) return;&lt;br /&gt;
             input.init(instance);&lt;br /&gt;
             output.init(instance);&lt;br /&gt;
             alarm.init(instance);&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
During the first pass of initialization, nothing needs to be done.&lt;br /&gt;
Before initialize is called on pass 1, iocInit has&lt;br /&gt;
already called link support so that it connects.&lt;br /&gt;
Initialize just calls its private class init methods. They get the&lt;br /&gt;
current values of their private fields.&lt;br /&gt;
&lt;br /&gt;
=== destroy ===&lt;br /&gt;
         public destroy() {} // destroy not needed for Java&lt;br /&gt;
&lt;br /&gt;
Since Java does garbage collection destroy is not needed.&lt;br /&gt;
Note that iocCore will call all the link support destroy methods.&lt;br /&gt;
&lt;br /&gt;
=== process ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;process&amp;lt;/tt&amp;gt; is called by dbProcess at the beginning of record processing&lt;br /&gt;
and after the record specific record support completes.&lt;br /&gt;
During the beginning of record processing&lt;br /&gt;
process takes care of field &amp;lt;tt&amp;gt;disable&amp;lt;/tt&amp;gt;&lt;br /&gt;
During the end of record processing process&lt;br /&gt;
takes care of field &amp;lt;tt&amp;gt;processLink&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A few features of &amp;lt;tt&amp;gt;process&amp;lt;/tt&amp;gt; are:&lt;br /&gt;
* implements a state machine that handles the links.&lt;br /&gt;
* interacts with Callback, which is called by link support when links complete.&lt;br /&gt;
* interacts with special, which is called when fields in RecordCommon are modified.&lt;br /&gt;
&lt;br /&gt;
         public processState process(processState state) {&lt;br /&gt;
             switch(state) {&lt;br /&gt;
             case processCancel: mode = modeNone; return processDone;&lt;br /&gt;
             case processStart: {&lt;br /&gt;
                 mode = modeInput;&lt;br /&gt;
                 requestProcess = false;&lt;br /&gt;
                 LinkWaitResult result = input.disableSupport.getWait(&lt;br /&gt;
                     input.disableInput,0.0,this);&lt;br /&gt;
                 if(result==linkNoop || result==linkDone) return processDone;&lt;br /&gt;
                 requestProcess = true;&lt;br /&gt;
             }&lt;br /&gt;
             // fall through to processInputActive&lt;br /&gt;
             case processInputActive: {&lt;br /&gt;
                 if(requestProcess) return processInputActive;&lt;br /&gt;
                 if(input.disable.disableValue == disable.disableInput)&lt;br /&gt;
                         return processDone;&lt;br /&gt;
                 return processActive;&lt;br /&gt;
             }&lt;br /&gt;
             case processDone: {&lt;br /&gt;
                 mode = modeOutput;&lt;br /&gt;
                 output.nextLink = 0;&lt;br /&gt;
                 output.numberLinksActive = 0;&lt;br /&gt;
                     &lt;br /&gt;
             }&lt;br /&gt;
             // fall through to processOutputActive&lt;br /&gt;
             case processOutputActive:&lt;br /&gt;
                 LinkWaitResult result = linkWaitParallel;&lt;br /&gt;
                 requestProcess = false;&lt;br /&gt;
                 while(output.nextLink&amp;lt; output.link.length) {&lt;br /&gt;
                     if(result==linkWaitSequential) break;&lt;br /&gt;
                     result = output.link[nextLink].support.processWait(0.0,this);&lt;br /&gt;
                     if(result==linkWaitSequential || result==linkWaitParallel)&lt;br /&gt;
                         output.numberLinksActive++&lt;br /&gt;
                     output.nextLink++;&lt;br /&gt;
                 }&lt;br /&gt;
                 if(output.numberLinksActive==0) {&lt;br /&gt;
                      mode = modeNone;&lt;br /&gt;
                      return processDone;&lt;br /&gt;
                 }&lt;br /&gt;
                 requestProcess = true;&lt;br /&gt;
                 return processOutputActive;&lt;br /&gt;
             default: throw java.lang.IllegalStateException;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
=== special ===&lt;br /&gt;
&amp;lt;tt&amp;gt;special&amp;lt;/tt&amp;gt; is called when any of the fields in &amp;lt;tt&amp;gt;disable&amp;lt;/tt&amp;gt;,&lt;br /&gt;
&amp;lt;tt&amp;gt;alarmStatus&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;alarmSeverity&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;processLink&amp;lt;/tt&amp;gt; are changed.&lt;br /&gt;
         public bool special(bool after,Dbf[] field) {&lt;br /&gt;
             int nlevels = field.length;&lt;br /&gt;
             assert(nlevels&amp;gt;0);&lt;br /&gt;
             if(index==alarmStatusIndex || index==alarmSeverityIndex) {&lt;br /&gt;
                  if(!alarm.modifyingAlarm) return false;&lt;br /&gt;
                  return true;&lt;br /&gt;
             }&lt;br /&gt;
             if(!after) return;&lt;br /&gt;
             switch(index) {&lt;br /&gt;
                 case disableIndex: {&lt;br /&gt;
                     if(nlevels==1) {&lt;br /&gt;
                         input.init(instance);&lt;br /&gt;
                     } else {&lt;br /&gt;
                         input.special(instance,Dbf[1]);&lt;br /&gt;
                     }&lt;br /&gt;
                     break;&lt;br /&gt;
                 }&lt;br /&gt;
                 case processLinkIndex : output.init(instance); break;&lt;br /&gt;
                 default: printf(&amp;quot;Why is special being called?\n&amp;quot;);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     &lt;br /&gt;
== Private Class Methods ==&lt;br /&gt;
=== Callback methods ===&lt;br /&gt;
These are the callback methods that are called by link support.&lt;br /&gt;
         // Start of Callback methods&lt;br /&gt;
         public void done() {&lt;br /&gt;
             lock(instance);&lt;br /&gt;
             switch(mode) {&lt;br /&gt;
             case modeNone:&lt;br /&gt;
                 unlock(instance);&lt;br /&gt;
                 throw java.lang.IllegalStateException;&lt;br /&gt;
             case modeInput:&lt;br /&gt;
                 if(requestProcess) {&lt;br /&gt;
                     requestProcess = false;&lt;br /&gt;
                     DbAccess.process(instance);&lt;br /&gt;
                 }&lt;br /&gt;
                 break;&lt;br /&gt;
             case modeOutput:&lt;br /&gt;
                 output.numberLinksActive--;&lt;br /&gt;
                 if(output.numberLinksActive==0 &amp;amp;&amp;amp; requestProcess) {&lt;br /&gt;
                     requestProcess = false;&lt;br /&gt;
                     DbAccess.process(instance); &lt;br /&gt;
                 }&lt;br /&gt;
                 return;&lt;br /&gt;
             }&lt;br /&gt;
             unlock(instance);&lt;br /&gt;
         }&lt;br /&gt;
         public void failure() { done(); }&lt;br /&gt;
     &lt;br /&gt;
=== Common methods ===&lt;br /&gt;
For now the only method is &amp;lt;tt&amp;gt;setSeverity,&amp;lt;/tt&amp;gt;&lt;br /&gt;
The only way code can change severity and status is to call this method.&lt;br /&gt;
&lt;br /&gt;
         // Start of Common methods&lt;br /&gt;
         bool setSeverity(AlarmSeverity severity, string status) {&lt;br /&gt;
             Alarm alarm = this.alarm;&lt;br /&gt;
             if(severity&amp;lt;= alarm.severity) return false;&lt;br /&gt;
             alarm.severity = severity;&lt;br /&gt;
             alarm.status = status;&lt;br /&gt;
             alarm.modifyingAlarm = true;&lt;br /&gt;
             alarm.alarmSeverity.putIndex(severity);&lt;br /&gt;
             alarm.alarmStatus.put(status);&lt;br /&gt;
             alarm.modifyingAlarm = false;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
=== Input ===&lt;br /&gt;
This is a private class for RecordCommonSupport.&lt;br /&gt;
It directly accesses the fields in this class.&lt;br /&gt;
The init and special methods are called to get values for the private fields.&lt;br /&gt;
     &lt;br /&gt;
     // Definitions for modeInput&lt;br /&gt;
     class Input {&lt;br /&gt;
         DisableData disable;&lt;br /&gt;
         LinkSupport disableSupport;&lt;br /&gt;
         DbfInt16    disableInput;&lt;br /&gt;
         DbfInt16    disableValue;&lt;br /&gt;
         DbfInt16    alarmSeverity;&lt;br /&gt;
     &lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfLink link = recordAccess.getField(&amp;quot;disable.disableLink&amp;quot;);&lt;br /&gt;
             disableSupport = link.getSupport();&lt;br /&gt;
             DisplayLimitAccess.get(&lt;br /&gt;
                 recordAccess.getField(&amp;quot;disable&amp;quot;),disable);&lt;br /&gt;
             recordAccess.getField(&amp;quot;disable.disableInput&amp;quot;,disableInput);&lt;br /&gt;
         }&lt;br /&gt;
         void special(RecordInstance instance,Dbf field) {&lt;br /&gt;
             int16 index = Dbf.getIndex();&lt;br /&gt;
             switch(index) {&lt;br /&gt;
                 case disableValueIndex:&lt;br /&gt;
                     disableValue = ((DbfInt16)Dbf).get(); break;&lt;br /&gt;
                 case disableInputIndex:&lt;br /&gt;
                     disableInput = ((DbfInt16)Dbf).get(); break;&lt;br /&gt;
                 case disableAlarmSeverityIndex:&lt;br /&gt;
                     alarmSeverity = ((dbfMenu)Dbf).getIndex(); break;&lt;br /&gt;
                 case disableLinkIndex:&lt;br /&gt;
                     init(instance); break;&lt;br /&gt;
                 default:&lt;br /&gt;
                     throw java.lang.IllegalStateException;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
&lt;br /&gt;
=== OutputLink and Output ===&lt;br /&gt;
Output is a private class for RecordCommonSupport.&lt;br /&gt;
It directly accesses the fields in this class.&lt;br /&gt;
The init  method is called to get values for the private fields.&lt;br /&gt;
OutputLink is used by Output.&lt;br /&gt;
&lt;br /&gt;
     // Definitions for modeOutput&lt;br /&gt;
     class OutputLink {&lt;br /&gt;
         Link        link;&lt;br /&gt;
         LinkSupport support;&lt;br /&gt;
         void init(RecordInstance instance,String linkFieldName) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfLink link = recordAccess.getField(linkFieldName);&lt;br /&gt;
             support = link.getSupport();&lt;br /&gt;
         }&lt;br /&gt;
     };&lt;br /&gt;
     &lt;br /&gt;
     class Output {&lt;br /&gt;
         int          nextLink;&lt;br /&gt;
         int          numberLinksActive;&lt;br /&gt;
         OutputLink[] link;&lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             DbfArray array = recordAccess.getField(&amp;quot;processLink&amp;quot;);&lt;br /&gt;
             int n = array.getNelements();&lt;br /&gt;
             link = new OutputLink[n];&lt;br /&gt;
             for(i=0; i&amp;lt; n; i++) {&lt;br /&gt;
                 String field = &amp;quot;processLink[&amp;quot; + &amp;quot;i&amp;quot; + &amp;quot;]&amp;quot;;&lt;br /&gt;
                 link[i].init(instance,field);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
=== Alarm ===&lt;br /&gt;
This is a private class for RecordCommonSupport.&lt;br /&gt;
It directly accesses the fields in this class.&lt;br /&gt;
The init method is called to get values for the private fields.&lt;br /&gt;
&lt;br /&gt;
     // Definitions for alarm handling&lt;br /&gt;
     class Alarm {&lt;br /&gt;
         short severity;&lt;br /&gt;
         String status;&lt;br /&gt;
         DbfMenu alarmSeverity;&lt;br /&gt;
         DbfString alarmStatus;&lt;br /&gt;
         bool modifyingAlarm;&lt;br /&gt;
         void init(RecordInstance instance) {&lt;br /&gt;
             RecordAccess recordAccess = instance.getRecordCommonAccess();&lt;br /&gt;
             alarmSeverity = recordAccess.getField(&amp;quot;alarmSeverity&amp;quot;);&lt;br /&gt;
             alarmStatus = recordAccess.getField(&amp;quot;alarmStatus&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
== RecordCommonSupportFactory ==&lt;br /&gt;
This is the factory for creating an RecordCommonSupport.&lt;br /&gt;
It is called by dbLoadRecords.&lt;br /&gt;
&lt;br /&gt;
     public class RecordCommonSupportFactory implements RecordSupportFactory{&lt;br /&gt;
         RecordSupport create(RecordInstance instance) {&lt;br /&gt;
             return new RecordCommonSupport(instance);&lt;br /&gt;
         }&lt;br /&gt;
         void destroy(RecordSupport support) {&lt;br /&gt;
             RecordCommonSupport RecordCommonSupport = support;&lt;br /&gt;
             RecordCommonSupport.destroy();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
     public final class RecordCommonSupportFactoryRegister {&lt;br /&gt;
         static public createAndRegister() {&lt;br /&gt;
             RecordCommonSupportFactory factory = new RecordCommonSupportFactory;&lt;br /&gt;
             RegisterSupport.record(factory,&amp;quot;RecordCommon&amp;quot;);&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Question&amp;lt;/b&amp;gt;&lt;br /&gt;
Who calls RecordCommonSupportFactoryRegister.createAndRegister?&lt;/div&gt;</summary>
		<author><name>MartyKraimer</name></author>
	</entry>
</feed>