Browse Source

Polishing.

See #3377
pull/3386/head
Mark Paluch 2 months ago
parent
commit
fd4e450a64
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 22
      src/main/java/org/springframework/data/mapping/PropertyPath.java

22
src/main/java/org/springframework/data/mapping/PropertyPath.java

@ -64,11 +64,11 @@ public interface PropertyPath extends Streamable<PropertyPath> {
PropertyPath result = this; PropertyPath result = this;
while (result.hasNext()) { while (result != null && result.hasNext()) {
result = result.next(); result = result.next();
} }
return result; return result == null ? this : result;
} }
/** /**
@ -158,8 +158,8 @@ public interface PropertyPath extends Streamable<PropertyPath> {
} }
/** /**
* Returns an {@link Iterator <PropertyPath>} that iterates over all the partial property paths with the same leaf * Returns an {@link Iterator Iterator of PropertyPath} that iterates over all the partial property paths with the
* type but decreasing length. For example: * same leaf type but decreasing length. For example:
* *
* <pre class="code"> * <pre class="code">
* PropertyPath propertyPath = PropertyPath.from("a.b.c", Some.class); * PropertyPath propertyPath = PropertyPath.from("a.b.c", Some.class);
@ -179,13 +179,12 @@ public interface PropertyPath extends Streamable<PropertyPath> {
/** /**
* Extracts the {@link PropertyPath} chain from the given source {@link String} and {@link TypeInformation}. <br /> * Extracts the {@link PropertyPath} chain from the given source {@link String} and {@link TypeInformation}. <br />
* Uses {@link SimplePropertyPath#SPLITTER} by default and {@link SimplePropertyPath#SPLITTER_FOR_QUOTED} for * Uses {@code (?:[%s]?([%s]*?[^%s]+))} by default and {@code (?:[%s]?([%s]*?[^%s]+))} for
* {@link Pattern#quote(String) quoted} literals. * {@link Pattern#quote(String) quoted} literals.
* <p> * <p>
* Separate parts of the path may be separated by {@code "."} or by {@code "_"} or by camel case. When the match to * Separate parts of the path may be separated by {@code "."} or by {@code "_"} or by camel case. When the match to
* properties is ambiguous longer property names are preferred. So for "userAddressCity" the interpretation * properties is ambiguous longer property names are preferred. So for {@code userAddressCity} the interpretation
* "userAddress.city" is preferred over "user.address.city". * {@code userAddress.city} is preferred over {@code user.address.city}.
* </p>
* *
* @param source a String denoting the property path, must not be {@literal null}. * @param source a String denoting the property path, must not be {@literal null}.
* @param type the owning type of the property path, must not be {@literal null}. * @param type the owning type of the property path, must not be {@literal null}.
@ -197,13 +196,12 @@ public interface PropertyPath extends Streamable<PropertyPath> {
/** /**
* Extracts the {@link PropertyPath} chain from the given source {@link String} and {@link TypeInformation}. <br /> * Extracts the {@link PropertyPath} chain from the given source {@link String} and {@link TypeInformation}. <br />
* Uses {@link SimplePropertyPath#SPLITTER} by default and {@link SimplePropertyPath#SPLITTER_FOR_QUOTED} for * Uses {@code (?:[%s]?([%s]*?[^%s]+))} by default and {@code (?:[%s]?([%s]*?[^%s]+))} for
* {@link Pattern#quote(String) quoted} literals. * {@link Pattern#quote(String) quoted} literals.
* <p> * <p>
* Separate parts of the path may be separated by {@code "."} or by {@code "_"} or by camel case. When the match to * Separate parts of the path may be separated by {@code "."} or by {@code "_"} or by camel case. When the match to
* properties is ambiguous longer property names are preferred. So for "userAddressCity" the interpretation * properties is ambiguous longer property names are preferred. So for {@code userAddressCity} the interpretation
* "userAddress.city" is preferred over "user.address.city". * {@code userAddress.city} is preferred over {@code user.address.city}.
* </p>
* *
* @param source a String denoting the property path, must not be {@literal null}. * @param source a String denoting the property path, must not be {@literal null}.
* @param type the owning type of the property path, must not be {@literal null}. * @param type the owning type of the property path, must not be {@literal null}.

Loading…
Cancel
Save