'Returns OID of structural object class in object_class_list
if any is present. Returns None else.'

def get_structural_oc(self, oc_list):

    oc_tree = self.tree(ObjectClass, [('kind', [0])])
    struct_ocs = {}
    for oc_nameoroid in oc_list:
        oc_se = self.get_obj(ObjectClass, oc_nameoroid, None)
        if (oc_se and (oc_se.kind == 0)):
            struct_ocs[oc_se.oid] = None
    result = None
    struct_oc_list = struct_ocs.keys()
    while struct_oc_list:
        oid = struct_oc_list.pop()
        for child_oid in oc_tree[oid]:
            if struct_ocs.has_key(self.getoid(ObjectClass, child_oid)):
                break
        else:
            result = oid
    return result
