Package io.didomi.sdk

Class VendorRepository


  • public class VendorRepository
    extends java.lang.Object
    Purposes and vendors repository This class manages the purposes and vendors loaded by the SDK
    • Constructor Detail

      • VendorRepository

        public VendorRepository​(ConfigurationRepository configurationRepository,
                                io.didomi.sdk.resources.LanguagesHelper languagesHelper)
        Create a VendorRepository and initialize the required vendors and purposes from configuration
        Parameters:
        configurationRepository - initialized configuration
        languagesHelper - languageHelper
    • Method Detail

      • updateTranslations

        public void updateTranslations​(io.didomi.sdk.resources.LanguagesHelper languagesHelper)
        Update translations, for example after language was changed. Currently only custom purposes are updated.
        Parameters:
        languagesHelper - the updated languageHelper
      • getPublisherRestrictions

        @NotNull
        public java.util.List<io.didomi.sdk.publisherrestrictions.PublisherRestriction> getPublisherRestrictions()
        Get the list of publisher restrictions
        Returns:
        the list of valid publisher restrictions from config
      • getPurposes

        public java.util.Map<java.lang.String,​Purpose> getPurposes()
        Get all purposes defined in the config
        Returns:
        list of purposes
      • getPurposesByID

        public java.util.Set<Purpose> getPurposesByID​(java.util.Set<java.lang.String> purposeIds)
        Get purposes from a set of purpose IDs
        Parameters:
        purposeIds -
        Returns:
      • getPurposeByIabId

        public Purpose getPurposeByIabId​(java.lang.String iabId)
        Get purpose with specified IAB id
        Parameters:
        iabId - requested IAB id
        Returns:
        the purpose, or null
      • getVendorsByID

        public java.util.Set<Vendor> getVendorsByID​(java.util.Set<java.lang.String> vendorIds)
        Get vendors from a set of vendor IDs
        Parameters:
        vendorIds -
        Returns:
      • getVendors

        public java.util.Map<java.lang.String,​Vendor> getVendors()
      • getVendor

        public Vendor getVendor​(java.lang.String id)
        Get a vendor by ID
        Parameters:
        id - vendor id or corresponding IAB vendor id
        Returns:
        Vendor or null
      • getPurpose

        public Purpose getPurpose​(java.lang.String id)
        Get a purpose by ID
        Parameters:
        id -
        Returns:
        Purpose or null
      • getSpecialPurpose

        public io.didomi.sdk.models.SpecialPurpose getSpecialPurpose​(java.lang.String id)
        Get a special purpose by ID
        Parameters:
        id -
        Returns:
      • getRequiredSpecialPurposeIds

        public java.util.Set<java.lang.String> getRequiredSpecialPurposeIds()
        Get IDs of required special purposes
        Returns:
      • getRequiredSpecialPurposes

        public java.util.Set<io.didomi.sdk.models.SpecialPurpose> getRequiredSpecialPurposes()
        Get required special purposes
        Returns:
      • getFeature

        public io.didomi.sdk.models.Feature getFeature​(java.lang.String id)
        Get a feature by ID
        Parameters:
        id -
        Returns:
      • getRequiredFeatureIds

        public java.util.Set<java.lang.String> getRequiredFeatureIds()
        Get IDs of required features
        Returns:
      • getRequiredFeatures

        public java.util.Set<io.didomi.sdk.models.Feature> getRequiredFeatures()
        Get required features
        Returns:
      • getAllRequiredVendors

        public java.util.Set<Vendor> getAllRequiredVendors()
        Get the required vendors from the config
        Returns:
        set of vendors
      • getAllRequiredVendorsIds

        public java.util.Set<java.lang.String> getAllRequiredVendorsIds()
        Get ids of the required vendors from the config
        Returns:
        set of ids
      • getVendorIDsWithEssentialPurposesOnly

        public java.util.Set<java.lang.String> getVendorIDsWithEssentialPurposesOnly()
        Get Vendor IDs with essential purposes only.
        Returns:
        set of ids
      • getVendorIDsWithNoConsentNorLIPurposes

        public java.util.Set<java.lang.String> getVendorIDsWithNoConsentNorLIPurposes()
        Get Vendor IDs with no associated consent or LI purposes.
        Returns:
        set of ids
      • getRequiredVendorsConsent

        public java.util.Set<Vendor> getRequiredVendorsConsent()
        Get vendors for which consent is required from the config
        Returns:
        set of vendors
      • getRequiredVendorConsentIds

        public java.util.Set<java.lang.String> getRequiredVendorConsentIds()
        Get the id of vendors for which consent is required from the config
        Returns:
        set of ids
      • getRequiredVendorsLegInt

        public java.util.Set<Vendor> getRequiredVendorsLegInt()
        Get vendors for which legitimate interest is required from the config
        Returns:
        set of vendors
      • getRequiredVendorLegIntIds

        public java.util.Set<java.lang.String> getRequiredVendorLegIntIds()
        Get the id of vendors for which legitimate interest is required from the config
        Returns:
        set of ids
      • getRequiredPurposesConsent

        public java.util.Set<Purpose> getRequiredPurposesConsent()
        Get purposes for which consent is required from the config
        Returns:
        set of purposes
      • getRequiredPurposesConsentIds

        public java.util.Set<java.lang.String> getRequiredPurposesConsentIds()
        Get the id of purposes for which consent is required from the config
        Returns:
        set of purposes
      • getRequiredPurposesLegInt

        public java.util.Set<Purpose> getRequiredPurposesLegInt()
        Get purposes for which legitimate interest is required from the config
        Returns:
        set of purposes
      • getRequiredPurposeLegIntIds

        public java.util.Set<java.lang.String> getRequiredPurposeLegIntIds()
        Get the id of purposes for which legitimate interest is required from the config
        Returns:
        set of ids
      • getRequiredPurposes

        @NonNull
        public java.util.Set<Purpose> getRequiredPurposes()
        Get the required purposes from the config
        Returns:
      • getRequiredPurposeIds

        public java.util.Set<java.lang.String> getRequiredPurposeIds()
        Get the required purpose IDs from the config
        Returns:
      • getRequiredAdditionalDataProcessing

        public java.util.Set<io.didomi.sdk.models.DataProcessing> getRequiredAdditionalDataProcessing()
        Get the required additional data processing (special purposes and features)
        Returns:
      • getRequiredAdditionalDataProcessing

        public java.util.Set<io.didomi.sdk.models.DataProcessing> getRequiredAdditionalDataProcessing​(Vendor vendor)
        Get the required additional data processing (special purposes and features) for a vendor
        Returns:
      • getEssentialPurposes

        public java.util.Set<Purpose> getEssentialPurposes​(Vendor vendor)
        Get the essential purposes for a vendor
        Parameters:
        vendor - a vendor
        Returns:
        list of essential purposes for this vendor
      • getSpecialFeatureFromIABID

        public Purpose getSpecialFeatureFromIABID​(java.lang.String id)
        Get special feature from its IAB ID
        Parameters:
        id -
        Returns:
      • updateEssentialPurposes

        public void updateEssentialPurposes​(java.util.Set<Purpose> essentialPurposes)
        Perform changes to handle essential purposes list. Purposes will be flagged as essential, and vendors using these purposes as consent or LI will be updated.
        Parameters:
        essentialPurposes - List of essential purposes