diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java index d38bc4f75..2b5daed2e 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/ActionStatus.java @@ -50,7 +50,7 @@ public interface ActionStatus extends TenantAwareBaseEntity { short getDownloadProgressPercent(); /** - * @return list of message entries that can be added to the + * @return immutable list of message entries that in the * {@link ActionStatus}. */ List getMessages(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetTag.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetTag.java index 05089d138..9507e29b2 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetTag.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetTag.java @@ -17,8 +17,8 @@ import java.util.List; public interface DistributionSetTag extends Tag { /** - * @return {@link List} of {@link DistributionSet}s this {@link Tag} is - * assigned to. + * @return immutable {@link List} of {@link DistributionSet}s this + * {@link Tag} is assigned to. */ List getAssignedToDistributionSet(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java index cf5da40b2..57420bbad 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java @@ -27,15 +27,15 @@ public interface DistributionSetType extends NamedEntity { boolean isDeleted(); /** - * @return set of {@link SoftwareModuleType}s that need to be in a + * @return immutable set of {@link SoftwareModuleType}s that need to be in a * {@link DistributionSet} of this type to be * {@link DistributionSet#isComplete()}. */ Set getMandatoryModuleTypes(); /** - * @return set of optional {@link SoftwareModuleType}s that can be in a - * {@link DistributionSet} of this type. + * @return immutable set of optional {@link SoftwareModuleType}s that can be + * in a {@link DistributionSet} of this type. */ Set getOptionalModuleTypes(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Rollout.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Rollout.java index 37185a8e2..72d7e7c53 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Rollout.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Rollout.java @@ -38,7 +38,7 @@ public interface Rollout extends NamedEntity { void setDistributionSet(DistributionSet distributionSet); /** - * @return list of deployment groups of the rollout. + * @return immutable list of deployment groups of the rollout. */ List getRolloutGroups(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java index 3c3a24fd0..e3bf1468f 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java @@ -11,6 +11,10 @@ package org.eclipse.hawkbit.repository.model; import java.util.List; import java.util.Optional; +/** + * Software package as sub element of a {@link DistributionSet}. + * + */ public interface SoftwareModule extends NamedVersionedEntity { /** @@ -40,12 +44,12 @@ public interface SoftwareModule extends NamedVersionedEntity { Optional getLocalArtifactByFilename(String fileName); /** - * @return the artifacts + * @return immutable list of all artifacts */ List getArtifacts(); /** - * @return local artifacts only + * @return immutable list of local artifacts only */ List getLocalArtifacts(); @@ -104,7 +108,8 @@ public interface SoftwareModule extends NamedVersionedEntity { List getMetadata(); /** - * @return the assignedTo + * @return immutable list of {@link DistributionSet}s the module is assigned + * to */ List getAssignedTo(); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java index c09b28a2f..c07a8c224 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java @@ -32,12 +32,12 @@ public interface Target extends NamedEntity { String getControllerId(); /** - * @return assigned {@link TargetTag}s. + * @return immutable set of assigned {@link TargetTag}s. */ Set getTags(); /** - * @return {@link Action} history of the {@link Target}. + * @return immutable {@link Action} history of the {@link Target}. */ List getActions(); @@ -64,4 +64,19 @@ public interface Target extends NamedEntity { */ void setSecurityToken(String token); + /** + * @param tag + * to add + * @return true if tag could be added sucessfully (i.e. was not + * already in the list). + */ + public boolean addTag(TargetTag tag); + + /** + * @param tag + * to remove + * @return true if tag was in the list and removed + */ + public boolean removeTag(TargetTag tag); + } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetTag.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetTag.java index f222e9e90..afe0ff59a 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetTag.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetTag.java @@ -17,7 +17,7 @@ import java.util.List; public interface TargetTag extends Tag { /** - * @return {@link List} of targets assigned to this {@link Tag}. + * @return immutable {@link List} of targets assigned to this {@link Tag}. */ List getAssignedToTargets(); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java index 67c28216d..b9085c601 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java @@ -343,7 +343,7 @@ public class JpaTargetManagement implements TargetManagement { // all are already assigned -> unassign if (alreadyAssignedTargets.size() == allTargets.size()) { - alreadyAssignedTargets.forEach(target -> ((JpaTarget) target).removeTag(tag)); + alreadyAssignedTargets.forEach(target -> target.removeTag(tag)); final TargetTagAssignmentResult result = new TargetTagAssignmentResult(0, 0, alreadyAssignedTargets.size(), Collections.emptyList(), alreadyAssignedTargets, tag); @@ -385,6 +385,7 @@ public class JpaTargetManagement implements TargetManagement { } private List unAssignTag(final Collection targets, final TargetTag tag) { + @SuppressWarnings({ "unchecked", "rawtypes" }) final Collection toUnassign = (Collection) targets; toUnassign.forEach(target -> target.removeTag(tag));