All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.main.java.com.mgnt.lifecycle.management.backgroundrunner.BackgroundRunnable Maven / Gradle / Ivy

Go to download

Set of various Utils: stacktrace noise filter, String to/from unicode sequence converter, simple Http client JSON parser/serializer, Silent String parsing to Integer and other numeric types, Parsing String to time intervals with support for time unit suffixes, JSON parser that provides serialization/deserialization of classes to JSON, Version comparator and Version ranges operations, Self-throttling binary reader from Http request, File reader, A utility that automatically initiates a Factory with instances of all classes that implement user provided interface. An infrastructure for writing Scheduled Task classes where time interval for task execution is provided in humanly readable format (such as "9h" for 9 hours)

There is a newer version: 1.7.0.1
Show newest version
package com.mgnt.lifecycle.management.backgroundrunner;

import com.mgnt.utils.entities.TimeInterval;

/**
 * This is the interface that a user periodically executed Task class must implement. This is done when user defined
 * class extends {@link BaseBackgroundRunnable} class. Please see the source code in package
 * {@code com.mgnt.lifecycle.management.backgroundrunner.example} that demonstrates the usage of this framework
 */
public interface BackgroundRunnable extends Runnable {

    /**
     *
     * @return {@link TimeInterval} that specifies how often the Task should be run
     */
    TimeInterval getTaskExecutionInterval();

    /**
     * This is internally implemented method (in class {@link BaseBackgroundRunnable}) it allows to initialize
     * other properties of type {@link TimeInterval} If such properties exist then the user will need to override
     * method {@link #setParamValue(TimeInterval, String)} so it will know what setter method to invoke based on
     * propertyName parameter. See the source code for class
     * com.mgnt.lifecycle.management.backgroundrunner.example.TypeOneTask that demonstrates this feature
     * @param valueStr String that contains a Time interval value such as "9h", "3m", "10s" etc
     * @param defaultValue {@link TimeInterval} that holds a default value for the property should parsing of valueStr
     * parameter fails
     * @param propertyName The name of the property to be set
     */
    void initTimeIntervalParam(String valueStr, TimeInterval defaultValue, String propertyName);

    /**
     * This method is a general setter method for all properties that hold {@link TimeInterval} value. It should be
     * implemented by user defined class implementing this interface. See source code for classes
     * {@link com.mgnt.lifecycle.management.backgroundrunner.example.TypeOneTask} and
     * {@link com.mgnt.lifecycle.management.backgroundrunner.example.TypeTwoTask} where one provide complex example
     * in which there are other properties besides Task Execution Interval and second that demonstrates a minimalistic
     * implementation
     * @param value {@link TimeInterval} value for the property
     * @param property name of the property to be set
     */
    void setParamValue(TimeInterval value, String property);

    /**
     * internally used method
     * @return
     */
    boolean isInitialized();

    /**
     * internally used method
     * @param initialized
     */
    void setInitialized(boolean initialized);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy