Fixes bugs in the regex cite key pattern modifier#6893
Conversation
regex cite key pattern modifierregex cite key pattern modifier
koppor
left a comment
There was a problem hiding this comment.
In general LGTM - just some nitpicks.
| public String format(final String input) { | ||
| Objects.requireNonNull(input); | ||
| if (regex == null) { | ||
| if (regex == null || replacement == null) { |
There was a problem hiding this comment.
Could you switch to Optional<String> as datatype for regex and replacement? JabRef wants to get rid off null.
There was a problem hiding this comment.
Not easily without code-style complaints. regex and replacement are instance fields (private final String).
I believe the choice of using instance fields is to inherit the method logic.cleanup.Formatter#format(String value), which most modifiers do, while still allowing arguments.
The behavior of most code in the citation key patterns is to either return an empty string or an unmodified string on invalid usage. Hence throwing an exception during construction would require code outside of RegexFormatter to deal with that circumstance, which I'd like to avoid due to separation of concerns.
I'd guess the alternative is to create an interface extending logic.cleanup.Formatter with format(String value, String ... args).
I have avoided taking these types of decisions as I am fairly new to Java and JabRef, but I can look into other alternatives.
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
…-issue-6707 * upstream/master: (35 commits) Fix a fetcher test for the ShortDOIService (#6945) Fixes Shared Database: Changes filtering in CoarseChangeFilter to attribute property (#6868) Changed default value of "search and store files relative to bibtex file" to true (#6928) Replace comment by just a failure (#6943) Fix: in entry types editor selected field is not removed after first click (#6941) Fix remove actions for entry types in the editor (#6933) Always use Java 15 (#6929) Update DevDocs: workaround for issues with local openjfx maven libraries (#6931) Fixes bugs in the `regex` cite key pattern modifier (#6893) Add missing author Readability for citation key patterns (#6706) Add new author Reset to master and add default case to switch (#6847) Bump mockito-core from 3.5.10 to 3.5.11 (#6924) Bump byte-buddy-parent from 1.10.14 to 1.10.15 (#6923) Bump org.beryx.jlink from 2.21.4 to 2.22.0 (#6925) Bump xmpbox from 2.0.20 to 2.0.21 (#6926) Bump pascalgn/automerge-action from v0.9.0 to v0.10.0 (#6927) Improve parsing of short DOIs (#6920) Bump junit-vintage-engine from 5.6.2 to 5.7.0 (#6910) ...
* upstream/master: (55 commits) Rename menus citation style in preview style (#6899) Fix for some Unicode characters in citation keys (#6938) Add missing authors Fix a fetcher test for the ShortDOIService (#6945) Fixes Shared Database: Changes filtering in CoarseChangeFilter to attribute property (#6868) Changed default value of "search and store files relative to bibtex file" to true (#6928) Replace comment by just a failure (#6943) Fix: in entry types editor selected field is not removed after first click (#6941) Fix remove actions for entry types in the editor (#6933) Always use Java 15 (#6929) Update DevDocs: workaround for issues with local openjfx maven libraries (#6931) Fixes bugs in the `regex` cite key pattern modifier (#6893) Add missing author Readability for citation key patterns (#6706) Add new author Reset to master and add default case to switch (#6847) Bump mockito-core from 3.5.10 to 3.5.11 (#6924) Bump byte-buddy-parent from 1.10.14 to 1.10.15 (#6923) Bump org.beryx.jlink from 2.21.4 to 2.22.0 (#6925) Bump xmpbox from 2.0.20 to 2.0.21 (#6926) ... # Conflicts: # src/main/java/org/jabref/logic/util/DelayTaskThrottler.java
There are some bugs in the
regexmodifier. The following change-list is preliminary,String(".", "")and(".","")will be considered valid)Change in CHANGELOG.md described (if applicable)Screenshots added in PR description (for UI changes)