001package co.codewizards.cloudstore.core.dto.jaxb; 002 003import java.util.ServiceLoader; 004 005import javax.xml.bind.JAXBContext; 006 007/** 008 * {@code CloudStoreJaxbContextProvider} implementations populate the {@link CloudStoreJaxbContext}. 009 * <p> 010 * Implementation classes are registered using the {@link ServiceLoader}. 011 * <p> 012 * <b>Important:</b> Implementors should subclass {@link AbstractCloudStoreJaxbContextProvider} instead 013 * of directly implementing this interface! 014 * @author Marco หงุ่ยตระกูล-Schulze - marco at codewizards dot co 015 */ 016public interface CloudStoreJaxbContextProvider { 017 /** 018 * Gets the classes to be bound in the {@link CloudStoreJaxbContext}. 019 * <p> 020 * The classes returned here are combined with all other providers' results and then passed 021 * to {@link JAXBContext#newInstance(Class[])}. 022 * @return the classes to be bound in the {@link CloudStoreJaxbContext}. May be <code>null</code>, 023 * which is equivalent to an empty array. 024 */ 025 Class<?>[] getClassesToBeBound(); 026}