private File getTempDir(DocumentReference targetContext) { File tempDir = getBaseTempDir(); for (EntityReference ref : targetContext.getReversedReferenceChain()) { tempDir = new File(tempDir, ref.getName()); } try { tempDir.mkdirs(); } catch (Exception ex) { this.logger.warn("Cannot create temporary files", ex); } return tempDir; }
private File getTempDir(DocumentReference targetContext) { File tempDir = getBaseTempDir(); for (EntityReference ref : targetContext.getReversedReferenceChain()) { tempDir = new File(tempDir, ref.getName()); } try { tempDir.mkdirs(); } catch (Exception ex) { this.logger.warn("Cannot create temporary files", ex); } return tempDir; }
@Override public int compare(DocumentReference alice, DocumentReference bob) { Iterator<EntityReference> aliceIterator = alice.getReversedReferenceChain().iterator(); Iterator<EntityReference> bobIterator = bob.getReversedReferenceChain().iterator(); // The number of components in a document reference can vary (e.g. for nested pages). while (aliceIterator.hasNext() && bobIterator.hasNext()) { int diff = aliceIterator.next().getName().compareTo(bobIterator.next().getName()); if (diff != 0) { return diff; } } if (aliceIterator.hasNext()) { // Alice's path is longer. return 1; } else if (bobIterator.hasNext()) { // Bob's path is longer. return -1; } // Both references have the same number of components and they all match. Use the locale as a tie-breaker. String aliceLocale = alice.getLocale() != null ? alice.getLocale().toString() : ""; String bobLocale = bob.getLocale() != null ? bob.getLocale().toString() : ""; return aliceLocale.compareTo(bobLocale); } }