Working on composites
All checks were successful
Build / build (push) Successful in 3m42s

This commit is contained in:
2025-06-17 18:53:26 +02:00
parent cdaccb3840
commit 50ac15f8a8
2 changed files with 20 additions and 1 deletions

View File

@@ -30,6 +30,24 @@ public class Composite implements Asset {
addAsset(asset);
}
/**
* Returns the composite asset as a specific type.
* @param assetType The type of asset to return, e.g., CpuAsset.class.
* @return The asset cast to the specified type.
* @param <T> The type of asset to return, must extend Asset.
*/
public <T extends Asset> T getAsset(Class<T> assetType) {
if (assetType.equals(Composite.class)) {
return assetType.cast(this);
}
for (Asset asset : assets) {
if (assetType.isInstance(asset)) {
return assetType.cast(asset);
}
}
throw new IllegalArgumentException("No asset of type " + assetType.getSimpleName() + " found in composite.");
}
/**
* Adds an asset to the composite.
*

View File

@@ -213,6 +213,7 @@ public class AssetService {
var genericAsset = new GenericAsset();
genericAsset.setType("composite");
fillIn(genericAsset, genericDescriptor, formData);
genericAsset = genericRepository.saveAndFlush(genericAsset);
for (var assetType : type) {
var assetDescriptor = getAssetDescriptor(assetType);
@@ -222,7 +223,7 @@ public class AssetService {
getRepositoryFor(assetType).saveAndFlushAsset(asset);
}
return genericRepository.saveAndFlush(genericAsset);
return genericAsset;
}
/**