diff --git a/contentgrid-appserver-app/src/main/java/com/contentgrid/appserver/example/ContentgridAppConfiguration.java b/contentgrid-appserver-app/src/main/java/com/contentgrid/appserver/example/ContentgridAppConfiguration.java index 12421f7ef..d25ad5edc 100644 --- a/contentgrid-appserver-app/src/main/java/com/contentgrid/appserver/example/ContentgridAppConfiguration.java +++ b/contentgrid-appserver-app/src/main/java/com/contentgrid/appserver/example/ContentgridAppConfiguration.java @@ -82,6 +82,18 @@ ApplicationResolver applicationResolver() { .type(Type.DATE) .build() ) + .attribute(SimpleAttribute.builder() + .name(AttributeName.of("is_adult")) + .column(ColumnName.of("is_adult")) + .type(Type.BOOLEAN) + .defaultValue("true") + .build()) + .attribute(SimpleAttribute.builder() + .name(AttributeName.of("shoe_size")) + .column(ColumnName.of("shoe_size")) + .type(Type.LONG) + .defaultValue("40") + .build()) .searchFilter(AttributeSearchFilter.builder() .operation(Operation.EXACT) .name(FilterName.of("first_name")) diff --git a/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/Attribute.java b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/Attribute.java index 1183d6874..5ef01f475 100644 --- a/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/Attribute.java +++ b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/Attribute.java @@ -9,6 +9,7 @@ import com.contentgrid.appserver.application.model.values.ColumnName; import java.util.List; import java.util.Locale; +import java.util.Optional; import java.util.Set; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -56,6 +57,10 @@ default boolean hasFlag(Class flagClass) { return getFlags().stream().anyMatch(flagClass::isInstance); } + default Optional findFlag(Class flagClass) { + return getFlags().stream().filter(flagClass::isInstance).findFirst().map(flagClass::cast); + } + /** * Returns whether this attribute is ignored in request and response bodies. * @return whether this attribute is ignored diff --git a/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/SimpleAttribute.java b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/SimpleAttribute.java index 17e4e6298..56aab6973 100644 --- a/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/SimpleAttribute.java +++ b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/SimpleAttribute.java @@ -8,10 +8,22 @@ import com.contentgrid.appserver.application.model.i18n.TranslationBuilderSupport; import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.ColumnName; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; import java.util.List; import java.util.Locale; import java.util.Optional; import java.util.Set; +import java.util.UUID; import lombok.AccessLevel; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -61,6 +73,8 @@ public class SimpleAttribute implements Attribute { */ List constraints; + ScalarDataEntry defaultValue; + /** * Defines the data types supported for attributes. */ @@ -71,12 +85,13 @@ public enum Type { TEXT, DATE, DATETIME, - UUID; + UUID, + ; } @Builder SimpleAttribute(@NonNull AttributeName name, ConfigurableTranslatable translations, @NonNull ColumnName column, - @NonNull Type type, @Singular Set flags, @Singular List constraints) { + @NonNull Type type, @Singular Set flags, @Singular List constraints, String defaultValue) { this.name = name; this.translations = translations.withTranslationsBy(Locale.ROOT, t -> { if(t.getName() == null) { @@ -91,6 +106,22 @@ public enum Type { for (var flag : this.flags) { flag.checkSupported(this); } + this.defaultValue = convertDefaultValueType(type, defaultValue); + } + + private static ScalarDataEntry convertDefaultValueType(Type type, String defaultValue) { + if (defaultValue == null) { + return NullDataEntry.INSTANCE; + } + return switch(type) { + case LONG -> new LongDataEntry(Long.valueOf(defaultValue)); + case DOUBLE -> new DecimalDataEntry(new BigDecimal(defaultValue)); + case BOOLEAN -> new BooleanDataEntry(Boolean.parseBoolean(defaultValue)); + case TEXT -> new StringDataEntry(defaultValue); + case DATE -> new LocalDateDataEntry(LocalDate.parse(defaultValue)); + case DATETIME -> new InstantDataEntry(Instant.parse(defaultValue)); + case UUID -> new StringDataEntry(UUID.fromString(defaultValue).toString()); + }; } diff --git a/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/flags/DefaultValueFlag.java b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/flags/DefaultValueFlag.java new file mode 100644 index 000000000..3f8cbb96f --- /dev/null +++ b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/attributes/flags/DefaultValueFlag.java @@ -0,0 +1,43 @@ +package com.contentgrid.appserver.application.model.attributes.flags; + +import com.contentgrid.appserver.application.model.attributes.Attribute; +import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; +import com.contentgrid.appserver.application.model.exceptions.InvalidFlagException; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; +import lombok.NonNull; +import lombok.Value; + +@Value(staticConstructor = "of") +public class DefaultValueFlag implements AttributeFlag { + @Override + public void checkSupported(Attribute attribute) { + if (attribute instanceof SimpleAttribute simp) { + + // TODO + var neededDataEntry = switch(simp.getType()) { + case LONG -> LongDataEntry.class; + case DOUBLE -> DecimalDataEntry.class; + case BOOLEAN -> BooleanDataEntry.class; + case TEXT, UUID -> StringDataEntry.class; + case DATE -> LocalDateDataEntry.class; + case DATETIME -> InstantDataEntry.class; + }; + + if (!neededDataEntry.isAssignableFrom(defaultValue.getClass())) { + throw new InvalidFlagException("Invalid type"); + } + } else { + throw new InvalidFlagException("No composites for default values"); + } + + } + + @NonNull + ScalarDataEntry defaultValue; +} diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/DataEntry.java b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/DataEntry.java similarity index 92% rename from contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/DataEntry.java rename to contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/DataEntry.java index 83e9cad4e..779f8e658 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/DataEntry.java +++ b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/DataEntry.java @@ -1,10 +1,8 @@ -package com.contentgrid.appserver.domain.data; +package com.contentgrid.appserver.application.model.values; -import com.contentgrid.appserver.application.model.values.EntityName; -import com.contentgrid.appserver.domain.data.DataEntry.AnyRelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.DataEntry.AnyRelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; diff --git a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityId.java b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/EntityId.java similarity index 83% rename from contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityId.java rename to contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/EntityId.java index 8b205f801..7bfaeca3f 100644 --- a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityId.java +++ b/contentgrid-appserver-application-model/src/main/java/com/contentgrid/appserver/application/model/values/EntityId.java @@ -1,4 +1,4 @@ -package com.contentgrid.appserver.domain.values; +package com.contentgrid.appserver.application.model.values; import java.io.Serializable; import java.util.UUID; diff --git a/contentgrid-appserver-application-model/src/testFixtures/java/com/contentgrid/appserver/application/model/fixtures/ModelTestFixtures.java b/contentgrid-appserver-application-model/src/testFixtures/java/com/contentgrid/appserver/application/model/fixtures/ModelTestFixtures.java index f8941d7c9..dd65709d5 100644 --- a/contentgrid-appserver-application-model/src/testFixtures/java/com/contentgrid/appserver/application/model/fixtures/ModelTestFixtures.java +++ b/contentgrid-appserver-application-model/src/testFixtures/java/com/contentgrid/appserver/application/model/fixtures/ModelTestFixtures.java @@ -86,6 +86,13 @@ public class ModelTestFixtures { .constraint(Constraint.allowedValues(List.of("female", "male"))) .build(); + public static final SimpleAttribute PERSON_IS_ADULT = SimpleAttribute.builder() + .name(AttributeName.of("is_adult")) + .column(ColumnName.of("is_adult")) + .type(Type.BOOLEAN) + .defaultValue("true") + .build(); + public static final Entity PERSON = Entity.builder() .name(EntityName.of("person")) .table(TableName.of("person")) @@ -99,6 +106,7 @@ public class ModelTestFixtures { .attribute(PERSON_VAT) .attribute(PERSON_AGE) .attribute(PERSON_GENDER) + .attribute(PERSON_IS_ADULT) .searchFilter(AttributeSearchFilter.builder() .operation(Operation.PREFIX) .attribute(PERSON_NAME) diff --git a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityIdentity.java b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityIdentity.java index b083d2112..f7dfe5ede 100644 --- a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityIdentity.java +++ b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityIdentity.java @@ -1,5 +1,6 @@ package com.contentgrid.appserver.domain.values; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.domain.values.version.UnspecifiedVersion; import com.contentgrid.appserver.domain.values.version.Version; diff --git a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityRequest.java b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityRequest.java index 4ab0fdef3..401ef5696 100644 --- a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityRequest.java +++ b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/EntityRequest.java @@ -1,5 +1,6 @@ package com.contentgrid.appserver.domain.values; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.domain.values.version.Version; import com.contentgrid.appserver.domain.values.version.VersionConstraint; diff --git a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationIdentity.java b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationIdentity.java index 4c94e90ea..0188185a8 100644 --- a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationIdentity.java +++ b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationIdentity.java @@ -1,5 +1,6 @@ package com.contentgrid.appserver.domain.values; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.RelationName; import com.contentgrid.appserver.domain.values.version.UnspecifiedVersion; diff --git a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationRequest.java b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationRequest.java index 2a1f0b18c..4b0358c21 100644 --- a/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationRequest.java +++ b/contentgrid-appserver-domain-values/src/main/java/com/contentgrid/appserver/domain/values/RelationRequest.java @@ -1,8 +1,8 @@ package com.contentgrid.appserver.domain.values; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.RelationName; -import com.contentgrid.appserver.domain.values.version.Version; import com.contentgrid.appserver.domain.values.version.VersionConstraint; import lombok.AccessLevel; import lombok.NonNull; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApi.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApi.java index c1f5cf444..5c5582626 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApi.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApi.java @@ -4,9 +4,9 @@ import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.version.Version; import com.contentgrid.appserver.domain.values.version.VersionConstraint; import java.io.IOException; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApiImpl.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApiImpl.java index 120b857eb..1ab320a01 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApiImpl.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/ContentApiImpl.java @@ -11,13 +11,12 @@ import com.contentgrid.appserver.contentstore.api.range.ContentRangeRequest; import com.contentgrid.appserver.contentstore.api.range.UnsatisfiableContentRangeException; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.MapRequestInputData; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; -import com.contentgrid.appserver.domain.values.User; import com.contentgrid.appserver.domain.values.version.Version; import com.contentgrid.appserver.domain.values.version.VersionConstraint; import com.contentgrid.appserver.query.engine.api.data.CompositeAttributeData; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApi.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApi.java index 06580740c..eec8a14e3 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApi.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApi.java @@ -12,7 +12,7 @@ import com.contentgrid.appserver.domain.paging.ResultSlice; import com.contentgrid.appserver.domain.paging.cursor.CursorCodec.CursorDecodeException; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.RelationRequest; import com.contentgrid.appserver.query.engine.api.exception.EntityIdNotFoundException; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApiImpl.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApiImpl.java index 21553b8a2..ddd9e197b 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApiImpl.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/DatamodelApiImpl.java @@ -6,8 +6,8 @@ import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.contentstore.api.ContentStore; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.RelationTarget; @@ -35,7 +35,7 @@ import com.contentgrid.appserver.domain.paging.cursor.CursorCodec; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorSupport; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.ItemCount; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/InternalEntityInstance.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/InternalEntityInstance.java index 28d9757a8..a9de5fe55 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/InternalEntityInstance.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/InternalEntityInstance.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.domain; import com.contentgrid.appserver.application.model.values.AttributeName; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.query.engine.api.data.AttributeData; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/EntityInstance.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/EntityInstance.java index d88b3e0b4..76c17e8e1 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/EntityInstance.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/EntityInstance.java @@ -1,6 +1,6 @@ package com.contentgrid.appserver.domain.data; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.values.EntityIdentity; import java.util.SequencedMap; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/MapRequestInputData.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/MapRequestInputData.java index d797fa6a4..5f96c4660 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/MapRequestInputData.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/MapRequestInputData.java @@ -1,16 +1,17 @@ package com.contentgrid.appserver.domain.data; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ListDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ListDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.type.DataType; import com.contentgrid.appserver.domain.data.type.TechnicalDataType; import java.math.BigDecimal; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/RequestInputData.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/RequestInputData.java index 42662320c..696b57bd2 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/RequestInputData.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/RequestInputData.java @@ -1,11 +1,11 @@ package com.contentgrid.appserver.domain.data; +import com.contentgrid.appserver.application.model.values.DataEntry; import java.util.List; import java.util.function.Function; import java.util.stream.Stream; import lombok.AccessLevel; import lombok.EqualsAndHashCode; -import lombok.Getter; import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/UsageTrackingRequestInputData.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/UsageTrackingRequestInputData.java index 8cac7240c..eae5d6737 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/UsageTrackingRequestInputData.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/UsageTrackingRequestInputData.java @@ -1,5 +1,6 @@ package com.contentgrid.appserver.domain.data; +import com.contentgrid.appserver.application.model.values.DataEntry; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AbstractDescendingAttributeMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AbstractDescendingAttributeMapper.java index 8c8037a29..83db7df7d 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AbstractDescendingAttributeMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AbstractDescendingAttributeMapper.java @@ -5,9 +5,9 @@ import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; import com.contentgrid.appserver.application.model.values.AttributePath; import com.contentgrid.appserver.application.model.values.SimpleAttributePath; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.validation.ValidationExceptionCollector; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AttributeDataToDataEntryMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AttributeDataToDataEntryMapper.java index a850331fe..112be8408 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AttributeDataToDataEntryMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AttributeDataToDataEntryMapper.java @@ -5,15 +5,15 @@ import com.contentgrid.appserver.application.model.attributes.ContentAttribute; import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; import com.contentgrid.appserver.application.model.attributes.UserAttribute; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.query.engine.api.data.AttributeData; import com.contentgrid.appserver.query.engine.api.data.CompositeAttributeData; import com.contentgrid.appserver.query.engine.api.data.SimpleAttributeData; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AuditAttributeMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AuditAttributeMapper.java index 99212d4f2..f1e200524 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AuditAttributeMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/AuditAttributeMapper.java @@ -10,13 +10,13 @@ import com.contentgrid.appserver.application.model.attributes.flags.ModifierFlag; import com.contentgrid.appserver.application.model.values.AttributePath; import com.contentgrid.appserver.application.model.values.SimpleAttributePath; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.values.User; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/ContentUploadAttributeMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/ContentUploadAttributeMapper.java index bf0b64076..e3d86fd9b 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/ContentUploadAttributeMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/ContentUploadAttributeMapper.java @@ -6,11 +6,11 @@ import com.contentgrid.appserver.application.model.values.AttributePath; import com.contentgrid.appserver.contentstore.api.ContentStore; import com.contentgrid.appserver.contentstore.api.UnwritableContentException; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidDataFormatException; import com.contentgrid.appserver.domain.data.type.DataType; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/DataEntryToQueryEngineMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/DataEntryToQueryEngineMapper.java index c4d466c62..12e7d2899 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/DataEntryToQueryEngineMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/DataEntryToQueryEngineMapper.java @@ -8,19 +8,19 @@ import com.contentgrid.appserver.application.model.relations.OneToManyRelation; import com.contentgrid.appserver.application.model.relations.OneToOneRelation; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MultipleRelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ScalarDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MultipleRelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataTypeException; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/FilterDataEntryMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/FilterDataEntryMapper.java index d7200aa93..0f0981dcc 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/FilterDataEntryMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/FilterDataEntryMapper.java @@ -1,12 +1,15 @@ package com.contentgrid.appserver.domain.data.mapper; import com.contentgrid.appserver.application.model.attributes.Attribute; +import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; +import com.contentgrid.appserver.application.model.attributes.flags.DefaultValueFlag; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; import java.util.Optional; import lombok.RequiredArgsConstructor; @@ -17,34 +20,39 @@ public abstract class FilterDataEntryMapper implements AttributeAndRelationMapper, DataEntry, Optional> { @Override public Optional mapAttribute(Attribute attribute, DataEntry inputData) { - return transformNested(inputData); + + if (attribute instanceof SimpleAttribute simp) { + return transformNested(inputData, simp.getDefaultValue()); + } + + return transformNested(inputData, NullDataEntry.INSTANCE); } @Override public Optional mapRelation(Relation relation, DataEntry inputData) { - return transformNested(inputData); + return transformNested(inputData, NullDataEntry.INSTANCE); } - private Optional transformNested(DataEntry inputData) { + private Optional transformNested(DataEntry inputData, ScalarDataEntry defaultValue) { return switch (inputData) { case MapDataEntry mapDataEntry -> { var builder = MapDataEntry.builder(); for (var entry : mapDataEntry.getItems().entrySet()) { - transformNested(entry.getValue()) + transformNested(entry.getValue(), defaultValue) .ifPresent(newValue -> builder.item(entry.getKey(), (PlainDataEntry) newValue)); } yield Optional.of(builder.build()); } - default -> transform(inputData); + default -> transform(inputData, defaultValue); }; } - abstract protected Optional transform(DataEntry inputData); + abstract protected Optional transform(DataEntry inputData, ScalarDataEntry defaultValue); public static FilterDataEntryMapper omitMissing() { return new FilterDataEntryMapper() { @Override - protected Optional transform(DataEntry inputData) { + protected Optional transform(DataEntry inputData, ScalarDataEntry defaultValue) { if(inputData instanceof MissingDataEntry) { return Optional.empty(); } @@ -56,9 +64,10 @@ protected Optional transform(DataEntry inputData) { public static FilterDataEntryMapper missingAsNull() { return new FilterDataEntryMapper() { @Override - protected Optional transform(DataEntry inputData) { - if(inputData instanceof MissingDataEntry) { - return Optional.of(NullDataEntry.INSTANCE); + protected Optional transform(DataEntry inputData, ScalarDataEntry defaultValue) { + if (inputData instanceof MissingDataEntry) { + // defaultValue will be NullDataEntry if there's no default + return Optional.of(defaultValue); } return Optional.of(inputData); } diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/RequestInputDataToDataEntryMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/RequestInputDataToDataEntryMapper.java index bd2cf161a..8195e7433 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/RequestInputDataToDataEntryMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/mapper/RequestInputDataToDataEntryMapper.java @@ -9,20 +9,20 @@ import com.contentgrid.appserver.application.model.relations.OneToManyRelation; import com.contentgrid.appserver.application.model.relations.OneToOneRelation; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MultipleRelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MultipleRelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.RequestInputData; import com.contentgrid.appserver.domain.data.RequestInputData.DataResult; import com.contentgrid.appserver.domain.data.RequestInputData.MissingResult; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/package-info.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/package-info.java index a87a8476e..c4aeb3f30 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/package-info.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/package-info.java @@ -7,11 +7,11 @@ *

Core Data Structures

*
    *
  • {@link com.contentgrid.appserver.domain.data.RequestInputData} - Input data for create and update operations, represents the data sent by the user's request
  • - *
  • {@link com.contentgrid.appserver.domain.data.DataEntry} - A single data value that is stored in {@link com.contentgrid.appserver.domain.data.RequestInputData}
  • + *
  • {@link com.contentgrid.appserver.application.model.values.DataEntry} - A single data value that is stored in {@link com.contentgrid.appserver.domain.data.RequestInputData}
  • *
* *

Data Entry Types

- * The {@link com.contentgrid.appserver.domain.data.DataEntry} hierarchy includes: + * The {@link com.contentgrid.appserver.application.model.values.DataEntry} hierarchy includes: *
    *
  • PlainDataEntry - Values representable in structured input (JSON): *
      diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataEntryDataType.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataEntryDataType.java index 5fc685c8f..03cf017a5 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataEntryDataType.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataEntryDataType.java @@ -1,19 +1,19 @@ package com.contentgrid.appserver.domain.data.type; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ListDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MultipleRelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ListDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MultipleRelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import java.util.HashMap; import java.util.Map; import lombok.experimental.UtilityClass; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataType.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataType.java index 9abb3908d..e563cd3d6 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataType.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/DataType.java @@ -8,7 +8,7 @@ import com.contentgrid.appserver.application.model.relations.OneToManyRelation; import com.contentgrid.appserver.application.model.relations.OneToOneRelation; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.data.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; import lombok.NonNull; /** @@ -33,8 +33,8 @@ static DataType of(@NonNull Class dataEntryClass) { * Construct a type based on a {@link DataEntry} *

      * The created type description can expose some additional data, - * like the keys of an {@link com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry}, - * or the target entity of a {@link com.contentgrid.appserver.domain.data.DataEntry.AnyRelationDataEntry} + * like the keys of an {@link DataEntry.MapDataEntry}, + * or the target entity of a {@link DataEntry.AnyRelationDataEntry} * * @param dataEntry The data entry to create a type for */ diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/ObjectDataType.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/ObjectDataType.java index 2e06370c7..5a03d30c7 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/ObjectDataType.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/ObjectDataType.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.domain.data.type; import com.contentgrid.appserver.application.model.attributes.CompositeAttribute; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; import java.util.Set; import java.util.stream.Collectors; import lombok.AccessLevel; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/package-info.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/package-info.java index 56d21ce4b..db25949dd 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/package-info.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/type/package-info.java @@ -2,7 +2,7 @@ * Type system for describing and representing the types of data entries. *

      * This package provides a comprehensive type system for categorizing and describing different kinds - * of {@link com.contentgrid.appserver.domain.data.DataEntry} objects. The types are descriptive and are only used for error reporting. + * of {@link com.contentgrid.appserver.application.model.values.DataEntry} objects. The types are descriptive and are only used for error reporting. * *

      Core Type Interface

      *
        @@ -10,7 +10,7 @@ *
      * * - * @see com.contentgrid.appserver.domain.data.DataEntry + * @see com.contentgrid.appserver.application.model.values.DataEntry * @see com.contentgrid.appserver.domain.data.InvalidDataTypeException */ package com.contentgrid.appserver.domain.data.type; \ No newline at end of file diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AllowedValuesConstraintValidator.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AllowedValuesConstraintValidator.java index a10394268..fbf4f1984 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AllowedValuesConstraintValidator.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AllowedValuesConstraintValidator.java @@ -1,10 +1,10 @@ package com.contentgrid.appserver.domain.data.validation; import com.contentgrid.appserver.application.model.Constraint.AllowedValuesConstraint; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.type.DataType; import com.contentgrid.appserver.domain.data.validation.AttributeValidationDataMapper.ConstraintValidator; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AttributeValidationDataMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AttributeValidationDataMapper.java index deb74486c..032a4467b 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AttributeValidationDataMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/AttributeValidationDataMapper.java @@ -5,7 +5,7 @@ import com.contentgrid.appserver.application.model.attributes.CompositeAttribute; import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; import com.contentgrid.appserver.application.model.values.AttributePath; -import com.contentgrid.appserver.domain.data.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.mapper.AbstractDescendingAttributeMapper; import java.util.Arrays; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/ContentAttributeModificationValidator.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/ContentAttributeModificationValidator.java index af3e7031e..0a729b5b0 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/ContentAttributeModificationValidator.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/ContentAttributeModificationValidator.java @@ -3,11 +3,11 @@ import com.contentgrid.appserver.application.model.attributes.Attribute; import com.contentgrid.appserver.application.model.attributes.ContentAttribute; import com.contentgrid.appserver.application.model.values.AttributePath; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.validation.AttributeValidationDataMapper.Validator; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RelationRequiredValidationDataMapper.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RelationRequiredValidationDataMapper.java index 9f9f66a48..97bb8df64 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RelationRequiredValidationDataMapper.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RelationRequiredValidationDataMapper.java @@ -1,9 +1,9 @@ package com.contentgrid.appserver.domain.data.validation; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.mapper.RelationMapper; import java.util.Optional; diff --git a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RequiredAttributeConstraintValidator.java b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RequiredAttributeConstraintValidator.java index 4f7911e5a..888db9468 100644 --- a/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RequiredAttributeConstraintValidator.java +++ b/contentgrid-appserver-domain/src/main/java/com/contentgrid/appserver/domain/data/validation/RequiredAttributeConstraintValidator.java @@ -1,9 +1,9 @@ package com.contentgrid.appserver.domain.data.validation; import com.contentgrid.appserver.application.model.Constraint.RequiredConstraint; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.validation.AttributeValidationDataMapper.ConstraintValidator; diff --git a/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/ContentApiImplTest.java b/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/ContentApiImplTest.java index 3da11d32a..d7fb8f93e 100644 --- a/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/ContentApiImplTest.java +++ b/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/ContentApiImplTest.java @@ -12,11 +12,11 @@ import com.contentgrid.appserver.contentstore.api.UnreadableContentException; import com.contentgrid.appserver.contentstore.api.range.ResolvedContentRange; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.version.Version; diff --git a/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/DatamodelApiImplTest.java b/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/DatamodelApiImplTest.java index d790b6334..8e909175c 100644 --- a/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/DatamodelApiImplTest.java +++ b/contentgrid-appserver-domain/src/test/java/com/contentgrid/appserver/domain/DatamodelApiImplTest.java @@ -18,12 +18,12 @@ import com.contentgrid.appserver.contentstore.api.ContentStore; import com.contentgrid.appserver.contentstore.api.UnwritableContentException; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.data.InvalidDataTypeException; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; @@ -38,7 +38,7 @@ import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; import com.contentgrid.appserver.domain.paging.cursor.RequestIntegrityCheckCursorCodec; import com.contentgrid.appserver.domain.paging.cursor.SimplePageBasedCursorCodec; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.User; @@ -426,7 +426,8 @@ void inverseRelation_unmapped_ignored() throws InvalidPropertyDataException { new SimpleAttributeData<>(PERSON_NAME.getName(), "test"), new SimpleAttributeData<>(PERSON_VAT.getName(), "123456"), new SimpleAttributeData<>(PERSON_AGE.getName(), null), - new SimpleAttributeData<>(PERSON_GENDER.getName(), null) + new SimpleAttributeData<>(PERSON_GENDER.getName(), null), + new SimpleAttributeData<>(PERSON_IS_ADULT.getName(), true) ); assertThat(createData.getRelations()).isEmpty(); diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/affordances/AffordanceInjectingSelfLinkProviderTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/affordances/AffordanceInjectingSelfLinkProviderTest.java index 92f0bb216..89f153773 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/affordances/AffordanceInjectingSelfLinkProviderTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/affordances/AffordanceInjectingSelfLinkProviderTest.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.integration.test.affordances; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; import com.contentgrid.appserver.rest.test.WithMockJwt; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/AuditMetadataTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/AuditMetadataTest.java index 29cd26268..be5a0e3d8 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/AuditMetadataTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/AuditMetadataTest.java @@ -10,8 +10,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.integration.test.auditing.AuditMetadataTest.TestClockConfiguration; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; @@ -24,7 +23,6 @@ import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.HashSet; import java.util.Objects; import java.util.UUID; import lombok.NonNull; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/ContentLastModifiedTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/ContentLastModifiedTest.java index 0e8910f40..2129ee7ab 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/ContentLastModifiedTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/auditing/ContentLastModifiedTest.java @@ -6,7 +6,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; import com.contentgrid.appserver.rest.test.WithMockJwt; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/etag/OptimisticLockingTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/etag/OptimisticLockingTest.java index 958959fd2..166adef0c 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/etag/OptimisticLockingTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/etag/OptimisticLockingTest.java @@ -10,7 +10,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.version.ExactlyVersion; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApiApplicationTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApiApplicationTest.java index 8c14e651c..3bf300faf 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApiApplicationTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApiApplicationTest.java @@ -18,11 +18,11 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.contentgrid.appserver.domain.ContentApi.Content; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.query.engine.api.exception.EntityIdNotFoundException; import com.contentgrid.appserver.rest.test.WithMockJwt; @@ -49,7 +49,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/messages/HalLinkTitlesAndFormPromptsTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/messages/HalLinkTitlesAndFormPromptsTest.java index 72b2948f6..e2835b8f8 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/messages/HalLinkTitlesAndFormPromptsTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/messages/HalLinkTitlesAndFormPromptsTest.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.integration.test.messages; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; import com.contentgrid.appserver.rest.test.WithMockJwt; diff --git a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/problem/ContentGridProblemDetailsConfigurationIntegrationTest.java b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/problem/ContentGridProblemDetailsConfigurationIntegrationTest.java index 608b958f3..b00968947 100644 --- a/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/problem/ContentGridProblemDetailsConfigurationIntegrationTest.java +++ b/contentgrid-appserver-integration-test/src/test/java/com/contentgrid/appserver/integration/test/problem/ContentGridProblemDetailsConfigurationIntegrationTest.java @@ -13,7 +13,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApi; import com.contentgrid.appserver.integration.test.fixture.invoicing.InvoicingApiApplication; import com.contentgrid.appserver.rest.test.WithMockJwt; diff --git a/contentgrid-appserver-integration-test/src/testFixtures/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApi.java b/contentgrid-appserver-integration-test/src/testFixtures/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApi.java index 8232f1176..b149bb8b8 100644 --- a/contentgrid-appserver-integration-test/src/testFixtures/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApi.java +++ b/contentgrid-appserver-integration-test/src/testFixtures/java/com/contentgrid/appserver/integration/test/fixture/invoicing/InvoicingApi.java @@ -12,15 +12,15 @@ import com.contentgrid.appserver.domain.ContentApi.Content; import com.contentgrid.appserver.domain.DatamodelApi; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.MapRequestInputData; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.RelationRequest; diff --git a/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/DefaultApplicationSchemaConverter.java b/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/DefaultApplicationSchemaConverter.java index 32b334d7d..606f7a5d2 100644 --- a/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/DefaultApplicationSchemaConverter.java +++ b/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/DefaultApplicationSchemaConverter.java @@ -38,6 +38,7 @@ import com.contentgrid.appserver.application.model.values.ApplicationName; import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.ColumnName; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.FilterName; import com.contentgrid.appserver.application.model.values.LinkName; @@ -225,6 +226,7 @@ private com.contentgrid.appserver.application.model.attributes.SimpleAttribute f .type(Type.valueOf(jsonAttr.getDataType().toUpperCase())) .flags(fromJsonAttributeFlags(jsonAttr.getFlags())) .constraints(constraints) + .defaultValue(jsonAttr.getDefaultValue()) .build(); } @@ -509,6 +511,7 @@ private SimpleAttribute toJsonSimpleAttribute( jsonAttr.setDataType(attr.getType().name().toLowerCase()); jsonAttr.setFlags(attr.getFlags().stream().map(this::toJsonAttribute).toList()); jsonAttr.setConstraints(attr.getConstraints().stream().map(this::toJsonConstraint).toList()); + jsonAttr.setDefaultValue(Objects.toString(attr.getDefaultValue().getValue(), null)); return jsonAttr; } diff --git a/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/model/SimpleAttribute.java b/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/model/SimpleAttribute.java index 54bf0febf..1006344d0 100644 --- a/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/model/SimpleAttribute.java +++ b/contentgrid-appserver-json-schema/src/main/java/com/contentgrid/appserver/json/model/SimpleAttribute.java @@ -12,7 +12,7 @@ @Getter @Setter @JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({"type", "name", "description", "dataType", "columnName", "flags", "constraints"}) +@JsonPropertyOrder({"type", "name", "description", "dataType", "columnName", "flags", "constraints", "defaultValue"}) public final class SimpleAttribute extends Attribute { @NonNull @@ -23,4 +23,6 @@ public final class SimpleAttribute extends Attribute { @JsonInclude(Include.NON_EMPTY) private List constraints; + + private String defaultValue; } diff --git a/contentgrid-appserver-json-schema/src/main/resources/schemas/application-schema.json b/contentgrid-appserver-json-schema/src/main/resources/schemas/application-schema.json index 558313dcf..3f6cba570 100644 --- a/contentgrid-appserver-json-schema/src/main/resources/schemas/application-schema.json +++ b/contentgrid-appserver-json-schema/src/main/resources/schemas/application-schema.json @@ -308,6 +308,10 @@ "items": { "$ref": "#/$defs/attributeConstraint" } + }, + "defaultValue": { + "type": "string", + "description": "The default value for this attribute, if none is provided." } }, "required": [ diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/EntityIdAndVersion.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/EntityIdAndVersion.java index 615c5b094..fb5850d11 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/EntityIdAndVersion.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/EntityIdAndVersion.java @@ -1,6 +1,6 @@ package com.contentgrid.appserver.query.engine.api; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.version.Version; import lombok.NonNull; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/QueryEngine.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/QueryEngine.java index e0a63fa94..7726f579f 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/QueryEngine.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/QueryEngine.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.Entity; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.ItemCount; import com.contentgrid.appserver.domain.values.RelationRequest; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/EntityData.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/EntityData.java index fe48a7340..05eccac5a 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/EntityData.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/EntityData.java @@ -3,7 +3,7 @@ import com.contentgrid.appserver.application.model.exceptions.DuplicateElementException; import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.EntityName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.version.Version; import java.util.HashMap; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToManyRelationData.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToManyRelationData.java index 3a769e7d0..445651ca0 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToManyRelationData.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToManyRelationData.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.data; import com.contentgrid.appserver.application.model.values.RelationName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import java.util.Set; import lombok.Builder; import lombok.NonNull; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToOneRelationData.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToOneRelationData.java index 6c07a4c4f..0ac02bfe1 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToOneRelationData.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/data/XToOneRelationData.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.data; import com.contentgrid.appserver.application.model.values.RelationName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import lombok.Builder; import lombok.NonNull; import lombok.Value; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/ConstraintViolationException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/ConstraintViolationException.java index 7b1b2cf07..d01c63f4c 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/ConstraintViolationException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/ConstraintViolationException.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.PropertyPath; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import lombok.AccessLevel; import lombok.Getter; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityIdNotFoundException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityIdNotFoundException.java index a3f1140cb..cfcfa0837 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityIdNotFoundException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityIdNotFoundException.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.exception; import com.contentgrid.appserver.application.model.values.EntityName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import lombok.Getter; import lombok.NonNull; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityLinkedByRequiredRelationException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityLinkedByRequiredRelationException.java index 72b8ba6cd..78e459451 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityLinkedByRequiredRelationException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/EntityLinkedByRequiredRelationException.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.exception; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import lombok.Getter; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/PermissionDeniedException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/PermissionDeniedException.java index e189a22b7..daf97b920 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/PermissionDeniedException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/PermissionDeniedException.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.exception; import com.contentgrid.appserver.application.model.values.EntityName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import lombok.Getter; import lombok.NonNull; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RelationLinkNotFoundException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RelationLinkNotFoundException.java index a14398f87..ac86cef55 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RelationLinkNotFoundException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RelationLinkNotFoundException.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.query.engine.api.exception; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import lombok.Getter; diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RequiredConstraintViolationException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RequiredConstraintViolationException.java index e39940b32..1bb5814e1 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RequiredConstraintViolationException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/RequiredConstraintViolationException.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.PropertyPath; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import lombok.NonNull; public class RequiredConstraintViolationException extends ConstraintViolationException { diff --git a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/UniqueConstraintViolationException.java b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/UniqueConstraintViolationException.java index c4ba340d1..a4795f87d 100644 --- a/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/UniqueConstraintViolationException.java +++ b/contentgrid-appserver-query-engine-api/src/main/java/com/contentgrid/appserver/query/engine/api/exception/UniqueConstraintViolationException.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.PropertyPath; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import lombok.Getter; import lombok.NonNull; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/EntityDataMapper.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/EntityDataMapper.java index b54d09db7..47a36a1a6 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/EntityDataMapper.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/EntityDataMapper.java @@ -5,7 +5,7 @@ import com.contentgrid.appserver.application.model.attributes.CompositeAttribute; import com.contentgrid.appserver.application.model.attributes.SimpleAttribute; import com.contentgrid.appserver.application.model.attributes.flags.ETagFlag; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.version.Version; import com.contentgrid.appserver.query.engine.api.data.AttributeData; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngine.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngine.java index e1f5174f2..74c7a72d6 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngine.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngine.java @@ -14,7 +14,7 @@ import com.contentgrid.appserver.application.model.values.PropertyPath; import com.contentgrid.appserver.application.model.values.RelationName; import com.contentgrid.appserver.application.model.values.RelationPath; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.ItemCount; @@ -91,7 +91,6 @@ import org.jooq.SelectUnionStep; import org.jooq.SortField; import org.jooq.exception.DataAccessException; -import org.jooq.exception.IntegrityConstraintViolationException; import org.jooq.impl.DSL; @RequiredArgsConstructor diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/TransactionalQueryEngine.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/TransactionalQueryEngine.java index 96f51a494..67ce6707e 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/TransactionalQueryEngine.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/TransactionalQueryEngine.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.Entity; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.ItemCount; import com.contentgrid.appserver.domain.values.RelationRequest; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedId.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedId.java index 6a0a06066..85e38e4db 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedId.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedId.java @@ -1,6 +1,6 @@ package com.contentgrid.appserver.query.engine.jooq.strategy; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import java.util.Optional; import java.util.UUID; import lombok.AccessLevel; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedIdMismatchException.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedIdMismatchException.java index 880ccde11..609dd8c07 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedIdMismatchException.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/ExpectedIdMismatchException.java @@ -1,6 +1,6 @@ package com.contentgrid.appserver.query.engine.jooq.strategy; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import java.util.Optional; import java.util.UUID; import lombok.Getter; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQManyToManyRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQManyToManyRelationStrategy.java index 08e09b473..da631a029 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQManyToManyRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQManyToManyRelationStrategy.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.relations.ManyToManyRelation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.query.engine.api.exception.EntityIdNotFoundException; import com.contentgrid.appserver.query.engine.api.exception.RelationLinkNotFoundException; import com.contentgrid.appserver.query.engine.jooq.DslContextUtils; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQOneToManyRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQOneToManyRelationStrategy.java index 72c36a3fe..8ca6fb501 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQOneToManyRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQOneToManyRelationStrategy.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.relations.OneToManyRelation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.query.engine.api.exception.BlindRelationOverwriteException; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQRelationStrategy.java index 4637434ec..2b6a5daa5 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQRelationStrategy.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import java.util.UUID; import org.jooq.DSLContext; import org.jooq.Field; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQTargetOneToOneRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQTargetOneToOneRelationStrategy.java index 8f77ccb12..2794a8736 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQTargetOneToOneRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQTargetOneToOneRelationStrategy.java @@ -3,7 +3,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.Entity; import com.contentgrid.appserver.application.model.relations.TargetOneToOneRelation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.query.engine.api.exception.BlindRelationOverwriteException; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToManyRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToManyRelationStrategy.java index 7cbc22bc3..3ecac26a2 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToManyRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToManyRelationStrategy.java @@ -2,7 +2,7 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.relations.Relation; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.query.engine.jooq.ExceptionUtils; import java.util.Collection; import java.util.HashSet; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToOneRelationStrategy.java b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToOneRelationStrategy.java index c07bfaaa8..75538dae6 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToOneRelationStrategy.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/main/java/com/contentgrid/appserver/query/engine/jooq/strategy/JOOQXToOneRelationStrategy.java @@ -4,7 +4,7 @@ import com.contentgrid.appserver.application.model.Entity; import com.contentgrid.appserver.application.model.relations.Relation; import com.contentgrid.appserver.application.model.values.RelationPath; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.query.engine.api.exception.BlindRelationOverwriteException; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/EventsDispatchTest.java b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/EventsDispatchTest.java index e5725a816..dc77fe442 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/EventsDispatchTest.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/EventsDispatchTest.java @@ -26,7 +26,7 @@ import com.contentgrid.appserver.application.model.values.PathSegmentName; import com.contentgrid.appserver.application.model.values.RelationName; import com.contentgrid.appserver.application.model.values.TableName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.RelationRequest; import com.contentgrid.appserver.query.engine.api.CreateEventConsumer; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngineTest.java b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngineTest.java index cda7e18d0..7fb74417a 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngineTest.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/JOOQQueryEngineTest.java @@ -48,7 +48,7 @@ import com.contentgrid.appserver.application.model.values.RelationName; import com.contentgrid.appserver.application.model.values.SortableName; import com.contentgrid.appserver.application.model.values.TableName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.RelationIdentity; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/StructuredRelationsJOOQQueryEngineTest.java b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/StructuredRelationsJOOQQueryEngineTest.java index 5fc88cbfc..5beb33d8d 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/StructuredRelationsJOOQQueryEngineTest.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/StructuredRelationsJOOQQueryEngineTest.java @@ -26,7 +26,7 @@ import com.contentgrid.appserver.application.model.values.RelationName; import com.contentgrid.appserver.application.model.values.RelationPath; import com.contentgrid.appserver.application.model.values.TableName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.domain.values.RelationRequest; diff --git a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/count/JOOQCountStrategyTest.java b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/count/JOOQCountStrategyTest.java index d03a86c5a..43f8f7a27 100644 --- a/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/count/JOOQCountStrategyTest.java +++ b/contentgrid-appserver-query-engine-impl-jooq/src/test/java/com/contentgrid/appserver/query/engine/jooq/count/JOOQCountStrategyTest.java @@ -18,7 +18,7 @@ import com.contentgrid.appserver.application.model.values.LinkName; import com.contentgrid.appserver.application.model.values.PathSegmentName; import com.contentgrid.appserver.application.model.values.TableName; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.query.engine.api.TableCreator; import com.contentgrid.appserver.query.engine.jooq.test.JooqTest; import java.time.Duration; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/ContentGridRestConfiguration.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/ContentGridRestConfiguration.java index e4910273f..3d8493acc 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/ContentGridRestConfiguration.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/ContentGridRestConfiguration.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest; import com.contentgrid.appserver.domain.data.EntityInstance; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.registry.DefaultApplicationNameExtractor; import com.contentgrid.appserver.rest.assembler.EntityDataRepresentationModelAssembler; import com.contentgrid.appserver.rest.assembler.profile.BlueprintLinkRelationsConfiguration; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/EntityRestController.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/EntityRestController.java index c29bfbe75..152201e72 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/EntityRestController.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/EntityRestController.java @@ -11,7 +11,7 @@ import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; import com.contentgrid.appserver.domain.data.RequestInputData; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.version.VersionConstraint; import com.contentgrid.appserver.query.engine.api.exception.EntityIdNotFoundException; @@ -32,7 +32,6 @@ import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.http.ETag; -import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.MultiValueMap; @@ -48,7 +47,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.NativeWebRequest; -import org.springframework.web.server.ResponseStatusException; @RestController @SpecializedOnEntity(entityPathVariable = "entityName") diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/EntityDataRepresentationModel.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/EntityDataRepresentationModel.java index 2d252144e..302faf05d 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/EntityDataRepresentationModel.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/EntityDataRepresentationModel.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.assembler; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; import com.fasterxml.jackson.annotation.JsonAnyGetter; import java.util.LinkedHashMap; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/profile/json/JsonSchema.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/profile/json/JsonSchema.java index c88346d8e..0e588a515 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/profile/json/JsonSchema.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/assembler/profile/json/JsonSchema.java @@ -190,6 +190,9 @@ abstract static class AbstractJsonSchemaProperty simpleAttribute.getDefaultValue().getValue().toString(); + case TEXT, DOUBLE, LONG, BOOLEAN -> simpleAttribute.getDefaultValue().getValue(); + }; + property = property.withDefaultValue(defaultValue); + } + return property; } diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/converter/RequestInputDataJacksonModule.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/converter/RequestInputDataJacksonModule.java index 76ea556be..41182dc16 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/converter/RequestInputDataJacksonModule.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/converter/RequestInputDataJacksonModule.java @@ -1,11 +1,11 @@ package com.contentgrid.appserver.rest.converter; -import com.contentgrid.appserver.domain.data.DataEntry.ListDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ListDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; import com.contentgrid.appserver.domain.data.RequestInputData; import com.contentgrid.appserver.rest.data.JsonRequestInputData; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/ConversionServiceRequestInputData.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/ConversionServiceRequestInputData.java index 541669e05..4695c1b07 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/ConversionServiceRequestInputData.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/ConversionServiceRequestInputData.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidDataFormatException; import com.contentgrid.appserver.domain.data.RequestInputData; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/JsonRequestInputData.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/JsonRequestInputData.java index 0613ebf5a..7d0378228 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/JsonRequestInputData.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/JsonRequestInputData.java @@ -1,17 +1,17 @@ package com.contentgrid.appserver.rest.data; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ListDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MapDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.NullDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.ScalarDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ListDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MapDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.NullDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.ScalarDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidDataFormatException; import com.contentgrid.appserver.domain.data.InvalidDataTypeException; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/MultipartRequestInputData.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/MultipartRequestInputData.java index 27a672305..ad231ad93 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/MultipartRequestInputData.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/MultipartRequestInputData.java @@ -1,9 +1,9 @@ package com.contentgrid.appserver.rest.data; -import com.contentgrid.appserver.domain.data.DataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.MissingDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.MissingDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.InvalidDataException; import com.contentgrid.appserver.domain.data.InvalidDataFormatException; import com.contentgrid.appserver.domain.data.InvalidDataTypeException; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToBooleanDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToBooleanDataEntryConverter.java index 7408a1891..7a46d1f4b 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToBooleanDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToBooleanDataEntryConverter.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data.conversion; -import com.contentgrid.appserver.domain.data.DataEntry.BooleanDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.BooleanDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToDecimalDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToDecimalDataEntryConverter.java index 5c0c03b3f..6be7a3a56 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToDecimalDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToDecimalDataEntryConverter.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data.conversion; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import java.math.BigDecimal; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.ConversionService; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToInstantDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToInstantDataEntryConverter.java index 9a0ac67fd..1d4e798ca 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToInstantDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToInstantDataEntryConverter.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data.conversion; -import com.contentgrid.appserver.domain.data.DataEntry.InstantDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.InstantDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import java.time.Instant; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.ConversionService; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLocalDateDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLocalDateDataEntryConverter.java index 2734bc52d..a1bf5d4eb 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLocalDateDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLocalDateDataEntryConverter.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data.conversion; -import com.contentgrid.appserver.domain.data.DataEntry.LocalDateDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LocalDateDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import java.time.LocalDate; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.ConversionService; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLongDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLongDataEntryConverter.java index f6a406aca..15b472206 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLongDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToLongDataEntryConverter.java @@ -1,7 +1,7 @@ package com.contentgrid.appserver.rest.data.conversion; -import com.contentgrid.appserver.domain.data.DataEntry.LongDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.LongDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToRelationDataEntryConverter.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToRelationDataEntryConverter.java index 2a8999a49..95674a8b9 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToRelationDataEntryConverter.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/data/conversion/StringDataEntryToRelationDataEntryConverter.java @@ -4,9 +4,9 @@ import com.contentgrid.appserver.application.model.Application; import com.contentgrid.appserver.application.model.values.PathSegmentName; -import com.contentgrid.appserver.domain.data.DataEntry.RelationDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.DataEntry.RelationDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.rest.EntityRestController; import com.contentgrid.hateoas.spring.links.UriTemplateMatcher; import java.util.UUID; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGenerator.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGenerator.java index 6b42b4213..009ed90aa 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGenerator.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGenerator.java @@ -255,7 +255,8 @@ private HalFormsProperty simpleAttributeToProperty(PrefixSettings prefix, Simple var property = HalFormsProperty.named(prefixed.name()) .withPrompt(prefixed.prompt()) .withAttributeType(attribute.getType()) - .withRequired(attribute.hasConstraint(RequiredConstraint.class)); + .withRequired(attribute.hasConstraint(RequiredConstraint.class)) + .withValue(Objects.toString(attribute.getDefaultValue().getValue(), null)); return addAllowedValues(property, attribute, false); } diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/links/factory/LinkFactoryProvider.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/links/factory/LinkFactoryProvider.java index 5a4ad528e..ef5c99142 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/links/factory/LinkFactoryProvider.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/links/factory/LinkFactoryProvider.java @@ -9,7 +9,7 @@ import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.domain.paging.cursor.EncodedCursorPagination; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.rest.EntityRestController; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/ContentRestController.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/ContentRestController.java index 5f179733b..22a89f505 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/ContentRestController.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/ContentRestController.java @@ -8,9 +8,9 @@ import com.contentgrid.appserver.domain.ContentApi; import com.contentgrid.appserver.domain.ContentApi.Content; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; import com.contentgrid.appserver.domain.data.InvalidPropertyDataException; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.version.VersionConstraint; import com.contentgrid.appserver.query.engine.api.exception.EntityIdNotFoundException; import com.contentgrid.appserver.query.engine.api.exception.UnsatisfiedVersionException; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToManyRelationRestController.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToManyRelationRestController.java index f5c011f39..9174c63e6 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToManyRelationRestController.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToManyRelationRestController.java @@ -7,7 +7,7 @@ import com.contentgrid.appserver.application.model.values.PathSegmentName; import com.contentgrid.appserver.domain.DatamodelApi; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.EntityRequest; import com.contentgrid.appserver.domain.values.RelationIdentity; diff --git a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToOneRelationRestController.java b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToOneRelationRestController.java index 0cf45601f..8c8103f43 100644 --- a/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToOneRelationRestController.java +++ b/contentgrid-appserver-rest/src/main/java/com/contentgrid/appserver/rest/property/XToOneRelationRestController.java @@ -8,7 +8,7 @@ import com.contentgrid.appserver.domain.DatamodelApi; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; import com.contentgrid.appserver.domain.data.RelationTarget; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.domain.values.RelationRequest; import com.contentgrid.appserver.domain.values.version.VersionConstraint; diff --git a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/EntityRestControllerTest.java b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/EntityRestControllerTest.java index e075ceda7..e780c04f2 100644 --- a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/EntityRestControllerTest.java +++ b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/EntityRestControllerTest.java @@ -22,7 +22,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.contentgrid.appserver.application.model.attributes.SimpleAttribute.Type; -import com.contentgrid.appserver.domain.data.DataEntry.FileDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.FileDataEntry; import com.contentgrid.appserver.example.ContentgridApp; import com.contentgrid.appserver.query.engine.api.TableCreator; import com.contentgrid.appserver.registry.SingleApplicationResolver; @@ -668,6 +668,10 @@ void getEntity_translations() throws Exception { { name: "gender", prompt: "gender" + }, + { + name: "is_adult", + prompt: "is_adult" } ] } diff --git a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/ProfileRestControllerTest.java b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/ProfileRestControllerTest.java index cb1d209f8..113303c1c 100644 --- a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/ProfileRestControllerTest.java +++ b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/ProfileRestControllerTest.java @@ -586,6 +586,10 @@ void getProfileEntity_translations() throws Exception { { name: "gender", title: "gender" + }, + { + name: "is_adult", + title: "is_adult" } ], "blueprint:relation": [ @@ -765,6 +769,10 @@ void getProfileEntity_translations() throws Exception { name: "gender", prompt: "gender" }, + { + name: "is_adult", + prompt: "is_adult" + }, { name: "invoices", prompt: "invoices" @@ -938,6 +946,9 @@ void getProfileEntity_jsonSchema_translations() throws Exception { gender: { title: "gender" }, + is_adult: { + title: "is_adult" + }, invoices: { title: "invoices" }, diff --git a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/RestFormatterTest.java b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/RestFormatterTest.java index c1c369fd8..6ae8b0c79 100644 --- a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/RestFormatterTest.java +++ b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/RestFormatterTest.java @@ -4,12 +4,11 @@ import static com.contentgrid.appserver.application.model.fixtures.ModelTestFixtures.PRODUCT; import static org.assertj.core.api.Assertions.assertThat; -import com.contentgrid.appserver.domain.data.DataEntry.DecimalDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.PlainDataEntry; -import com.contentgrid.appserver.domain.data.DataEntry.StringDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.DecimalDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.PlainDataEntry; +import com.contentgrid.appserver.application.model.values.DataEntry.StringDataEntry; import com.contentgrid.appserver.domain.data.EntityInstance; -import com.contentgrid.appserver.domain.events.EntityFormatter; -import com.contentgrid.appserver.domain.values.EntityId; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.example.ContentgridApp; import com.contentgrid.appserver.registry.SingleApplicationResolver; diff --git a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGeneratorTest.java b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGeneratorTest.java index 434ad10e8..2a48d2b7f 100644 --- a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGeneratorTest.java +++ b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/hal/forms/HalFormsTemplateGeneratorTest.java @@ -14,6 +14,7 @@ import com.contentgrid.appserver.application.model.values.ApplicationName; import com.contentgrid.appserver.application.model.values.AttributeName; import com.contentgrid.appserver.application.model.values.ColumnName; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.application.model.values.EntityName; import com.contentgrid.appserver.application.model.values.FilterName; import com.contentgrid.appserver.application.model.values.LinkName; @@ -21,7 +22,6 @@ import com.contentgrid.appserver.application.model.values.PropertyPath; import com.contentgrid.appserver.application.model.values.SortableName; import com.contentgrid.appserver.application.model.values.TableName; -import com.contentgrid.appserver.domain.values.EntityId; import com.contentgrid.appserver.domain.values.RelationIdentity; import com.contentgrid.appserver.rest.EncodedCursorPaginationHandlerMethodArgumentResolver; import com.contentgrid.appserver.rest.links.factory.LinkFactoryProvider; @@ -201,6 +201,14 @@ void generateCreateTemplate_noContent() { assertThat(options.getMaxItems()).isOne(); }); }, + isAdult -> { + assertThat(isAdult.getName()).isEqualTo("is_adult"); + assertThat(isAdult.getPrompt()).isEqualTo("is_adult"); + assertThat(isAdult.isReadOnly()).isFalse(); + assertThat(isAdult.isRequired()).isFalse(); + assertThat(isAdult.getType()).isEqualTo(HtmlInputType.CHECKBOX_VALUE); + assertThat(isAdult.getValue()).isEqualTo("true"); + }, invoices -> { assertThat(invoices.getName()).isEqualTo("invoices"); assertThat(invoices.isReadOnly()).isFalse(); diff --git a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/property/RelationRestControllerTest.java b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/property/RelationRestControllerTest.java index e03d1eaca..18303e42e 100644 --- a/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/property/RelationRestControllerTest.java +++ b/contentgrid-appserver-rest/src/test/java/com/contentgrid/appserver/rest/property/RelationRestControllerTest.java @@ -20,9 +20,9 @@ import com.contentgrid.appserver.application.model.relations.OneToManyRelation; import com.contentgrid.appserver.application.model.relations.Relation; import com.contentgrid.appserver.application.model.relations.flags.RequiredEndpointFlag; +import com.contentgrid.appserver.application.model.values.EntityId; import com.contentgrid.appserver.domain.DatamodelApi; import com.contentgrid.appserver.domain.authorization.AuthorizationContext; -import com.contentgrid.appserver.domain.values.EntityId; import com.contentgrid.appserver.domain.values.EntityIdentity; import com.contentgrid.appserver.domain.values.RelationRequest; import com.contentgrid.appserver.domain.values.version.ExactlyVersion;