class DataSet extends BaseDimensionalItemObject implements VersionedObject, MetadataObject, InterpretableObject {

    public void updateOrganisationUnits( Set<OrganisationUnit> updates )
    {
        Set<OrganisationUnit> toRemove = Sets.difference( sources, updates );
        Set<OrganisationUnit> toAdd = Sets.difference( updates, sources );

        toRemove.forEach( u -> u.getDataSets().remove( this ) );
        toAdd.forEach( u -> u.getDataSets().add( this ) );

        sources.clear();
        sources.addAll( updates );
    }

    public  DataSet();
    public  DataSet( String name );
    public  DataSet( String name, PeriodType periodType );
    public  DataSet( String name, String shortName, PeriodType periodType );
    public  DataSet( String name, String shortName, String code, PeriodType periodType );

}