ArchitectureArtifactLoss.java
package com.taxonomy.export.artifact;
import java.util.Objects;
/** One stable, machine-readable disposition of source architecture information. */
public record ArchitectureArtifactLoss(
String code,
String sourcePath,
Disposition disposition,
String detail) implements Comparable<ArchitectureArtifactLoss> {
public ArchitectureArtifactLoss {
code = ArchitectureArtifactText.requireSafeText(code, "code");
sourcePath = ArchitectureArtifactText.requireSafeText(
sourcePath,
"sourcePath");
disposition = Objects.requireNonNull(disposition, "disposition");
detail = ArchitectureArtifactText.requireSafeText(detail, "detail");
}
@Override
public int compareTo(ArchitectureArtifactLoss other) {
int byCode = code.compareTo(other.code);
if (byCode != 0) {
return byCode;
}
int byPath = sourcePath.compareTo(other.sourcePath);
if (byPath != 0) {
return byPath;
}
int byDisposition = disposition.name().compareTo(
other.disposition.name());
if (byDisposition != 0) {
return byDisposition;
}
return detail.compareTo(other.detail);
}
public enum Disposition {
PRESERVED,
MAPPED,
REGENERATED,
VISUAL_ONLY,
OMITTED
}
}