def METHOD_NAME(group):
    """Generate angle-energy distribution from HDF5 data
    Parameters
    ----------
    group : h5py.Group
        HDF5 group to read from
    Returns
    -------
    openmc.data.AngleEnergy
        Angle-energy distribution
    """
    dist_type = group.attrs['type'].decode()
    if dist_type == 'uncorrelated':
        return openmc.data.UncorrelatedAngleEnergy.METHOD_NAME(group)
    elif dist_type == 'correlated':
        return openmc.data.CorrelatedAngleEnergy.METHOD_NAME(group)
    elif dist_type == 'kalbach-mann':
        return openmc.data.KalbachMann.METHOD_NAME(group)
    elif dist_type == 'nbody':
        return openmc.data.NBodyPhaseSpace.METHOD_NAME(group)
    elif dist_type == 'coherent_elastic':
        return openmc.data.CoherentElasticAE.METHOD_NAME(group)
    elif dist_type == 'incoherent_elastic':
        return openmc.data.IncoherentElasticAE.METHOD_NAME(group)
    elif dist_type == 'incoherent_elastic_discrete':
        return openmc.data.IncoherentElasticAEDiscrete.METHOD_NAME(group)
    elif dist_type == 'incoherent_inelastic_discrete':
        return openmc.data.IncoherentInelasticAEDiscrete.METHOD_NAME(group)
    elif dist_type == 'incoherent_inelastic':
        return openmc.data.IncoherentInelasticAE.METHOD_NAME(group)
    elif dist_type == 'mixed_elastic':
        return openmc.data.MixedElasticAE.METHOD_NAME(group)