Node getNode(Entry entry) { checkInit(); try { Children.PR.enterReadAccess(); EntrySupportLazyState state = internal.get(); EntryInfo info = state.getEntryToInfo().get(entry); if (info == null) { if (LOGGER.isLoggable(Level.FINER)) { LOGGER.finer("getNode() " + this); LOGGER.finer(" no such entry: " + entry); // NOI18N } return null; } Node node = info.getNode(); return isDummyNode(node) ? null : node; } finally { Children.PR.exitReadAccess(); } }
EntryInfo info = state.getEntryToInfo().get(entry); assert !info.isHidden(); Node node = info.getNode(); if (isDummyNode(node)) { if (invalidEntries == null) {
info = new EntryInfo(this, entry); if (createNodes) { Node n = info.getNode(); if (isDummyNode(n)) {
@Override public Node getNodeAt(int index) { if (!checkInit()) { return null; } Node node = null; while (true) { try { Children.PR.enterReadAccess(); EntrySupportLazyState state = internal.get(); List<Entry> e = notNull(state.getVisibleEntries()); if (index >= e.size()) { return node; } Entry entry = e.get(index); EntryInfo info = state.getEntryToInfo().get(entry); node = info.getNode(); if (!isDummyNode(node)) { return node; } hideEmpty(null, entry); } finally { Children.PR.exitReadAccess(); } if (Children.MUTEX.isReadAccess()) { return node; } } }
@Override public Node get(Entry entry) { EntryInfo info = entryToInfo.get(entry); Node node = info.currentNode(); if (node == null) { node = info.getNode(false, origSnapshot); } if (isDummyNode(node)) { // force new snapshot hideEmpty(null, entry); } return node; } }
Node get(Entry entry) { EntryInfo info = entryToInfo.get(entry); Node node = info.getNode(); if (isDummyNode(node)) { // force new snapshot hideEmpty(null, entry); } return node; }
/** * Gets or computes the nodes. It holds them using weak reference so * they can get garbage collected. */ public final Node getNode() { return getNode(false, null); }