class RelationDataReferenceProvider implements DataReferenceProvider {
    private final ReactiveRepository<RelatedEntity, String> reletedRepository;

    public RelationDataReferenceProvider(ReactiveRepository<RelatedEntity, String> reletedRepository) {
        this.reletedRepository = reletedRepository;
    }


    @Override
    public String getId() {
        return DataReferenceManager.TYPE_RELATION;
    }

    @Override
    public Flux<DataReferenceInfo> getReference(String relation) {
        return reletedRepository
            .createQuery()
            .where(RelatedEntity::getRelation, relation)
            .fetch()
            .map(e -> DataReferenceInfo.of(e.getId(), getId(), e.getRelation(), e.getRelatedName()));
    }

    @Override
    public Flux<DataReferenceInfo> getReferences() {<FILL_FUNCTION_BODY>}
}

        return reletedRepository
            .createQuery()
            .where()
            .notNull(RelatedEntity::getRelation)
            .fetch()
            .map(e -> DataReferenceInfo.of(e.getId(), getId(), e.getRelation(), e.getRelatedName()));
    
<no_super_class>