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

org.meridor.stecker.PluginMetadata Maven / Gradle / Ivy

Go to download

This is a plugin loading library. Its main purpose is to load extension point implementations from provided plugins.

There is a newer version: 1.0.2
Show newest version
package org.meridor.stecker;

import org.meridor.stecker.interfaces.Dependency;

import java.nio.file.Path;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Optional;

/**
 * Stores metadata of a single plugin
 */
public interface PluginMetadata {

    /**
     * Returns unique plugin name
     *
     * @return free-form string with name
     */
    String getName();

    /**
     * Returns plugin version
     *
     * @return free-form string with version
     */
    String getVersion();

    /**
     * Returns {@link Path} object corresponding to plugin file
     *
     * @return plugin {@link Path} object
     */
    Path getPath();

    /**
     * Returns {@link org.meridor.stecker.interfaces.Dependency} object corresponding to this plugin
     *
     * @return dependency object
     */
    Dependency getDependency();

    /**
     * Returns date when plugin was released
     *
     * @return local date or empty if not set
     */
    Optional getDate();

    /**
     * Returns detailed plugin description
     *
     * @return description or empty if not set
     */
    Optional getDescription();

    /**
     * Returns maintainer email and name
     *
     * @return email and name in the format: John Smith <[email protected]> or empty if not set
     */
    Optional getMaintainer();

    /**
     * Returns a list of plugins required to make this plugin work
     *
     * @return possibly empty list with dependencies
     */
    List getRequiredDependencies();

    /**
     * Returns a list of plugins that should be never installed simultaneously with this plugin
     *
     * @return possibly empty list with conflicting dependencies
     */
    List getConflictingDependencies();

    /**
     * Returns a meta dependency which is provided by this plugin
     *
     * @return meta dependency or empty if not set
     */
    Optional getProvidedDependency();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy