You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2009/09/18 16:20:50 UTC
svn commit: r816643 - in
/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype:
BitsetENTCacheImpl.java EffectiveNodeTypeCache.java
EffectiveNodeTypeImpl.java
Author: reschke
Date: Fri Sep 18 14:20:50 2009
New Revision: 816643
URL: http://svn.apache.org/viewvc?rev=816643&view=rev
Log:
JCR-2087: parametrize generic types
Modified:
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java?rev=816643&r1=816642&r2=816643&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java Fri Sep 18 14:20:50 2009
@@ -425,7 +425,7 @@
*
* @see Comparable#compareTo(Object)
*/
- public int compareTo(Object other) {
+ public int compareTo(Key other) {
BitsetKey o = (BitsetKey) other;
int res = o.names.length - names.length;
if (res == 0) {
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java?rev=816643&r1=816642&r2=816643&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java Fri Sep 18 14:20:50 2009
@@ -90,7 +90,7 @@
* An <code>ENTKey</code> uniquely identifies
* a combination (i.e. an aggregation) of one or more node types.
*/
- interface Key extends Comparable {
+ interface Key extends Comparable<Key> {
/**
* Returns the node type names of this key.
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java?rev=816643&r1=816642&r2=816643&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java Fri Sep 18 14:20:50 2009
@@ -27,7 +27,6 @@
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
import java.util.Arrays;
@@ -47,38 +46,35 @@
private static Logger log = LoggerFactory.getLogger(EffectiveNodeTypeImpl.class);
// list of explicitly aggregated {i.e. merged) node types
- private final TreeSet mergedNodeTypes = new TreeSet();
+ private final TreeSet<Name> mergedNodeTypes = new TreeSet<Name>();
// list of implicitly aggregated {through inheritance) node types
- private final TreeSet inheritedNodeTypes = new TreeSet();
+ private final TreeSet<Name> inheritedNodeTypes = new TreeSet<Name>();
// list of all either explicitly (through aggregation) or implicitly
// (through inheritance) included node types.
- private final TreeSet allNodeTypes = new TreeSet();
+ private final TreeSet<Name> allNodeTypes = new TreeSet<Name>();
// map of named item definitions (maps name to list of definitions)
- private final Map namedItemDefs = new HashMap();
+ private final Map<Name, List<QItemDefinition>> namedItemDefs = new HashMap<Name, List<QItemDefinition>>();
// list of unnamed item definitions (i.e. residual definitions)
- private final List unnamedItemDefs = new ArrayList();
+ private final List<QItemDefinition> unnamedItemDefs = new ArrayList<QItemDefinition>();
// (optional) set of additional mixins supported on node type
- private Set supportedMixins;
+ private Set<Name> supportedMixins;
/**
* constructor.
*/
- EffectiveNodeTypeImpl(TreeSet mergedNodeTypes, TreeSet inheritedNodeTypes,
- TreeSet allNodeTypes, Map namedItemDefs,
- List unnamedItemDefs, Set supportedMixins) {
+ EffectiveNodeTypeImpl(TreeSet<Name> mergedNodeTypes, TreeSet<Name> inheritedNodeTypes,
+ TreeSet<Name> allNodeTypes, Map<Name, List<QItemDefinition>> namedItemDefs,
+ List<QItemDefinition> unnamedItemDefs, Set<Name> supportedMixins) {
this.mergedNodeTypes.addAll(mergedNodeTypes);
this.inheritedNodeTypes.addAll(inheritedNodeTypes);
this.allNodeTypes.addAll(allNodeTypes);
- Iterator iter = namedItemDefs.keySet().iterator();
- while (iter.hasNext()) {
- Object key = iter.next();
- List list = (List) namedItemDefs.get(key);
- this.namedItemDefs.put(key, new ArrayList(list));
+ for (Map.Entry<Name, List<QItemDefinition>> entry : namedItemDefs.entrySet()) {
+ this.namedItemDefs.put(entry.getKey(), new ArrayList<QItemDefinition>(entry.getValue()));
}
this.unnamedItemDefs.addAll(unnamedItemDefs);
if (supportedMixins != null) {
- this.supportedMixins = new HashSet();
+ this.supportedMixins = new HashSet<Name>();
this.supportedMixins.addAll(supportedMixins);
}
}
@@ -88,21 +84,21 @@
* @see EffectiveNodeType#getInheritedNodeTypes()
*/
public Name[] getInheritedNodeTypes() {
- return (Name[]) inheritedNodeTypes.toArray(new Name[inheritedNodeTypes.size()]);
+ return inheritedNodeTypes.toArray(new Name[inheritedNodeTypes.size()]);
}
/**
* @see EffectiveNodeType#getAllNodeTypes()
*/
public Name[] getAllNodeTypes() {
- return (Name[]) allNodeTypes.toArray(new Name[allNodeTypes.size()]);
+ return allNodeTypes.toArray(new Name[allNodeTypes.size()]);
}
/**
* @see EffectiveNodeType#getMergedNodeTypes()
*/
public Name[] getMergedNodeTypes() {
- return (Name[]) mergedNodeTypes.toArray(new Name[mergedNodeTypes.size()]);
+ return mergedNodeTypes.toArray(new Name[mergedNodeTypes.size()]);
}
/**
@@ -112,20 +108,15 @@
if (namedItemDefs.size() == 0 && unnamedItemDefs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size() + unnamedItemDefs.size());
- Iterator iter = unnamedItemDefs.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size() + unnamedItemDefs.size());
+ for (QItemDefinition qDef : unnamedItemDefs) {
if (qDef.definesNode()) {
defs.add(qDef);
}
}
- iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (qDef.definesNode()) {
defs.add(qDef);
}
@@ -134,7 +125,7 @@
if (defs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QNodeDefinition[]) defs.toArray(new QNodeDefinition[defs.size()]);
+ return defs.toArray(new QNodeDefinition[defs.size()]);
}
/**
@@ -144,20 +135,14 @@
if (namedItemDefs.size() == 0 && unnamedItemDefs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size() + unnamedItemDefs.size());
- Iterator iter = unnamedItemDefs.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size() + unnamedItemDefs.size());
+ for (QItemDefinition qDef : unnamedItemDefs) {
if (!qDef.definesNode()) {
defs.add(qDef);
}
}
- iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (!qDef.definesNode()) {
defs.add(qDef);
}
@@ -166,7 +151,7 @@
if (defs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- return (QPropertyDefinition[]) defs.toArray(new QPropertyDefinition[defs.size()]);
+ return defs.toArray(new QPropertyDefinition[defs.size()]);
}
/**
@@ -178,13 +163,9 @@
if (namedItemDefs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size());
- Iterator iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size());
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (qDef.definesNode() && qDef.isAutoCreated()) {
defs.add(qDef);
}
@@ -193,7 +174,7 @@
if (defs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QNodeDefinition[]) defs.toArray(new QNodeDefinition[defs.size()]);
+ return defs.toArray(new QNodeDefinition[defs.size()]);
}
/**
@@ -205,13 +186,9 @@
if (namedItemDefs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size());
- Iterator iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size());
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (!qDef.definesNode() && qDef.isAutoCreated()) {
defs.add(qDef);
}
@@ -220,7 +197,7 @@
if (defs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- return (QPropertyDefinition[]) defs.toArray(new QPropertyDefinition[defs.size()]);
+ return defs.toArray(new QPropertyDefinition[defs.size()]);
}
/**
@@ -232,13 +209,9 @@
if (namedItemDefs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size());
- Iterator iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size());
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (!qDef.definesNode() && qDef.isMandatory()) {
defs.add(qDef);
}
@@ -247,7 +220,7 @@
if (defs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- return (QPropertyDefinition[]) defs.toArray(new QPropertyDefinition[defs.size()]);
+ return defs.toArray(new QPropertyDefinition[defs.size()]);
}
/**
@@ -259,13 +232,9 @@
if (namedItemDefs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size());
- Iterator iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- List list = (List) iter.next();
- Iterator iter1 = list.iterator();
- while (iter1.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter1.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size());
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ for (QItemDefinition qDef : list) {
if (qDef.definesNode() && qDef.isMandatory()) {
defs.add(qDef);
}
@@ -274,21 +243,19 @@
if (defs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QNodeDefinition[]) defs.toArray(new QNodeDefinition[defs.size()]);
+ return defs.toArray(new QNodeDefinition[defs.size()]);
}
/**
* @see EffectiveNodeType#getNamedQNodeDefinitions(Name)
*/
public QNodeDefinition[] getNamedQNodeDefinitions(Name name) {
- List list = (List) namedItemDefs.get(name);
+ List<QItemDefinition> list = namedItemDefs.get(name);
if (list == null || list.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(list.size());
- Iterator iter = list.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(list.size());
+ for (QItemDefinition qDef : list) {
if (qDef.definesNode()) {
defs.add(qDef);
}
@@ -296,7 +263,7 @@
if (defs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QNodeDefinition[]) defs.toArray(new QNodeDefinition[defs.size()]);
+ return defs.toArray(new QNodeDefinition[defs.size()]);
}
/**
@@ -306,10 +273,8 @@
if (unnamedItemDefs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(unnamedItemDefs.size());
- Iterator iter = unnamedItemDefs.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(unnamedItemDefs.size());
+ for (QItemDefinition qDef : unnamedItemDefs) {
if (qDef.definesNode()) {
defs.add(qDef);
}
@@ -317,21 +282,19 @@
if (defs.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QNodeDefinition[]) defs.toArray(new QNodeDefinition[defs.size()]);
+ return defs.toArray(new QNodeDefinition[defs.size()]);
}
/**
* @see EffectiveNodeType#getNamedQPropertyDefinitions(Name)
*/
public QPropertyDefinition[] getNamedQPropertyDefinitions(Name name) {
- List list = (List) namedItemDefs.get(name);
+ List<QItemDefinition> list = namedItemDefs.get(name);
if (list == null || list.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(list.size());
- Iterator iter = list.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(list.size());
+ for (QItemDefinition qDef : list) {
if (!qDef.definesNode()) {
defs.add(qDef);
}
@@ -339,7 +302,7 @@
if (defs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- return (QPropertyDefinition[]) defs.toArray(new QPropertyDefinition[defs.size()]);
+ return defs.toArray(new QPropertyDefinition[defs.size()]);
}
/**
@@ -349,10 +312,8 @@
if (unnamedItemDefs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(unnamedItemDefs.size());
- Iterator iter = unnamedItemDefs.iterator();
- while (iter.hasNext()) {
- QItemDefinition qDef = (QItemDefinition) iter.next();
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(unnamedItemDefs.size());
+ for (QItemDefinition qDef : unnamedItemDefs) {
if (!qDef.definesNode()) {
defs.add(qDef);
}
@@ -360,7 +321,7 @@
if (defs.size() == 0) {
return QPropertyDefinition.EMPTY_ARRAY;
}
- return (QPropertyDefinition[]) defs.toArray(new QPropertyDefinition[defs.size()]);
+ return defs.toArray(new QPropertyDefinition[defs.size()]);
}
/**
@@ -490,30 +451,29 @@
if (namedItemDefs.size() == 0) {
return QItemDefinition.EMPTY_ARRAY;
}
- ArrayList defs = new ArrayList(namedItemDefs.size());
- Iterator iter = namedItemDefs.values().iterator();
- while (iter.hasNext()) {
- defs.addAll((List) iter.next());
+ ArrayList<QItemDefinition> defs = new ArrayList<QItemDefinition>(namedItemDefs.size());
+ for (List<QItemDefinition> list : namedItemDefs.values()) {
+ defs.addAll(list);
}
if (defs.size() == 0) {
return QItemDefinition.EMPTY_ARRAY;
}
- return (QItemDefinition[]) defs.toArray(new QItemDefinition[defs.size()]);
+ return defs.toArray(new QItemDefinition[defs.size()]);
}
private QItemDefinition[] getNamedItemDefs(Name name) {
- List list = (List) namedItemDefs.get(name);
+ List<QItemDefinition> list = namedItemDefs.get(name);
if (list == null || list.size() == 0) {
return QNodeDefinition.EMPTY_ARRAY;
}
- return (QItemDefinition[]) list.toArray(new QItemDefinition[list.size()]);
+ return list.toArray(new QItemDefinition[list.size()]);
}
private QItemDefinition[] getUnnamedItemDefs() {
if (unnamedItemDefs.size() == 0) {
return QItemDefinition.EMPTY_ARRAY;
}
- return (QItemDefinition[]) unnamedItemDefs.toArray(new QItemDefinition[unnamedItemDefs.size()]);
+ return unnamedItemDefs.toArray(new QItemDefinition[unnamedItemDefs.size()]);
}
/**
@@ -527,7 +487,7 @@
EffectiveNodeTypeImpl merge(EffectiveNodeTypeImpl other)
throws ConstraintViolationException {
// create a clone of this instance and perform the merge on
- // the 'clone' to avoid a potentially inconsistant state
+ // the 'clone' to avoid a potentially inconsistent state
// of this instance if an exception is thrown during
// the merge.
EffectiveNodeTypeImpl copy = (EffectiveNodeTypeImpl) clone();
@@ -573,12 +533,12 @@
continue;
}
Name name = qDef.getName();
- List existingDefs = (List) namedItemDefs.get(name);
+ List<QItemDefinition> existingDefs = namedItemDefs.get(name);
if (existingDefs != null) {
if (existingDefs.size() > 0) {
// there already exists at least one definition with that name
for (int j = 0; j < existingDefs.size(); j++) {
- QItemDefinition qItemDef = (QItemDefinition) existingDefs.get(j);
+ QItemDefinition qItemDef = existingDefs.get(j);
// make sure none of them is auto-create
if (qDef.isAutoCreated() || qItemDef.isAutoCreated()) {
// conflict
@@ -628,7 +588,7 @@
}
}
} else {
- existingDefs = new ArrayList();
+ existingDefs = new ArrayList<QItemDefinition>();
namedItemDefs.put(name, existingDefs);
}
existingDefs.add(qDef);
@@ -642,9 +602,7 @@
// ignore redundant definitions
continue;
}
- Iterator iter = unnamedItemDefs.iterator();
- while (iter.hasNext()) {
- QItemDefinition existing = (QItemDefinition) iter.next();
+ for (QItemDefinition existing : unnamedItemDefs) {
// compare with existing definition
if (qDef.definesNode() == existing.definesNode()) {
if (!qDef.definesNode()) {