package jeffaschenk.commons.system.internal.file.services; import jeffaschenk.commons.system.internal.file.services.extract.ExtractLifecyclePostProcessing; import jeffaschenk.commons.system.internal.file.services.extract.ExtractLifecyclePreProcessing; import jeffaschenk.commons.system.internal.file.services.extract.ExtractLifecycleUpdateDetermination; import jeffaschenk.commons.touchpoint.model.RootElement; import java.io.File; /** * Utility Service Interface * <p/> * Provides Common utility Services to Application Framework. * * @author jeffaschenk@gmail.com * */ public interface UtilityService { /** * Obtain the Class for the specified Extract File Name. * * @param extractFileName * @return Class<? extends RootElement> */ public Class<? extends RootElement> getClassBasedOnExtractFilename(final String extractFileName); /** * Obtain the Default Class * * @return Class<? extends RootElement> */ public Class<? extends RootElement> getDefaultClassInstance(); /** * Provides Indication if File Zone Directory is valid or not. * * @param zoneDirectory * @return boolean */ public boolean isZoneDirectoryValid(File zoneDirectory); /** * Utility Service to lookup and provide associated Update Module Class * per specified Extract Entity Name. * <p/> * Yes, there is order in the world! * * @param extractEntityClassName * @return ExtractLifecycleUpdateDetermination */ public ExtractLifecyclePreProcessing getBeanBasedOnExtractEntityClassNameForPreProcessing(final String extractEntityClassName); /** * Utility Service to lookup and provide associated Update Module Class * per specified Extract Entity Name. * <p/> * Yes, there is order in the world! * * @param extractEntityClassName * @return ExtractLifecycleUpdateDetermination */ public ExtractLifecycleUpdateDetermination getBeanBasedOnExtractEntityClassNameForUpdateDetermination(final String extractEntityClassName); /** * Utility Service to lookup and provide associated Update Module Class * per specified Extract Entity Name. * <p/> * Yes, there is order in the world! * * @param extractEntityClassName * @return ExtractLifecycleUpdateDetermination */ public ExtractLifecyclePostProcessing getBeanBasedOnExtractEntityClassNameForPostProcessing(final String extractEntityClassName); }