I apologize for the somewhat incoherent question I originally posted. It was late :-)
My component allows for new fields to be defined by the end-user for any object that supports it within the component.
I accomplished this by subclassing JModelAdmin, and making all of my models inherit from my new base admin model. Within this class, I override the 'preprocessForm' method that is called by the MVC framework and add the custom fields into the form. It's working great, except I'm curious if there is a better way of doing it.
Here's a snippet from that method. This block of code is looping over all custom fields that are configured for the object. What seems a bit kludgy is how I have to create an XML representation of the fields and then shove them into the form with the ->setField(..) call. It seems that you should be able to use the JField objects and add them to the form.
// this defines how the field will be rendered.
$fieldType = 'inputbox';
$fieldOptions = '';
$fieldFormat = '';
switch ($field->typecode)
{
case 'BIT':
$fieldType = 'radio';
$fieldOptions = '<option value="0">JNO</option><option value="1">JYES</option>';
break;
case 'TEXT':
$fieldType = 'textarea';
break;
case 'DATE':
$fieldType = 'calendar';
break;
case 'DATETIME':
$fieldType = 'calendar';
$fieldFormat = 'format="%Y-%m-%d %H:%M:%S"';
break;
}
$xml = sprintf('<fieldset name="udf"><field type="%s" name="udfId%d" label="%s" description="%s" %s>%s</field></fieldset>'
, $fieldType
, $field->id
, htmlspecialchars($field->code)
, htmlspecialchars($field->description)
, $fieldFormat
, $fieldOptions);
// this assigns the stored UDF data into the data that is bound to the form
$data->{'udfId'.$field->id} = $field->data;
$xmlElement = new SimpleXMLElement($xml);
$form->setField($xmlElement);