WorkflowModule.java
package io.vanillabp.integration.runtime.workflowmodule;
import java.net.URI;
import java.util.Objects;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* Meta-data of a workflow module
*/
@Builder
@Getter
@Setter(AccessLevel.PACKAGE) // needed for object-serialization
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PACKAGE) // needed for object-serialization
public class WorkflowModule {
/**
* The location of workflow module descriptor files.
*/
public static final String METAINF_WORKFLOWMODULE = "META-INF/workflow-module";
/**
* The ID of the workflow module
*/
private String id;
/**
* The URI of the workflow module descriptor file.
*/
private URI sourceUri;
/**
* Whether it is a global workflow module. Global means one workflow module for the entire application.
* Non-global means one Maven/Gradle module for each workflow module.
*/
private boolean global;
/**
* Equal check, based on the workflow module's ID.
*
* @param o The other object
* @return True if equal
*/
@Override
public boolean equals(
final Object o) {
if (o == null || getClass() != o.getClass()) return false;
WorkflowModule that = (WorkflowModule) o;
return Objects.equals(id, that.id);
}
/**
* @return The hash code based on the workflow module's ID
*/
@Override
public int hashCode() {
return Objects.hashCode(id);
}
}