Some bugfixes

Former-commit-id: 5dd6009aef
pull/7/head
Jens Pelzetter 2020-12-03 20:27:16 +01:00
parent 7e760cc9d0
commit 96163f44fc
2 changed files with 60 additions and 39 deletions

View File

@ -254,16 +254,12 @@ final class EntityImExporterTreeManager {
//Check if the nodes list has an entry for the required module.
if (!nodes.containsKey(requiredClass.getName())) {
LOGGER.fatal("Required EntityImExporter for \"{}\" no found.",
requiredClass.getName());
throw new DependencyException(String.format(
"EntityImExporter for type \"%s\" depends on type \"%s\" "
+ "but no EntityImExporter for type \"%s\" is available.",
node
.getEntityImExporter()
.getClass()
.getAnnotation(Processes.class).value().getName(),
node.getEntityImExporter().getEntityClass(),
requiredClass.getName(),
requiredClass.getName()));
}

View File

@ -22,92 +22,94 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* A node in the dependency tree managed by {@link EntityImExporterTreeManager}.
*
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
final class EntityImExporterTreeNode {
private AbstractEntityImExporter<?> entityImExporter;
private List<EntityImExporterTreeNode> dependentImExporters;
private List<EntityImExporterTreeNode> dependsOn;
public EntityImExporterTreeNode() {
super();
dependentImExporters = new ArrayList<>();
dependsOn = new ArrayList<>();
}
public EntityImExporterTreeNode(
final AbstractEntityImExporter<?> entityImExporter) {
this();
this.entityImExporter = entityImExporter;
}
public AbstractEntityImExporter<?> getEntityImExporter() {
return entityImExporter;
}
void setEntityImExporter(
final AbstractEntityImExporter<?> entityImExporter) {
this.entityImExporter = entityImExporter;
}
public List<EntityImExporterTreeNode> getDependentImExporters() {
return Collections.unmodifiableList(dependentImExporters);
}
void setDependentImExporters(
final List<EntityImExporterTreeNode> dependentImExporters) {
this.dependentImExporters = new ArrayList<>(dependentImExporters);
}
void addDependentImExporter(final EntityImExporterTreeNode node) {
dependentImExporters.add(node);
}
void removeDependentImExporter(final EntityImExporterTreeNode node) {
dependentImExporters.remove(node);
}
public List<EntityImExporterTreeNode> getDependsOn() {
return Collections.unmodifiableList(dependsOn);
}
void setDependsOn(final List<EntityImExporterTreeNode> dependsOn) {
this.dependsOn = new ArrayList<>(dependsOn);
}
void addDependsOn(final EntityImExporterTreeNode node) {
dependsOn.add(node);
}
void removeDependsOn(final EntityImExporterTreeNode node) {
dependsOn.remove(node);
}
@Override
public int hashCode() {
int hash = 7;
hash = 47
* hash
+ Objects.hashCode(this.entityImExporter.getClass().getName());
hash = 47
* hash
+ Objects
.hashCode(this.entityImExporter.getClass().getName());
return hash;
}
@ -127,7 +129,30 @@ final class EntityImExporterTreeNode {
this.entityImExporter.getClass().getName(),
other.getEntityImExporter().getClass().getName());
}
@Override
public String toString() {
return String.format(
"%s{ "
+ "entityImExporter: %s, "
+ "dependentImExporters: [%s], "
+ "dependsOn: [%s]"
+ " }",
super.toString(),
entityImExporter.getEntityClass().toString(),
dependentImExporters
.stream()
.map(EntityImExporterTreeNode::getEntityImExporter)
.map(AbstractEntityImExporter::getEntityClass)
.map(Class::getName)
.collect(Collectors.joining(", ")),
dependsOn
.stream()
.map(EntityImExporterTreeNode::getEntityImExporter)
.map(AbstractEntityImExporter::getEntityClass)
.map(Class::getName)
.collect(Collectors.joining(", "))
);
}
}