2026-03-24 13:42:45 +00:00

33 lines
1.3 KiB
Java

package p.packer.dtos;
import p.packer.messages.AssetReference;
import p.packer.messages.assets.AssetFamilyCatalog;
import p.packer.messages.assets.PackerAssetState;
import p.packer.messages.assets.PackerBuildParticipation;
import java.util.Objects;
public record PackerAssetSummaryDTO(
AssetReference assetReference,
PackerAssetIdentityDTO identity,
PackerAssetState state,
PackerBuildParticipation buildParticipation,
AssetFamilyCatalog assetFamily,
boolean preloadEnabled,
boolean hasDiagnostics) {
public PackerAssetSummaryDTO {
Objects.requireNonNull(assetReference, "assetReference");
Objects.requireNonNull(identity, "identity");
Objects.requireNonNull(state, "state");
Objects.requireNonNull(buildParticipation, "buildParticipation");
assetFamily = Objects.requireNonNullElse(assetFamily, AssetFamilyCatalog.UNKNOWN);
if (state == PackerAssetState.REGISTERED && identity.assetId() == null) {
throw new IllegalArgumentException("registered asset must expose assetId");
}
if (state == PackerAssetState.UNREGISTERED && buildParticipation != PackerBuildParticipation.EXCLUDED) {
throw new IllegalArgumentException("unregistered asset must stay excluded from build participation");
}
}
}