diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java b/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java index deb8eed..27a1c29 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/Chinese2ndGenIDCardNumber.java @@ -21,6 +21,8 @@ import java.time.format.DateTimeFormatter; import java.util.Map; import java.util.regex.Matcher; +import javax.annotation.Nullable; + import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import com.google.errorprone.annotations.Immutable; @@ -207,7 +209,7 @@ public class Chinese2ndGenIDCardNumber } @Override - public boolean equals(Object obj) { + public boolean equals(@Nullable Object obj) { return super.equals(obj); } } diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java b/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java index 4db3c28..d604399 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/ValidatableStringRecord.java @@ -22,6 +22,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import xyz.zhouxy.plusone.commons.annotation.ReaderMethod; import xyz.zhouxy.plusone.commons.util.AssertTools; @@ -40,17 +41,16 @@ public abstract class ValidatableStringRecord errorMessageSupplier) { + protected ValidatableStringRecord(String value, Pattern pattern, + Supplier errorMessageSupplier) { this(value, pattern, errorMessageSupplier.get()); } - protected ValidatableStringRecord(@Nonnull String value, @Nonnull Pattern pattern, - @Nonnull String errorMessage) { + protected ValidatableStringRecord(String value, Pattern pattern, String errorMessage) { AssertTools.checkArgument(Objects.nonNull(value), "The value cannot be null."); AssertTools.checkArgument(Objects.nonNull(pattern), "The pattern cannot be null."); this.matcher = pattern.matcher(value); @@ -69,7 +69,7 @@ public abstract class ValidatableStringRecord { private final List content; - private PageResult(List content, long total) { + private PageResult(@Nullable final List content, final long total) { this.content = CollectionTools.nullToEmptyList(content); this.total = total; } @StaticFactoryMethod(PageResult.class) - public static PageResult of(List content, long total) { + public static PageResult of(@Nullable final List content, final long total) { return new PageResult<>(content, total); } diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java index 6eb0106..71e36af 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/PagingAndSortingQueryParams.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.google.common.collect.ImmutableMap; @@ -55,7 +54,7 @@ public class PagingAndSortingQueryParams { private final Map sortableProperties; - public PagingAndSortingQueryParams(@Nonnull Map sortableProperties) { + public PagingAndSortingQueryParams(Map sortableProperties) { AssertTools.checkArgument(CollectionTools.isNotEmpty(sortableProperties), "Sortable properties can not be empty."); sortableProperties.forEach((k, v) -> @@ -66,7 +65,12 @@ public class PagingAndSortingQueryParams { // Setters - public final void setOrderBy(@Nullable List orderBy) { + /** + * 设置排序规则 + * + * @param orderBy 排序规则,不能为空 + */ + public final void setOrderBy(List orderBy) { this.orderBy = orderBy; } @@ -83,7 +87,10 @@ public class PagingAndSortingQueryParams { public final PagingParams buildPagingParams() { final int sizeValue = this.size != null ? this.size : defaultSizeInternal(); final long pageNumValue = this.pageNum != null ? this.pageNum : 1L; - final List propertiesToSort = this.orderBy.stream().map(this::generateSortableProperty) + AssertTools.checkArgument(CollectionTools.isNotEmpty(this.orderBy), + "The 'orderBy' cannot be empty"); + final List propertiesToSort = this.orderBy.stream() + .map(this::generateSortableProperty) .collect(Collectors.toList()); return new PagingParams(sizeValue, pageNumValue, propertiesToSort); } @@ -104,6 +111,7 @@ public class PagingAndSortingQueryParams { } private SortableProperty generateSortableProperty(String orderByStr) { + AssertTools.checkArgument(StringTools.isNotBlank(orderByStr)); AssertTools.checkArgument(RegexTools.matches(orderByStr, SORT_STR_PATTERN)); String[] propertyNameAndOrderType = orderByStr.split("-"); AssertTools.checkArgument(propertyNameAndOrderType.length == 2); diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java index bd60a41..83a259e 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java @@ -76,7 +76,7 @@ public class UnifiedResponse { this.code, this.message, transValue(this.data)); } - private static String transValue(Object value) { + private static String transValue(@Nullable Object value) { if (value == null) { return null; } diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java index a8012a7..0296dc2 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/package-info.java @@ -64,4 +64,7 @@ * * @author ZhouXY */ +@ParametersAreNonnullByDefault package xyz.zhouxy.plusone.commons.model.dto; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java b/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java index d3112a9..c3f1fb6 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/package-info.java @@ -22,4 +22,7 @@ * * @author ZhouXY */ +@ParametersAreNonnullByDefault package xyz.zhouxy.plusone.commons.model; + +import javax.annotation.ParametersAreNonnullByDefault;