-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Oobranch c : ootext and rangesort #7788
Conversation
* vendor and browser-specific", so probably best to avoid them if possible. | ||
* | ||
*/ | ||
public static OOText setLocale(OOText s, String locale) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please no single character variables, better give it a more meaningful variable. Same applies for others
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
renamed to OOText ootext
NoSuchElementException, | ||
CreationException { | ||
|
||
final boolean debugThisFun = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can this be removed? Better use LOGGER.debug(...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to use LOGGER.debug() and not to use debugThisFun
- I believe LOGGER calls will be included in production code.
- Is this intended?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this is fine. debug calls are only enabled with the debug flag starting parameter.
Just a question: VoidResult feels a bit strange. Using an optional is no alternative? |
That would be Optional<ERRORTYPE>. Its normal use is Optional<RESULTTYPE> At a call site this would mean using the first alternatives below
Answer:
Just as a basic
Summary: technically could use From this and an earlier question it seems that https://en.wikipedia.org/wiki/Result_type
It can be considered as an extended I used |
Please don't suppose that all the maintainers don't know their stuff, it's just me who asked a question, since Im not a computer scientist by education. Please remember that we do this all in our free time and JabRef as a project for people to learn about Open Source and programming. Especially me. Always learning. 😉 |
But thanks for the very good answer. |
OK, I just needed some phrase to introduce why am I going into these details.
Neither I am. The verbosity and some of the repetition is probably partly due to that: I am clarifying my thoughts |
add comment on RangeSet.add costs use UnoTextRange.compareXXXUnsafe
@antalk2 Would you find time to convert #7788 (comment) into an ADR? 😇 --> https://github.com/adr/adr-manager/ (would be nice for others reading the code later) |
|
||
if (o instanceof ComparableMark) { | ||
ComparableMark other = (ComparableMark) o; | ||
return ((this.position.X == other.position.X) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency I would use also Object.equals
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code is possibly inconsistent with hashCode
using position
below, while I used position.x
and position.y
here.
Part of my confusion comes from that I feel "equal" should consider the content
part,
however in compareTo
I did not want to prescribe comparability for the content
.
I think I implemented equals
and hashCode
because Comparable
seems to require it,
in order to make it suitable as a key in TreeMap
and HashMap
Although compareTo
appeared to me as "natural order", it is probably not that in the sense
as Comparable
expects it. Considering right-to-left languages suggests that it is not even
natural in a non-technical sense.
Dropping implements Comparable<ComparableMark<T>>
, compareTo
, equals
and hashCode
,
adding private static int compareTopToBottomLeftToRight(ComparableMark a, ComparableMark b)
to RangeSortVisual
instead
I seem to have lost my earlier answer suggesting a description in docs/openoffice instead. I wrote this: https://github.com/koppor/jabref/blob/69f7be4215bdbb21789a7946c08bc8a9db4c8719/docs/openoffice/ooresult-ooerror.md I also attempted to compare with other solutions I could come up with: https://github.com/koppor/jabref/blob/69f7be4215bdbb21789a7946c08bc8a9db4c8719/docs/openoffice/ooresult-alternatives.md I think that OOResult as used in OOBibBase2 resulted in too much boilerplate in the actions, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, looks good to me, and all the comments are very appreciated!
90%+ of my comments are nitpicks, so take the "Request changes" with a grain of salt.
- Nitpicks = change them if you agree (e.g., do they improve readability?), but I'd be ok with merging without those changes.
- I'd suggest that you use
/**
for private methods/variables as well, some tools expect it. - Try to avoid having loose comments between methods, it's better if you either make it a JavaDoc or comment inside the method so there is no ambiguity of what it is referring to
switch (tagName) { | ||
case "b": | ||
formatStack.pushLayer(setCharWeight(FontWeight.BOLD)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Siedlerchr shouldn't the indention of case
fail checkstyle?
|
||
public static class HolderComparatorWithinPartition implements Comparator<RangeHolder> { | ||
|
||
XTextRangeCompare cmp; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: private final
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, private final XTextRangeCompare cmp;
HolderComparatorWithinPartition itself could be private as well.
Changed class comment (on to: HolderComparatorWithinPartition)
/**
* Compare two RangeHolders (using RangeHolder.getRange()) within an XText.
*
* Note: since we only look at the ranges, this comparison is generally not consistent with
* `equals` on the RangeHolders. Probably should not be used for key comparison in
* TreeMap<RangeHolder> or Set<RangeHolder>
*
*/
Note: TreeMap<RangeHolder> or Set<RangeHolder>
is hard to read, but I believe javadoc /** */
expects it.
Is there a way to make the comment both readable and javadoc-compatible?
Maybe, like /* Object.equal */
, the content of the "Note:" part it is expected to be well-known among java users,
thus superfluous.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HolderComparatorWithinPartition itself could be private as well.
Fair enough. If you aren't going to use it in a later PR.
Note: TreeMap<RangeHolder> or Set<RangeHolder> is hard to read, but I believe javadoc /** */ expects it.
What about {@code TreeMap<RangeHolder>} or {@code Set<RangeHolder>}
?
Maybe, like /* Object.equal */, the content of the "Note:" part it is expected to be well-known among java users,
thus superfluous.
Kind of, but with /* Object.equal */
, you are already saying that you are @Override
an inherited method. I am also not sure that the concept of consistency with equals is that well-known X)
Perhaps say that the natural ordering isn't consistent with equals? I don't think it is likely to be an issue, and depending on what you are extending with RangeHolder
it might not be true.
throws | ||
WrappedTargetException, | ||
NoDocumentException { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: they are not thrown?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apparently not. Removed.
Question: is there an option or tool to discover such superfluous exception declarations?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is built into IntelliJ :/
Perhaps PMD? I haven't tried any except IntelliJ/CheckStyle. I think any code inspection tool should be able to find them (and a lot more).
Perhaps it is something we should look into adding to our checkstyle settings.
if (positions.size() != inputSize) { | ||
throw new IllegalStateException("visualSort: positions.size() != inputSize"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This cannot happen? One element is added to positions
for each element in inputs
? Or is it thrown if there are changes in the document before the method finishes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say it should not happen.
I think at some point I was losing positions corresponding to some inputs because
set
below was a Set
and reference marks in footnotes mapped to
the exact same coordinates (of the footnote marker), and the Set silently
ignored the duplicates.
UnoScreenRefresh.hasControllersLocked(doc) was another instance: in this case
the cursor position was not updated, and I think we got the same (wrong) position for
each range we wanted to test.
This cannot happen?
I hope it cannot. If it does, we have a problem.
Or is it thrown if there are changes in the document before the method finishes?
I cannot tell what could happen if the user changes the document or even just the cursor position
while we are trying to use it. Neither the documentation of gotoRange nor of getPosition discusses the possibility of failure. Nor does the getViewCursor documentation mentions it. Yet they can, and did fail,
and I was trying to program against observed (as opposed to documented) behaviour.
On the other hand we have two more checks on the size, probably the last one is enough to discover if there is a problem.
Removing the first two tests, keeping only if (result.size() != inputSize)
src/main/java/org/jabref/model/openoffice/rangesort/RangeSortVisual.java
Outdated
Show resolved
Hide resolved
src/main/java/org/jabref/model/openoffice/rangesort/RangeSort.java
Outdated
Show resolved
Hide resolved
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
Okay, in order to move forward I am merging this now |
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
JabRef#7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks
* upstream/main: (45 commits) Squashed 'buildres/csl/csl-styles/' changes from ec4a4c0..176997d (#7910) Update citeproc-java to 3.0.0-alpha.2 (#7911) Search in PDF Files (#2838) Removed references to apache commons logging (#7907) Oobranch c : ootext and rangesort (#7788) Bump jackson-datatype-jsr310 from 2.12.3 to 2.12.4 (#7901) fix markdownlint Bump jackson-dataformat-yaml from 2.12.3 to 2.12.4 (#7899) Bump postgresql from 42.2.22 to 42.2.23 (#7902) Bump classgraph from 4.8.109 to 4.8.110 (#7900) Bump gittools/actions from 0.9.9 to 0.9.10 (#7898) Bump flowless from 0.6.3 to 0.6.4 (#7903) Bump jsoup from 1.13.1 to 1.14.1 (#7904) Bump tika-core from 1.26 to 1.27 (#7897) Try even more empty lines to provoke conflicts in CHANGELOG.md after a release Fix position in CHANGELOG.md Add corporate proxy workaround for Version.getAllAvailableVersions() (#7890) Update to Java 16 in build.gradle (#7892) Preparing Changelog for the next release cycle New development cycle ... # Conflicts: # gradle/wrapper/gradle-wrapper.properties
* step0 : start model/openoffice, logic/openoffice/style * correction: import order * add general utilities * add UNO utilities, move CreationException, NoDocumentException * Xlint:unchecked model/openoffice/util * add ootext * add rangesort * add compareStartsUnsafe, compareStartsThenEndsUnsafe * add Tuple3 * add ootext * add rangesort * delNamesArray size correction * rangeSort update * cleanup * style additions * checkstyle on tests * add missing message * ootext changes from improve-reversibility-rebased-03 * rangesort changes from improve-reversibility-rebased-03 * rangesort update from improve-reversibility-rebased-03 add comment on RangeSet.add costs use UnoTextRange.compareXXXUnsafe * use longer lines in comments * propagate changes from improve-reversibility-rebased-03 * deleted src/main/java/org/jabref/model/openoffice/rangesort/RangeSet.java * deleted src/main/java/org/jabref/model/openoffice/rangesort/RangeSet.java * use StringUtil.isNullOrEmpty * no natural sort for ComparableMark * in response to review #7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks * use {@code }, PMD suggestions * update model/style from improve-reversibility-rebased-03 * update logic/style from improve-reversibility-rebased-03 * replaced single-character names in OOBibStyle.java (in changed part) * some longer names in OOBibStyleGetCitationMarker.java * drop normalizePageInfos, use 'preferred' and 'fallback' in getAuthorLastSeparatorInTextWithFallBack * checkstyle * use putIfAbsent * use "{}" with LOGGER * use Objects.hash and Objects.equals in CitationLookupResult * simplified CitedKey.getBibEntry * more use of "{}" in LOGGER * Citation.lookup: use streams * Citation.lookup: Optional::get before findFirst
* step0 : start model/openoffice, logic/openoffice/style * correction: import order * add general utilities * add UNO utilities, move CreationException, NoDocumentException * Xlint:unchecked model/openoffice/util * add ootext * add rangesort * add compareStartsUnsafe, compareStartsThenEndsUnsafe * add Tuple3 * add ootext * add rangesort * delNamesArray size correction * rangeSort update * cleanup * style additions * add backend * checkstyle on tests * add missing message * add backend * apply oobranch-D-update.patch * apply oobranch-E-update.patch * deleted src/main/java/org/jabref/model/openoffice/rangesort/RangeSet.java * use StringUtil.isNullOrEmpty * no natural sort for ComparableMark * in response to review #7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks * use {@code }, PMD suggestions * update logic/style from improve-reversibility-rebased-03 * update model/style from improve-reversibility-rebased-03 * replaced single-character names in OOBibStyle.java (in changed part) * some longer names in OOBibStyleGetCitationMarker.java * drop normalizePageInfos, use 'preferred' and 'fallback' in getAuthorLastSeparatorInTextWithFallBack * checkstyle * use putIfAbsent * use "{}" with LOGGER * use Objects.hash and Objects.equals in CitationLookupResult * simplified CitedKey.getBibEntry * more use of "{}" in LOGGER * more use of "{}" in LOGGER * Citation.lookup: use streams * Citation.lookup: Optional::get before findFirst * putIfAbsent returns null for new entry * What is 52 in Backend52 * apply 2021-08-20-a/oobranch-E-update.patch Brings oobranch-E up to 89b0968 @ origin/improve-reversibility-rebased-03 Merge remote-tracking branch 'upstream/main' into improve-reversibility-rebased-03 * putIfAbsent returns null for new entry * What is 52 in Backend52 * using orElseThrow * using StringBuilder * refMarkName renamed to markName * import StringBuilder is not needed * orElseThrow correction (now without message) * update * orElseThrow correction * renamed cg to group * drop message not understandable by end user * reorganized reference mark name generation In Backend52: - use a single expression - expand comment - rename refMarkName to markName Collectors.joining(",") moved to Codec52.getUniqueMarkName * renamed nCitations to numberOfCitations and totalCitations * format * insert dummy case JabRef60: branch * indent case-label in model/style * indent case-label in logic/backend * indent case-label in model/ootext * rname cgPageInfos tro pageInfos * renamed cgPageInfo to singlePageInfo * replace Collectors.toSet() with new HashSet<>() * use method reference * drop two comments * use String.join * remove nr/nrm prefixes from NamedRange and NamedRangeManager methods * align dots
* step0 : start model/openoffice, logic/openoffice/style * correction: import order * add general utilities * add UNO utilities, move CreationException, NoDocumentException * Xlint:unchecked model/openoffice/util * add ootext * add rangesort * add compareStartsUnsafe, compareStartsThenEndsUnsafe * add Tuple3 * add ootext * add rangesort * delNamesArray size correction * rangeSort update * cleanup * style additions * add backend * add frontend * add actions * checkstyle on tests * add missing message * add backend * add frontend * add actions * apply oobranch-[DEFG]-update.patch * not using RangeSet * use StringUtil.isNullOrEmpty * no natural sort for ComparableMark * in response to review #7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks * use {@code }, PMD suggestions * update logic/style from improve-reversibility-rebased-03 * update model/style from improve-reversibility-rebased-03 * replaced single-character names in OOBibStyle.java (in changed part) * some longer names in OOBibStyleGetCitationMarker.java * drop normalizePageInfos, use 'preferred' and 'fallback' in getAuthorLastSeparatorInTextWithFallBack * checkstyle * use putIfAbsent * use "{}" with LOGGER * use Objects.hash and Objects.equals in CitationLookupResult * simplified CitedKey.getBibEntry * more use of "{}" in LOGGER * more use of "{}" in LOGGER * more use of "{}" in LOGGER * Citation.lookup: use streams * Citation.lookup: Optional::get before findFirst * putIfAbsent returns null for new entry * What is 52 in Backend52 * apply 2021-08-20-a/oobranch-E-update.patch Brings oobranch-E up to 89b0968 @ origin/improve-reversibility-rebased-03 Merge remote-tracking branch 'upstream/main' into improve-reversibility-rebased-03 * sync to improve-reversibility-rebased-03 cb13256 commit cb13256 (HEAD -> improve-reversibility-rebased-03, origin/improve-reversibility-rebased-03) Author: Antal K <antalk2@gmail.com> Date: Fri Aug 20 11:39:39 2021 +0200 align dots * longer name * follow some PMD suggestions * apply suggested changes
* step0 : start model/openoffice, logic/openoffice/style * correction: import order * add general utilities * add UNO utilities, move CreationException, NoDocumentException * Xlint:unchecked model/openoffice/util * add ootext * add rangesort * add compareStartsUnsafe, compareStartsThenEndsUnsafe * add Tuple3 * add ootext * add rangesort * delNamesArray size correction * rangeSort update * cleanup * style additions * add backend * add frontend * add actions * add gui stuff * integrate * cleanup * checkstyle on tests * add missing message * add backend * add frontend * add actions * add gui stuff * integrate * cleanup * remove duplicate * apply oobranch-[DEFGH]-update.patch * apply oobranch-[DEFGH]-update.patch * not using RangeSet * not using RangeSet * not using RangeSet * merged * cleanup * remove duplicate * toString * add docs/openoffice * markdown-lint * use StringUtil.isNullOrEmpty * no natural sort for ComparableMark * in response to review #7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks * use {@code }, PMD suggestions * use StringUtil.isNullOrEmpty * no natural sort for ComparableMark * in response to review #7788 (review) - more use of StringUtil.isNullOrEmpty - private final XTextRangeCompare cmp; - List<V> partition = partitions.computeIfAbsent(partitionKey, _key -> new ArrayList<>()); - visualSort does not throw WrappedTargetException, NoDocumentException - set renamed to comparableMarks * use {@code }, PMD suggestions * update logic/style from improve-reversibility-rebased-03 * update model/style from improve-reversibility-rebased-03 * update logic/style from improve-reversibility-rebased-03 * update model/style from improve-reversibility-rebased-03 * replaced single-character names in OOBibStyle.java (in changed part) * some longer names in OOBibStyleGetCitationMarker.java * drop normalizePageInfos, use 'preferred' and 'fallback' in getAuthorLastSeparatorInTextWithFallBack * checkstyle * use putIfAbsent * use "{}" with LOGGER * use Objects.hash and Objects.equals in CitationLookupResult * simplified CitedKey.getBibEntry * replaced single-character names in OOBibStyle.java (in changed part) * some longer names in OOBibStyleGetCitationMarker.java * OOBibStyle * checkstyle * use putIfAbsent * use "{}" with LOGGER * use Objects.hash and Objects.equals in CitationLookupResult * simplified CitedKey.getBibEntry * drop import StringUtil * drop import ArrayList * more use of "{}" in LOGGER * more use of "{}" in LOGGER * more use of "{}" in LOGGER * more use of "{}" in LOGGER * more use of "{}" in LOGGER * more use of "{}" in LOGGER * Citation.lookup: use streams * Citation.lookup: use streams * Citation.lookup: Optional::get before findFirst * Citation.lookup: Optional::get before findFirst * removed catch RuntimeException around UnoCursor.getViewCursor Apparently cannot throw here. NoDocumentException is caught elsewhere, before we get here. com.sun.star.uno.RuntimeException is caught below, for cursor.getStart(); * removed catch RuntimeException around UnoCursor.getViewCursor Apparently cannot throw here. NoDocumentException is caught elsewhere, before we get here. com.sun.star.uno.RuntimeException is caught below, for cursor.getStart(); * drop unused message * drop unused message * putIfAbsent returns null for new entry * putIfAbsent returns null for new entry * What is 52 in Backend52 * What is 52 in Backend52 * apply 2021-08-20-a/oobranch-E-update.patch Brings oobranch-E up to 89b0968 @ origin/improve-reversibility-rebased-03 Merge remote-tracking branch 'upstream/main' into improve-reversibility-rebased-03 * apply 2021-08-20-a/oobranch-E-update.patch Brings oobranch-E up to 89b0968 @ origin/improve-reversibility-rebased-03 Merge remote-tracking branch 'upstream/main' into improve-reversibility-rebased-03 * sync to improve-reversibility-rebased-03 cb13256 commit cb13256 (HEAD -> improve-reversibility-rebased-03, origin/improve-reversibility-rebased-03) Author: Antal K <antalk2@gmail.com> Date: Fri Aug 20 11:39:39 2021 +0200 align dots * sync to improve-reversibility-rebased-03 cb13256 commit cb13256 (HEAD -> improve-reversibility-rebased-03, origin/improve-reversibility-rebased-03) Author: Antal K <antalk2@gmail.com> Date: Fri Aug 20 11:39:39 2021 +0200 align dots * longer name * follow some PMD suggestions * follow some PMD suggestions * apply suggested changes * fixed merge errors * reformatted * autoreformatted all oo packages, smaller rewordings, few ide suggestions * autoreformatted all oo tests, fixed l10n, applied small ide suggestions * Applied some ide suggestions, reworded some variables, reworded-removed-reformatted some comments * Changed File to Path Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Co-authored-by: Christoph <siedlerkiller@gmail.com>
Adds