You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/09/09 14:08:44 UTC
svn commit: r1167122 -
/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java
Author: mduerig
Date: Fri Sep 9 12:08:43 2011
New Revision: 1167122
URL: http://svn.apache.org/viewvc?rev=1167122&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
refactor: remove suppress unchecked
Modified:
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java?rev=1167122&r1=1167121&r2=1167122&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java Fri Sep 9 12:08:43 2011
@@ -719,7 +719,7 @@ final class ChildNodeEntriesImpl impleme
* @return a single {@code NodeEntry} or a {@code List} of
* NodeEntry objects.
*/
- private Object get(Name qName) {
+ private Object get0(Name qName) {
LinkedEntries.LinkNode val = nameMap.get(qName);
if (val != null) {
return val.getNodeEntry();
@@ -737,6 +737,32 @@ final class ChildNodeEntriesImpl impleme
}
/**
+ * Returns a single {@code NodeEntry} or an unmodifiable
+ * {@code List} of NodeEntry objects.
+ *
+ *
+ * @param qName
+ * @return a single {@code NodeEntry} or a {@code List} of
+ * NodeEntry objects.
+ */
+ private List<NodeEntry> get(Name qName) {
+ LinkedEntries.LinkNode val = nameMap.get(qName);
+ if (val != null) {
+ return Collections.singletonList(val.getNodeEntry());
+ } else {
+ List<LinkedEntries.LinkNode> l = snsMap.get(qName);
+ if (l != null) {
+ List<NodeEntry> nodeEntries = new ArrayList<NodeEntry>(l.size());
+ for (LinkedEntries.LinkNode ln : l) {
+ nodeEntries.add(ln.getNodeEntry());
+ }
+ return nodeEntries;
+ }
+ }
+ return null;
+ }
+
+ /**
* Returns a unmodifiable List of NodeEntry objects even if the name map
* only contains a single entry for the given name. If no matching entry
* exists for the given {@code Name} an empty list is returned.
@@ -744,36 +770,20 @@ final class ChildNodeEntriesImpl impleme
* @param name
* @return list of entries or an empty list.
*/
- @SuppressWarnings("unchecked")
public List<NodeEntry> getList(Name name) {
- Object obj = get(name);
- if (obj == null) {
+ List<NodeEntry> nodeEntries = get(name);
+ if (nodeEntries == null) {
return Collections.emptyList();
- } else if (obj instanceof List) {
- List<NodeEntry> l = new ArrayList<NodeEntry>((List<NodeEntry>) obj);
- return Collections.unmodifiableList(l);
- } else {
- // NodeEntry
- return Collections.singletonList((NodeEntry)obj);
+ } else {
+ return Collections.unmodifiableList(new ArrayList<NodeEntry>(nodeEntries));
}
}
- @SuppressWarnings("unchecked")
public NodeEntry getNodeEntry(Name name, int index) {
- Object obj = get(name);
- if (obj == null) {
- return null;
- }
- if (obj instanceof List) {
- // map entry is a list of siblings
- return findMatchingEntry((List<NodeEntry>) obj, index);
- } else {
- // map entry is a single child node entry
- if (index == Path.INDEX_DEFAULT) {
- return (NodeEntry) obj;
- }
- }
- return null;
+ List<NodeEntry> obj = get(name);
+ return obj == null
+ ? null
+ : findMatchingEntry(obj, index);
}
public LinkedEntries.LinkNode getLinkNode(Name name, int index) {