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