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

com.github.nill14.parsers.dependency.IDependencyDescriptorBuilder Maven / Gradle / Ivy

Go to download

Implementation of directed acyclic graph along with some graph algorithms and dependency management.

The newest version!
package com.github.nill14.parsers.dependency;


public interface IDependencyDescriptorBuilder {

	/**
	 * consumes, dependsOn 
	 * @param dependency a service provider 
	 * @return self
	 */
	IDependencyDescriptorBuilder uses(K dependency);

	/**
	 * consumes, dependsOn (optionally)
	 * @param dependency a service provider 
	 * @return self
	 */
	IDependencyDescriptorBuilder usesOptionally(K dependency);

	/**
	 * provides or isPrerequisiteOf
	 * @param service a service provider 
	 * @return self
	 */
	IDependencyDescriptorBuilder provides(K service);

	/**
	 * Module priority lifts up the module in execution order
	 * as long as dependencies are satisfied.
	 * Typical use case might be a splash screen or a logging provider (if not captured by dependencies).
	 * Rating is calculated as maximum of either module priority 
	 * or maximum of path cost and successor priority.
	 * Predecessors (dependencies) have always higher execution rating than this module.
	 * 
	 * @param priority the module priority (0..100000)
	 * @return self
	 */
	IDependencyDescriptorBuilder executionPriority(int priority);
	
	IDependencyDescriptor build();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy