'We\'re going to need to make message parameters too.'

@staticmethod
def make_field_objects(field_data, names):

    field_objects = []
    field_names = []
    for (i, field) in enumerate(field_data):
        if (hasattr(field, 'get') and callable(field.get)):
            type = field.get('type')
            name = field.get('name')
            has_default = False
            default = None
            if field.has_key('default'):
                has_default = True
                default = field.get('default')
            order = field.get('order')
            doc = field.get('doc')
            other_props = get_other_props(field, FIELD_RESERVED_PROPS)
            new_field = Field(type, name, has_default, default, order, names, doc, other_props)
            if (new_field.name in field_names):
                fail_msg = ('Field    name    %s    already    in    use.' % new_field.name)
                raise SchemaParseException(fail_msg)
            field_names.append(new_field.name)
        else:
            raise SchemaParseException(('Not    a    valid    field:    %s' % field))
        field_objects.append(new_field)
    return field_objects
