001package co.codewizards.cloudstore.local.persistence; 002 003import java.util.ServiceLoader; 004 005import javax.jdo.PersistenceManager; 006import javax.jdo.annotations.PersistenceCapable; 007 008/** 009 * {@code CloudStorePersistenceCapableClassesProvider} implementations make persistence-capable classes known 010 * to the {@code LocalRepoManagerImpl}'s {@link PersistenceManager}. 011 * <p> 012 * Implementation classes are registered using the {@link ServiceLoader}. 013 * <p> 014 * <b>Important:</b> Implementors should subclass {@link AbstractCloudStorePersistenceCapableClassesProvider} instead 015 * of directly implementing this interface! 016 * @author Marco หงุ่ยตระกูล-Schulze - marco at codewizards dot co 017 */ 018public interface CloudStorePersistenceCapableClassesProvider { 019 /** 020 * Gets the {@linkplain PersistenceCapable persistence-capable} classes. 021 * <p> 022 * The classes returned here are combined with all other providers' results. 023 * @return the {@linkplain PersistenceCapable persistence-capable} classes. May be <code>null</code>, 024 * which is equivalent to an empty array. 025 */ 026 Class<?>[] getPersistenceCapableClasses(); 027}