
org.meridor.stecker.PluginMetadata Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stecker-plugin-loader Show documentation
Show all versions of stecker-plugin-loader Show documentation
This is a plugin loading library. Its main purpose is to load extension point implementations from
provided plugins.
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