'Check that all required (combinations) of fields are set.
Also fills in computed properties.
Raises:
InvalidConfiguration: if the config is invalid.'

def CheckInitialized(self):

    if ((not self.kind) and (not self.model)):
        raise bulkloader_errors.InvalidConfiguration('Neither    kind    nor    model    specified    for    transformer.')
    if (self.kind and self.model):
        raise bulkloader_errors.InvalidConfiguration('Both    kind    and    model    specified    for    transformer.')
    if self.model:
        self.kind = self.model.method.kind()
    elif self.use_model_on_export:
        raise bulkloader_errors.InvalidConfiguration('No    model    class    specified    but    use_model_on_export    is    true.')
    if (not self.name):
        self.name = self.kind
    if (not self.connector):
        raise bulkloader_errors.InvalidConfiguration('No    connector    specified.')
    property_names = set()
    for prop in self.property_map:
        if (prop.property in property_names):
            raise bulkloader_errors.InvalidConfiguration(('Duplicate    property    specified    for    property    %s    in    transform    %s' % (prop.property, self.name)))
        property_names.add(prop.property)
