You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2006/08/11 16:00:03 UTC
svn commit: r430791 [2/3] - in
/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi:
./ lock/ name/ nodetype/ operation/ query/ state/ util/ version/ xml/
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java Fri Aug 11 07:00:00 2006
@@ -26,7 +26,9 @@
import javax.jcr.RepositoryException;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
+import javax.jcr.PropertyType;
import javax.jcr.nodetype.PropertyDefinition;
+import java.io.IOException;
/**
* This class implements the <code>PropertyDefinition</code> interface.
@@ -42,7 +44,7 @@
private static Logger log = LoggerFactory.getLogger(PropertyDefinitionImpl.class);
private final ValueFactory valueFactory;
-
+
/**
* Package private constructor
*
@@ -61,20 +63,28 @@
* {@inheritDoc}
*/
public Value[] getDefaultValues() {
- QValue[] defVals = QValue.create(((QPropertyDefinition) itemDef).getDefaultValues());
- if (defVals == null) {
- return null;
+ QPropertyDefinition pDef = ((QPropertyDefinition) itemDef);
+ QValue[] defVals;
+ if (pDef.getRequiredType() == PropertyType.BINARY) {
+ try {
+ defVals = QValue.create(pDef.getDefaultValuesAsStream(), pDef.getRequiredType());
+ } catch (IOException e) {
+ String propName = (getName() == null) ? "[null]" : getName();
+ log.error("Illegal default value specified for property " + propName + " in node type " + getDeclaringNodeType(), e);
+ return null;
+ }
+ } else {
+ defVals = QValue.create(pDef.getDefaultValues(), pDef.getRequiredType());
}
+
Value[] values = new Value[defVals.length];
for (int i = 0; i < defVals.length; i++) {
try {
values[i] = ValueFormat.getJCRValue(defVals[i], nsResolver, valueFactory);
- } catch (RepositoryException re) {
+ } catch (RepositoryException e) {
// should never get here
String propName = (getName() == null) ? "[null]" : getName();
- log.error("illegal default value specified for property "
- + propName + " in node type " + getDeclaringNodeType(),
- re);
+ log.error("illegal default value specified for property " + propName + " in node type " + getDeclaringNodeType(), e);
return null;
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Remove.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Remove.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Remove.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Remove.java Fri Aug 11 07:00:00 2006
@@ -64,4 +64,8 @@
Remove rm = new Remove(state.getId(), state.getParent().getNodeId());
return rm;
}
+
+ public static Operation create(ItemId removeId, NodeId parentId) {
+ return new Remove(removeId, parentId);
+ }
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/NodeIteratorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/NodeIteratorImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/NodeIteratorImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/NodeIteratorImpl.java Fri Aug 11 07:00:00 2006
@@ -17,49 +17,52 @@
package org.apache.jackrabbit.jcr2spi.query;
import org.apache.jackrabbit.jcr2spi.ItemManager;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.jcr2spi.state.ItemStateManager;
import org.apache.jackrabbit.name.QName;
import org.apache.jackrabbit.spi.IdIterator;
import org.apache.jackrabbit.spi.NodeId;
import org.apache.jackrabbit.spi.QueryInfo;
+import org.apache.jackrabbit.spi.ItemId;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
+import javax.jcr.Item;
import java.util.NoSuchElementException;
+import java.util.Iterator;
// DIFF JR: this class uses a different package than the jackrabbit original
/**
* Implements a {@link javax.jcr.NodeIterator} returned by
* {@link javax.jcr.query.QueryResult#getNodes()}.
*/
-class NodeIteratorImpl implements ScoreNodeIterator {
+public class NodeIteratorImpl implements ScoreNodeIterator {
/** Logger instance for this class */
private static final Logger log = LoggerFactory.getLogger(NodeIteratorImpl.class);
/** ItemManager to turn Ids into Node instances */
- protected final ItemManager itemMgr;
+ private final ItemManager itemMgr;
- /** The namespace resolver */
- protected final NamespaceResolver resolver;
+ /** ItemManager to turn Ids into Node instances */
+ private final ItemStateManager itemStateMgr;
/** The query result info */
- protected final QueryInfo queryInfo;
+ private final QueryInfo queryInfo;
/** The ItemId's of the result nodes */
- protected final IdIterator ids;
+ private final IdIterator ids;
/** Index of the jcr:score column. */
- protected final int scoreIndex;
+ private final int scoreIndex;
/** Current position of this node iterator */
- protected int pos = -1;
+ private int pos = -1;
/** Number of invalid nodes */
- protected int invalid = 0;
+ private int invalid = 0;
/** Id of the next Node */
private NodeId nextId;
@@ -70,26 +73,25 @@
/**
* Creates a new <code>NodeIteratorImpl</code> instance.
*
- * @param itemMgr the <code>ItemManager</code> to turn Id's into
- * <code>Node</code> instances.
- * @param resolver the namespace resolver.
+ * @param itemMgr The <code>ItemManager</code> to build <code>Node</code> instances.
+ * @param itemStateMgr The <code>ItemStateManager</code> used to build
+ * <code>ItemState</code>s from the ids returned by the query.
* @param queryInfo the query result.
- * @throws RepositoryException if an error occurs while creating a node
- * iterator.
+ * @throws RepositoryException if an error occurs while creating a node iterator.
*/
// DIFF JR: use QueryInfo instead of UUID String[]
- NodeIteratorImpl(ItemManager itemMgr,
- NamespaceResolver resolver,
- QueryInfo queryInfo) throws RepositoryException {
+ public NodeIteratorImpl(ItemManager itemMgr, ItemStateManager itemStateMgr,
+ QueryInfo queryInfo) throws RepositoryException {
this.itemMgr = itemMgr;
- this.resolver = resolver;
+ this.itemStateMgr = itemStateMgr;
this.queryInfo = queryInfo;
this.ids = queryInfo.getNodeIds();
+
QName[] columnNames = queryInfo.getColumnNames();
int idx = -1;
for (int i = 0; i < columnNames.length; i++) {
if (columnNames[i].getNamespaceURI().equals(QName.NS_JCR_URI)
- && columnNames[i].getLocalName().startsWith(QName.JCR_SCORE.getLocalName())) {
+ && columnNames[i].getLocalName().startsWith(QName.JCR_SCORE.getLocalName())) {
idx = i;
break;
}
@@ -101,39 +103,52 @@
fetchNext();
}
+ //------------------------------------------------------< ScoreIterator >---
/**
- * Returns the next <code>Node</code> in the result set.
+ * Returns the score of the node returned by {@link #nextNode()}. In other
+ * words, this method returns the score value of the next <code>Node</code>.
*
- * @return the next <code>Node</code> in the result set.
- * @throws NoSuchElementException if iteration has no more
- * <code>Node</code>s.
+ * @return the score of the node returned by {@link #nextNode()}.
+ * @throws NoSuchElementException if there is no next node.
+ * @see ScoreNodeIterator#getScore()
*/
- public Node nextNode() throws NoSuchElementException {
- if (next == null) {
+ public float getScore() throws NoSuchElementException {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ String scoreString = queryInfo.getValues(nextId)[scoreIndex];
+ try {
+ return Float.parseFloat(scoreString);
+ } catch (NumberFormatException e) {
throw new NoSuchElementException();
}
- Node n = next;
- fetchNext();
- return n;
}
+ //-------------------------------------------------------< NodeIterator >---
/**
* Returns the next <code>Node</code> in the result set.
*
* @return the next <code>Node</code> in the result set.
- * @throws NoSuchElementException if iteration has no more
- * <code>Node</code>s.
+ * @throws NoSuchElementException if iteration has no more <code>Node</code>s.
+ * @see javax.jcr.NodeIterator#nextNode()
*/
- public Object next() throws NoSuchElementException {
- return nextNode();
+ public Node nextNode() throws NoSuchElementException {
+ if (next == null) {
+ throw new NoSuchElementException();
+ }
+ Node n = next;
+ fetchNext();
+ return n;
}
+ //------------------------------------------------------< RangeIterator >---
/**
* Skip a number of <code>Node</code>s in this iterator.
*
* @param skipNum the non-negative number of <code>Node</code>s to skip
- * @throws NoSuchElementException
- * if skipped past the last <code>Node</code> in this iterator.
+ * @throws NoSuchElementException if skipped past the last <code>Node</code>
+ * in this iterator.
+ * @see javax.jcr.NodeIterator#skip(long)
*/
public void skip(long skipNum) throws NoSuchElementException {
if (skipNum < 0) {
@@ -159,6 +174,7 @@
* invalid node is detected, the size of this iterator is adjusted.
*
* @return the number of node in this iterator.
+ * @see javax.jcr.RangeIterator#getSize()
*/
public long getSize() {
if (ids.getSize() != -1) {
@@ -172,17 +188,30 @@
* Returns the current position in this <code>NodeIterator</code>.
*
* @return the current position in this <code>NodeIterator</code>.
+ * @see javax.jcr.RangeIterator#getPosition()
*/
public long getPosition() {
return pos - invalid;
}
/**
+ * Returns the next <code>Node</code> in the result set.
+ *
+ * @return the next <code>Node</code> in the result set.
+ * @throws NoSuchElementException if iteration has no more <code>Node</code>s.
+ * @see java.util.Iterator#next()
+ */
+ public Object next() throws NoSuchElementException {
+ return nextNode();
+ }
+
+ /**
* Returns <code>true</code> if there is another <code>Node</code>
* available; <code>false</code> otherwise.
*
* @return <code>true</code> if there is another <code>Node</code>
* available; <code>false</code> otherwise.
+ * @see java.util.Iterator#hasNext()
*/
public boolean hasNext() {
return next != null;
@@ -190,30 +219,13 @@
/**
* @throws UnsupportedOperationException always.
+ * @see Iterator#remove()
*/
public void remove() {
throw new UnsupportedOperationException("remove");
}
- /**
- * Returns the score of the node returned by {@link #nextNode()}. In other
- * words, this method returns the score value of the next <code>Node</code>.
- *
- * @return the score of the node returned by {@link #nextNode()}.
- * @throws NoSuchElementException if there is no next node.
- */
- public float getScore() throws NoSuchElementException {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- String scoreString = queryInfo.getValues(nextId)[scoreIndex];
- try {
- return Float.parseFloat(scoreString);
- } catch (NumberFormatException e) {
- throw new NoSuchElementException();
- }
- }
-
+ //------------------------------------------------------------< private >---
/**
* Clears {@link #next} and tries to fetch the next Node instance.
* When this method returns {@link #next} refers to the next available
@@ -221,8 +233,6 @@
* method returns, then there are no more valid element in this iterator.
*/
private void fetchNext() {
- // TODO
- /*
// reset
next = null;
while (next == null && ids.hasNext()) {
@@ -233,7 +243,7 @@
continue;
}
nextId = (NodeId)id;
- Item tmp = itemMgr.getItem(nextId);
+ Item tmp = itemMgr.getItem(itemStateMgr.getItemState(nextId));
if (tmp.isNode()) {
next = (Node) tmp;
@@ -251,6 +261,5 @@
}
}
pos++;
- */
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java Fri Aug 11 07:00:00 2006
@@ -17,8 +17,8 @@
package org.apache.jackrabbit.jcr2spi.query;
import org.apache.jackrabbit.jcr2spi.ItemManager;
-import org.apache.jackrabbit.jcr2spi.SessionImpl;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
+import org.apache.jackrabbit.jcr2spi.state.ItemStateManager;
import org.apache.jackrabbit.name.MalformedPathException;
import org.apache.jackrabbit.name.NamespaceResolver;
import org.apache.jackrabbit.name.NoPrefixDeclaredException;
@@ -26,6 +26,7 @@
import org.apache.jackrabbit.name.PathFormat;
import org.apache.jackrabbit.name.QName;
import org.apache.jackrabbit.name.NameFormat;
+import org.apache.jackrabbit.spi.QueryInfo;
import javax.jcr.ItemExistsException;
import javax.jcr.ItemNotFoundException;
@@ -33,6 +34,7 @@
import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Session;
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.query.InvalidQueryException;
@@ -48,80 +50,80 @@
/**
* The session of the user executing this query
*/
- protected SessionImpl session;
+ private final Session session;
/**
- * The namespace resolver of the session that executes this query.
+ * The namespace nsResolver of the session that executes this query.
*/
// DIFF JR: added
- protected NamespaceResolver resolver;
+ private final NamespaceResolver nsResolver;
/**
* The item manager of the session that executes this query.
*/
- protected ItemManager itemManager;
+ private final ItemManager itemManager;
+
+ /**
+ * The item state manager of the session that executes this query.
+ */
+ private final ItemStateManager itemStateManager;
/**
* The query statement
*/
- protected String statement;
+ private String statement;
/**
* The syntax of the query statement
*/
- protected String language;
+ private String language;
/**
* The node where this query is persisted. Only set when this is a persisted
* query.
*/
- protected Node node;
+ private Node node;
/**
* The query handler for this query.
*/
// DIFF JR: use WorkspaceManager (-> RepositoryService) instead
//protected QueryHandler handler;
- protected WorkspaceManager wspManager;
-
- /**
- * Flag indicating whether this query is initialized.
- */
- private boolean initialized = false;
+ private WorkspaceManager wspManager;
/**
- * Initializes this query.
+ * Creates a new query.
*
* @param session the session that created this query.
+ * @param nsResolver the namespace resolver to be used.
* @param itemMgr the item manager of that session.
+ * @param itemStateManager the item state manager of that session.
* @param wspManager the workspace manager that belongs to the session.
* @param statement the query statement.
* @param language the language of the query statement.
* @throws InvalidQueryException if the query is invalid.
*/
// DIFF JR: uses WorkspaceManager instead of QueryHandler
- public void init(SessionImpl session,
- NamespaceResolver resolver,
- ItemManager itemMgr,
+ public QueryImpl(Session session, NamespaceResolver nsResolver,
+ ItemManager itemMgr, ItemStateManager itemStateManager,
WorkspaceManager wspManager,
- String statement,
- String language) throws InvalidQueryException {
- checkNotInitialized();
+ String statement, String language) throws InvalidQueryException {
this.session = session;
- this.resolver = resolver;
+ this.nsResolver = nsResolver;
this.itemManager = itemMgr;
+ this.itemStateManager = itemStateManager;
this.statement = statement;
this.language = language;
this.wspManager = wspManager;
// DIFF JR: todo validate statement
//this.query = handler.createExecutableQuery(session, itemMgr, statement, language);
- initialized = true;
}
/**
- * Initializes this query from a node.
+ * Creates a query from a node.
*
* @param session the session that created this query.
+ * @param nsResolver the namespace resolver to be used.
* @param itemMgr the item manager of that session.
* @param wspManager the workspace manager that belongs to the session.
* @param node the node from where to read the query.
@@ -130,129 +132,94 @@
* the node.
*/
// DIFF JR: uses WorkspaceManager instead of QueryHandler
- public void init(SessionImpl session,
- NamespaceResolver resolver,
- ItemManager itemMgr,
- WorkspaceManager wspManager,
- Node node)
- throws InvalidQueryException, RepositoryException {
- checkNotInitialized();
+ public QueryImpl(Session session, NamespaceResolver nsResolver,
+ ItemManager itemMgr, ItemStateManager itemStateManager,
+ WorkspaceManager wspManager, Node node)
+ throws InvalidQueryException, RepositoryException {
+
this.session = session;
- this.resolver = resolver;
+ this.nsResolver = nsResolver;
this.itemManager = itemMgr;
+ this.itemStateManager = itemStateManager;
this.node = node;
this.wspManager = wspManager;
try {
- if (!node.isNodeType(NameFormat.format(QName.NT_QUERY, resolver))) {
- throw new InvalidQueryException("node is not of type nt:query");
+ if (!node.isNodeType(NameFormat.format(QName.NT_QUERY, nsResolver))) {
+ throw new InvalidQueryException("Node is not of type nt:query");
}
- statement = node.getProperty(NameFormat.format(QName.JCR_STATEMENT, resolver)).getString();
- language = node.getProperty(NameFormat.format(QName.JCR_LANGUAGE, resolver)).getString();
+ statement = node.getProperty(NameFormat.format(QName.JCR_STATEMENT, nsResolver)).getString();
+ language = node.getProperty(NameFormat.format(QName.JCR_LANGUAGE, nsResolver)).getString();
// DIFF JR: todo validate statement
//query = handler.createExecutableQuery(session, itemMgr, statement, language);
} catch (NoPrefixDeclaredException e) {
throw new RepositoryException(e.getMessage(), e);
}
- initialized = true;
}
/**
- * {@inheritDoc}
+ * @see Query#execute()
*/
public QueryResult execute() throws RepositoryException {
- checkInitialized();
- return new QueryResultImpl(itemManager,
- wspManager.executeQuery(statement, language), resolver);
+ QueryInfo qI = wspManager.executeQuery(statement, language);
+ return new QueryResultImpl(itemManager, itemStateManager, qI, nsResolver);
}
/**
- * {@inheritDoc}
+ * @see Query#getStatement()
*/
public String getStatement() {
- checkInitialized();
return statement;
}
/**
- * {@inheritDoc}
+ * @see Query#getLanguage()
*/
public String getLanguage() {
- checkInitialized();
return language;
}
/**
- * {@inheritDoc}
+ * @see Query#getStoredQueryPath()
*/
- public String getStoredQueryPath()
- throws ItemNotFoundException, RepositoryException {
- checkInitialized();
+ public String getStoredQueryPath() throws ItemNotFoundException, RepositoryException {
if (node == null) {
- throw new ItemNotFoundException("not a persistent query");
+ throw new ItemNotFoundException("Not a persistent query.");
}
return node.getPath();
}
/**
- * {@inheritDoc}
+ * @see Query#storeAsNode(String)
*/
- public Node storeAsNode(String absPath)
- throws ItemExistsException,
- PathNotFoundException,
- VersionException,
- ConstraintViolationException,
- LockException,
- UnsupportedRepositoryOperationException,
- RepositoryException {
+ public Node storeAsNode(String absPath) throws ItemExistsException,
+ PathNotFoundException, VersionException, ConstraintViolationException,
+ LockException, UnsupportedRepositoryOperationException, RepositoryException {
- checkInitialized();
try {
- Path p = PathFormat.parse(absPath, resolver).getNormalizedPath();
+ Path p = PathFormat.parse(absPath, nsResolver).getNormalizedPath();
if (!p.isAbsolute()) {
throw new RepositoryException(absPath + " is not an absolute path");
}
if (session.itemExists(absPath)) {
throw new ItemExistsException(absPath);
}
- String jcrParent = PathFormat.format(p.getAncestor(1), resolver);
+ String jcrParent = PathFormat.format(p.getAncestor(1), nsResolver);
if (!session.itemExists(jcrParent)) {
throw new PathNotFoundException(jcrParent);
}
- String relPath = PathFormat.format(p, resolver).substring(1);
- String ntName = NameFormat.format(QName.NT_QUERY, resolver);
+ String relPath = PathFormat.format(p, nsResolver).substring(1);
+ String ntName = NameFormat.format(QName.NT_QUERY, nsResolver);
Node queryNode = session.getRootNode().addNode(relPath, ntName);
// set properties
- queryNode.setProperty(NameFormat.format(QName.JCR_LANGUAGE, resolver), language);
- queryNode.setProperty(NameFormat.format(QName.JCR_STATEMENT, resolver), statement);
+ queryNode.setProperty(NameFormat.format(QName.JCR_LANGUAGE, nsResolver), language);
+ queryNode.setProperty(NameFormat.format(QName.JCR_STATEMENT, nsResolver), statement);
node = queryNode;
return node;
} catch (MalformedPathException e) {
throw new RepositoryException(e.getMessage(), e);
} catch (NoPrefixDeclaredException e) {
throw new RepositoryException(e.getMessage(), e);
- }
- }
-
- //-----------------------------< internal >---------------------------------
-
- /**
- * Checks if this query is not yet initialized and throws an
- * <code>IllegalStateException</code> if it is already initialized.
- */
- protected void checkNotInitialized() {
- if (initialized) {
- throw new IllegalStateException("already initialized");
- }
- }
-
- /**
- * Checks if this query is initialized and throws an
- * <code>IllegalStateException</code> if it is not yet initialized.
- */
- protected void checkInitialized() {
- if (!initialized) {
- throw new IllegalStateException("not initialized");
}
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java Fri Aug 11 07:00:00 2006
@@ -17,12 +17,13 @@
package org.apache.jackrabbit.jcr2spi.query;
import org.apache.jackrabbit.jcr2spi.ItemManager;
-import org.apache.jackrabbit.jcr2spi.SessionImpl;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
+import org.apache.jackrabbit.jcr2spi.state.ItemStateManager;
import org.apache.jackrabbit.name.NamespaceResolver;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
+import javax.jcr.Session;
import javax.jcr.query.InvalidQueryException;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
@@ -35,13 +36,13 @@
/**
* The <code>Session</code> for this QueryManager.
*/
- private final SessionImpl session;
+ private final Session session;
/**
- * The namespace resolver for this query manager.
+ * The namespace nsResolver for this query manager.
*/
// DIFF JR: added
- private final NamespaceResolver resolver;
+ private final NamespaceResolver nsResolver;
/**
* The <code>ItemManager</code> of for item retrieval in search results
@@ -49,58 +50,65 @@
private final ItemManager itemMgr;
/**
+ * The <code>ItemStateManager</code> of for item retrieval in search results
+ */
+ private final ItemStateManager itemStateManager;
+
+ /**
* The <code>WorkspaceManager</code> where queries are executed.
*/
private final WorkspaceManager wspManager;
/**
* Creates a new <code>QueryManagerImpl</code> for the passed
- * <code>session</code>
+ * <code>Session</code>.
*
* @param session
- * @param resolver
+ * @param nsResolver
* @param itemMgr
+ * @param itemStateManager
* @param wspManager
*/
- public QueryManagerImpl(SessionImpl session,
- NamespaceResolver resolver,
+ public QueryManagerImpl(Session session,
+ NamespaceResolver nsResolver,
ItemManager itemMgr,
+ ItemStateManager itemStateManager,
WorkspaceManager wspManager) {
this.session = session;
- this.resolver = resolver;
+ this.nsResolver = nsResolver;
this.itemMgr = itemMgr;
+ this.itemStateManager = itemStateManager;
this.wspManager = wspManager;
}
/**
- * {@inheritDoc}
+ * @see QueryManager#createQuery(String, String)
*/
public Query createQuery(String statement, String language)
throws InvalidQueryException, RepositoryException {
- sanityCheck();
- QueryImpl query = new QueryImpl();
- query.init(session, resolver, itemMgr, wspManager, statement, language);
+ checkIsAlive();
+ QueryImpl query = new QueryImpl(session, nsResolver, itemMgr, itemStateManager, wspManager, statement, language);
return query;
}
/**
- * {@inheritDoc}
+ * @see QueryManager#getQuery(Node)
*/
public Query getQuery(Node node)
throws InvalidQueryException, RepositoryException {
- sanityCheck();
- QueryImpl query = new QueryImpl();
- query.init(session, resolver, itemMgr, wspManager, node);
+ checkIsAlive();
+ QueryImpl query = new QueryImpl(session, nsResolver, itemMgr, itemStateManager, wspManager, node);
return query;
}
/**
- * {@inheritDoc}
+ * @see QueryManager#getSupportedQueryLanguages()
*/
public String[] getSupportedQueryLanguages() throws RepositoryException {
return wspManager.getSupportedQueryLanguages();
}
+ //------------------------------------------------------------< private >---
/**
* Checks if this <code>QueryManagerImpl</code> instance is still usable,
* otherwise throws a {@link javax.jcr.RepositoryException}.
@@ -108,7 +116,7 @@
* @throws RepositoryException if this query manager is not usable anymore,
* e.g. the corresponding session is closed.
*/
- private void sanityCheck() throws RepositoryException {
+ private void checkIsAlive() throws RepositoryException {
if (!session.isLive()) {
throw new RepositoryException("corresponding session has been closed");
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java Fri Aug 11 07:00:00 2006
@@ -18,6 +18,7 @@
// DIFF JR: this class uses a different package than the jackrabbit original
import org.apache.jackrabbit.jcr2spi.ItemManager;
+import org.apache.jackrabbit.jcr2spi.state.ItemStateManager;
import org.apache.jackrabbit.name.NamespaceResolver;
import org.apache.jackrabbit.name.NoPrefixDeclaredException;
import org.apache.jackrabbit.name.QName;
@@ -34,7 +35,7 @@
/**
* Implements the <code>javax.jcr.query.QueryResult</code> interface.
*/
-public class QueryResultImpl implements QueryResult {
+class QueryResultImpl implements QueryResult {
/**
* The logger instance for this class
@@ -47,12 +48,17 @@
private final ItemManager itemMgr;
/**
+ * The item state manager of the session executing the query
+ */
+ private final ItemStateManager itemStateMgr;
+
+ /**
* The spi query result.
*/
private final QueryInfo queryInfo;
/**
- * The namespace resolver of the session executing the query
+ * The namespace nsResolver of the session executing the query
*/
private final NamespaceResolver nsResolver;
@@ -60,15 +66,16 @@
* Creates a new query result.
*
* @param itemMgr the item manager of the session executing the query.
+ * @param itemStateMgr the item state manager of the session executing the query.
* @param queryInfo the spi query result.
- * @param resolver the namespace nsResolver of the session executing the query.
+ * @param nsResolver the namespace nsResolver of the session executing the query.
*/
- public QueryResultImpl(ItemManager itemMgr,
- QueryInfo queryInfo,
- NamespaceResolver resolver) {
+ QueryResultImpl(ItemManager itemMgr, ItemStateManager itemStateMgr,
+ QueryInfo queryInfo, NamespaceResolver nsResolver) {
this.itemMgr = itemMgr;
+ this.itemStateMgr = itemStateMgr;
this.queryInfo = queryInfo;
- this.nsResolver = resolver;
+ this.nsResolver = nsResolver;
}
/**
@@ -110,6 +117,6 @@
* @return a node iterator over the result nodes.
*/
private ScoreNodeIterator getNodeIterator() throws RepositoryException {
- return new NodeIteratorImpl(itemMgr, nsResolver, queryInfo);
+ return new NodeIteratorImpl(itemMgr, itemStateMgr, queryInfo);
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java Fri Aug 11 07:00:00 2006
@@ -15,7 +15,6 @@
* limitations under the License.
*/
package org.apache.jackrabbit.jcr2spi.query;
-// DIFF JR: this class uses a different package than the jackrabbit original
import org.apache.jackrabbit.name.IllegalNameException;
import org.apache.jackrabbit.name.NamespaceResolver;
@@ -33,12 +32,14 @@
import javax.jcr.RepositoryException;
import javax.jcr.Value;
import javax.jcr.Node;
+import javax.jcr.RangeIterator;
import javax.jcr.query.Row;
import javax.jcr.query.RowIterator;
import java.util.Arrays;
import java.util.HashSet;
import java.util.NoSuchElementException;
import java.util.Set;
+import java.util.Iterator;
/**
* Implements the {@link javax.jcr.query.RowIterator} interface returned by
@@ -77,23 +78,26 @@
this.nsResolver = resolver;
}
+ //--------------------------------------------------------< RowIterator >---
/**
* Returns the next <code>Row</code> in the iteration.
*
* @return the next <code>Row</code> in the iteration.
- * @throws NoSuchElementException if iteration has no more
- * <code>Row</code>s.
+ * @throws NoSuchElementException if iteration has no more <code>Row</code>s.
+ * @see RowIterator#nextRow()
*/
public Row nextRow() throws NoSuchElementException {
return new RowImpl(nodes.getScore(), nodes.nextNode());
}
+ //------------------------------------------------------< RangeIterator >---
/**
* Skip a number of <code>Row</code>s in this iterator.
*
* @param skipNum the non-negative number of <code>Row</code>s to skip
- * @throws NoSuchElementException if skipped past the last
- * <code>Row</code> in this iterator.
+ * @throws NoSuchElementException if skipped past the last <code>Row</code>
+ * in this iterator.
+ * @see javax.jcr.RangeIterator#skip(long)
*/
public void skip(long skipNum) throws NoSuchElementException {
nodes.skip(skipNum);
@@ -103,6 +107,7 @@
* Returns the number of <code>Row</code>s in this iterator.
*
* @return the number of <code>Row</code>s in this iterator.
+ * @see RangeIterator#getSize()
*/
public long getSize() {
return nodes.getSize();
@@ -117,6 +122,7 @@
* i.e. an empty iterator will always return 0.
*
* @return the current position withing this iterator.
+ * @see RangeIterator#getPosition()
*/
public long getPosition() {
return nodes.getPosition();
@@ -124,6 +130,7 @@
/**
* @throws UnsupportedOperationException always.
+ * @see Iterator#remove()
*/
public void remove() {
throw new UnsupportedOperationException("remove");
@@ -135,6 +142,7 @@
* return an <code>Row</code> rather than throwing an exception.)
*
* @return <code>true</code> if the iterator has more elements.
+ * @see Iterator#hasNext()
*/
public boolean hasNext() {
return nodes.hasNext();
@@ -145,13 +153,13 @@
*
* @return the next <code>Row</code> in the iteration.
* @throws NoSuchElementException if iteration has no more <code>Row</code>s.
+ * @see Iterator#next()
*/
public Object next() throws NoSuchElementException {
return nextRow();
}
- //---------------------< class RowImpl >------------------------------------
-
+ //---------------------< inner class RowImpl >------------------------------
/**
* Implements the {@link javax.jcr.query.Row} interface, which represents
* a row in the query result.
@@ -186,11 +194,12 @@
* @param node the underlying <code>Node</code> for this <code>Row</code>.
*/
// DIFF JR: use Node instead of NodeImpl
- RowImpl(float score, Node node) {
+ private RowImpl(float score, Node node) {
this.score = score;
this.node = node;
}
+ //------------------------------------------------------------< Row >---
/**
* Returns an array of all the values in the same order as the property
* names (column names) returned by
@@ -198,7 +207,8 @@
*
* @return a <code>Value</code> array.
* @throws RepositoryException if an error occurs while retrieving the
- * values from the <code>Node</code>.
+ * values from the <code>Node</code>.
+ * @see Row#getValues()
*/
public Value[] getValues() throws RepositoryException {
if (values == null) {
@@ -252,6 +262,7 @@
* among the column names of the query result table.
* @throws RepositoryException if <code>propertyName</code> is not a
* valid property name.
+ * @see Row#getValue(String)
*/
public Value getValue(String propertyName) throws ItemNotFoundException, RepositoryException {
if (propertySet == null) {
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java Fri Aug 11 07:00:00 2006
@@ -348,6 +348,17 @@
}
//------------------------------------------------------< check methods >---
+ /**
+ *
+ * @param parentState
+ * @param options
+ * @throws VersionException
+ * @throws LockException
+ * @throws ItemNotFoundException
+ * @throws ItemExistsException
+ * @throws PathNotFoundException
+ * @throws RepositoryException
+ */
public void checkIsWritable(NodeState parentState, int options) throws VersionException,
LockException, ItemNotFoundException,
ItemExistsException, PathNotFoundException, RepositoryException {
@@ -450,6 +461,21 @@
checkWriteProperty(parentState, propertyName, definition, options);
}
+ /**
+ *
+ * @param parentState
+ * @param propertyName
+ * @param definition
+ * @param options
+ * @throws ConstraintViolationException
+ * @throws AccessDeniedException
+ * @throws VersionException
+ * @throws LockException
+ * @throws ItemNotFoundException
+ * @throws ItemExistsException
+ * @throws PathNotFoundException
+ * @throws RepositoryException
+ */
public void checkWriteProperty(NodeState parentState, QName propertyName, QPropertyDefinition definition, int options)
throws ConstraintViolationException, AccessDeniedException,
VersionException, LockException, ItemNotFoundException,
@@ -640,7 +666,7 @@
return;
}
NodeState nodeState = (itemState.isNode()) ? (NodeState)itemState : itemState.getParent();
- if (!mgrProvider.getVersionManager().isCheckedOut(nodeState.getNodeId())) {
+ if (!mgrProvider.getVersionManager().isCheckedOut(nodeState)) {
throw new VersionException(safeGetJCRPath(nodeState) + " is checked-in");
}
}
@@ -661,7 +687,7 @@
NodeState nodeState = (itemState.isNode())
? ((NodeState)itemState)
: itemState.getParent();
- mgrProvider.getLockManager().checkLock(nodeState.getNodeId());
+ mgrProvider.getLockManager().checkLock(nodeState);
}
/**
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeReferences.java Fri Aug 11 07:00:00 2006
@@ -25,6 +25,7 @@
*/
public interface NodeReferences {
+ // TODO: probably not needed with spi -> remove
// DIFF JR: return NodeId instead of NodeReferenceId
/**
* Returns the identifier of this node references object.
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/SessionItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/SessionItemStateManager.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/SessionItemStateManager.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/SessionItemStateManager.java Fri Aug 11 07:00:00 2006
@@ -58,8 +58,6 @@
import org.apache.jackrabbit.spi.ItemId;
import org.apache.jackrabbit.spi.IdFactory;
import org.apache.jackrabbit.value.QValue;
-import org.apache.jackrabbit.value.ValueHelper;
-import org.apache.jackrabbit.value.ValueFormat;
import javax.jcr.InvalidItemStateException;
import javax.jcr.ItemNotFoundException;
@@ -74,8 +72,6 @@
import javax.jcr.PathNotFoundException;
import javax.jcr.Session;
import javax.jcr.MergeException;
-import javax.jcr.Value;
-import javax.jcr.ValueFactory;
import javax.jcr.version.VersionException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
@@ -89,6 +85,7 @@
import java.util.Arrays;
import java.util.Calendar;
import java.io.InputStream;
+import java.io.IOException;
/**
* <code>SessionItemStateManager</code> ...
@@ -115,7 +112,6 @@
private final NamespaceResolver nsResolver;
private final IdFactory idFactory;
- private final ValueFactory valueFactory;
private final ItemStateValidator validator;
// DIFF JR: store root id. since 'CachingItemStateManager' not used any more
@@ -132,7 +128,6 @@
public SessionItemStateManager(NodeId rootId,
UpdatableItemStateManager workspaceItemStateMgr,
IdFactory idFactory,
- ValueFactory valueFactory,
ItemStateValidator validator,
NamespaceResolver nsResolver) {
this.workspaceItemStateMgr = workspaceItemStateMgr;
@@ -142,8 +137,6 @@
this.validator = validator;
// DIFF JR: idFactory added
this.idFactory = idFactory;
- // DIFF JR: valueFactory added
- this.valueFactory = valueFactory;
this.nsResolver = nsResolver;
this.rootId = rootId;
@@ -348,9 +341,9 @@
}
if (state.isNode()) {
- NodeId nodeId = ((NodeState)state).getNodeId();
+ NodeState nodeState = (NodeState)state;
// build list of 'new', 'modified' or 'stale' descendants
- Iterator iter = getDescendantTransientItemStates(nodeId);
+ Iterator iter = getDescendantTransientItemStates(nodeState);
while (iter.hasNext()) {
ItemState childState = (ItemState) iter.next();
switch (childState.getStatus()) {
@@ -370,7 +363,7 @@
}
// build list of deleted states
- Iterator atticIter = getDescendantTransientItemStatesInAttic(nodeId);
+ Iterator atticIter = getDescendantTransientItemStatesInAttic(nodeState);
while (atticIter.hasNext()) {
ItemState transientState = (ItemState) atticIter.next();
changeLog.deleted(transientState);
@@ -455,11 +448,11 @@
* <p/>
* The instances are returned in depth-first tree traversal order.
*
- * @param parentId the id of the common parent of the transient item state
- * instances to be returned.
+ * @param parent the common parent state of the transient item state
+ * instances to be returned.
* @return an iterator over descendant transient item state instances
*/
- private Iterator getDescendantTransientItemStates(NodeId parentId) {
+ private Iterator getDescendantTransientItemStates(NodeState parent) {
// DIFF JACKRABBIT: if (!transientStateMgr.hasAnyItemStates()) {
if (transientStateMgr.getEntriesCount() == 0) {
return Collections.EMPTY_LIST.iterator();
@@ -478,7 +471,7 @@
// determine relative depth: > 0 means it's a descendant
int depth;
try {
- depth = getHierarchyManager().getRelativeDepth(parentId, state.getId());
+ depth = getHierarchyManager().getRelativeDepth(parent, state);
} catch (ItemNotFoundException infe) {
/**
* one of the parents of the specified item has been
@@ -542,14 +535,14 @@
}
/**
- * Same as <code>{@link #getDescendantTransientItemStates(NodeId)}</code>
+ * Same as <code>{@link #getDescendantTransientItemStates(NodeState)}</code>
* except that item state instances in the attic are returned.
*
- * @param parentId the id of the common parent of the transient item state
- * instances to be returned.
+ * @param parent the common parent of the transient item state
+ * instances to be returned.
* @return an iterator over descendant transient item state instances in the attic
*/
- private Iterator getDescendantTransientItemStatesInAttic(NodeId parentId) {
+ private Iterator getDescendantTransientItemStatesInAttic(NodeState parent) {
// DIFF JACKRABBIT: if (!transientStateMgr.hasAnyItemStatesInAttic()) {
if (!transientStateMgr.hasEntriesInAttic()) {
return Collections.EMPTY_LIST.iterator();
@@ -573,7 +566,7 @@
while (iter.hasNext()) {
ItemState state = (ItemState) iter.next();
// determine relative depth: > 0 means it's a descendant
- int depth = zombieHierMgr.getRelativeDepth(parentId, state.getId());
+ int depth = zombieHierMgr.getRelativeDepth(parent, state);
if (depth < 1) {
// not a descendant
continue;
@@ -675,7 +668,7 @@
throws StaleItemStateException {
ItemState transientState;
if (root.isNode()) {
- Iterator iter = getDescendantTransientItemStatesInAttic((NodeId) root.getId());
+ Iterator iter = getDescendantTransientItemStatesInAttic((NodeState)root);
while (iter.hasNext()) {
transientState = (ItemState) iter.next();
// check if stale
@@ -755,7 +748,7 @@
if (state.isNode()) {
// build list of 'new' or 'modified' descendants
- Iterator iter = getDescendantTransientItemStates((NodeId) state.getId());
+ Iterator iter = getDescendantTransientItemStates((NodeState) state);
while (iter.hasNext()) {
transientState = (ItemState) iter.next();
// fail-fast test: check status of transient state
@@ -1321,9 +1314,11 @@
for (int i = 0; i < pda.length; i++) {
QPropertyDefinition pd = pda[i];
QValue[] autoValue = computeSystemGeneratedPropertyValues(nodeState, pd);
- int propOptions = 0; // nothing to check
- // execute 'addProperty' without adding operation.
- addPropertyState(nodeState, pd.getQName(), pd.getRequiredType(), autoValue, pd, propOptions);
+ if (autoValue != null) {
+ int propOptions = 0; // nothing to check
+ // execute 'addProperty' without adding operation.
+ addPropertyState(nodeState, pd.getQName(), pd.getRequiredType(), autoValue, pd, propOptions);
+ }
}
// recursively add 'auto-create' child nodes defined in node type
@@ -1509,17 +1504,24 @@
* @return the computed values
*/
private QValue[] computeSystemGeneratedPropertyValues(NodeState parent,
- QPropertyDefinition def)
- throws RepositoryException {
+ QPropertyDefinition def) {
QValue[] genValues = null;
/**
* todo: need to come up with some callback mechanism for applying system generated values
* (e.g. using a NodeTypeInstanceHandler interface)
*/
- String[] defaultValues = def.getDefaultValues();
- if (defaultValues != null && defaultValues.length > 0) {
- Value[] vs = ValueHelper.convert(defaultValues, def.getRequiredType(), valueFactory);
- genValues = ValueFormat.getQValues(vs, nsResolver);
+ String[] qDefaultValues = def.getDefaultValues();
+ if (qDefaultValues != null && qDefaultValues.length > 0) {
+ if (def.getRequiredType() == PropertyType.BINARY) {
+ try {
+ genValues = QValue.create(def.getDefaultValuesAsStream(), def.getRequiredType());
+ } catch (IOException e) {
+ log.error("Internal error while build QValue from property definition: ", e.getMessage());
+ return null;
+ }
+ } else {
+ genValues = QValue.create(qDefaultValues, def.getRequiredType());
+ }
} else {
// some predefined nodetypes declare auto-created properties without
// default values
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/LogUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/LogUtil.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/LogUtil.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/LogUtil.java Fri Aug 11 07:00:00 2006
@@ -22,6 +22,8 @@
import org.apache.jackrabbit.name.PathFormat;
import org.apache.jackrabbit.name.NoPrefixDeclaredException;
import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.NameFormat;
import org.apache.jackrabbit.jcr2spi.HierarchyManager;
import org.apache.jackrabbit.jcr2spi.state.ItemState;
import org.apache.jackrabbit.spi.ItemId;
@@ -70,6 +72,24 @@
ItemId id = itemState.getId();
log.error("failed to convert " + id + " to JCR path.");
return id.toString();
+ }
+ }
+
+ /**
+ * Failsafe conversion of a <code>QName</code> to a JCR name for use in
+ * error messages etc.
+ *
+ * @param qName
+ * @param nsResolver
+ * @return JCR name or String representation of the given <code>QName</code>
+ * in case the resolution fails.
+ */
+ public static String saveGetJCRName(QName qName, NamespaceResolver nsResolver) {
+ try {
+ return NameFormat.format(qName, nsResolver);
+ } catch (NoPrefixDeclaredException e) {
+ log.error("failed to convert " + qName + " to JCR name.");
+ return qName.toString();
}
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/ReferenceChangeTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/ReferenceChangeTracker.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/ReferenceChangeTracker.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/ReferenceChangeTracker.java Fri Aug 11 07:00:00 2006
@@ -17,7 +17,6 @@
package org.apache.jackrabbit.jcr2spi.util;
import org.apache.jackrabbit.jcr2spi.state.PropertyState;
-import org.apache.jackrabbit.spi.NodeId;
import org.apache.jackrabbit.value.QValue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,15 +64,15 @@
* Store the given uuid mapping for later lookup using
* <code>#adjustReferences(UpdatableItemStateManager, ItemStateValidator)</code>.
*
- * @param oldNodeId old nodeId
- * @param newNodeId new nodeId
+ * @param oldUUID
+ * @param newUUID
*/
- public void mappedNodeIds(NodeId oldNodeId, NodeId newNodeId) {
- if (oldNodeId.equals(newNodeId) || oldNodeId.getUUID() == null) {
+ public void mappedUUIDs(String oldUUID, String newUUID) {
+ if (oldUUID.equals(newUUID) || oldUUID == null) {
// only remember if uuid exists and has changed
return;
}
- uuidMap.put(oldNodeId.getUUID(), newNodeId.getUUID());
+ uuidMap.put(oldUUID, newUUID);
}
/**
@@ -82,7 +81,7 @@
*
* @param oldReference old uuid represented by the given <code>QValue</code>
* @return mapped new QValue of the reference value or <code>null</code> if no such mapping exists
- * @see #mappedNodeIds(NodeId,NodeId)
+ * @see #mappedUUIDs(String,String)
*/
public QValue getMappedReference(QValue oldReference) {
QValue remapped = null;
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/DefaultVersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/DefaultVersionManager.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/DefaultVersionManager.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/DefaultVersionManager.java Fri Aug 11 07:00:00 2006
@@ -21,7 +21,10 @@
import javax.jcr.RepositoryException;
import javax.jcr.UnsupportedRepositoryOperationException;
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.jcr2spi.state.NodeState;
import org.apache.jackrabbit.spi.NodeId;
+
import java.util.Collection;
/**
@@ -31,17 +34,29 @@
private static Logger log = LoggerFactory.getLogger(DefaultVersionManager.class);
- public void checkin(NodeId nodeId) throws RepositoryException {
+ public void checkin(NodeState nodeState) throws RepositoryException {
throw new UnsupportedRepositoryOperationException("Versioning ist not supported by this repository.");
}
- public void checkout(NodeId nodeId) throws RepositoryException {
+ public void checkout(NodeState nodeState) throws RepositoryException {
throw new UnsupportedRepositoryOperationException("Versioning ist not supported by this repository.");
}
- public boolean isCheckedOut(NodeId nodeId) throws RepositoryException {
+ public boolean isCheckedOut(NodeState nodeState) throws RepositoryException {
log.debug("Versioning is not supported by this repository.");
return true;
+ }
+
+ public void removeVersion(NodeId versionHistoryId, NodeId versionId) throws RepositoryException {
+ throw new UnsupportedRepositoryOperationException("Versioning ist not supported by this repository.");
+ }
+
+ public void addVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel, boolean moveLabel) throws RepositoryException {
+ throw new UnsupportedRepositoryOperationException("Versioning ist not supported by this repository.");
+ }
+
+ public void removeVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel) throws RepositoryException {
+ throw new UnsupportedRepositoryOperationException("Versioning ist not supported by this repository.");
}
public void restore(NodeId nodeId, NodeId versionId, boolean removeExisting) throws RepositoryException {
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java Fri Aug 11 07:00:00 2006
@@ -23,10 +23,6 @@
import org.apache.jackrabbit.jcr2spi.SessionImpl;
import org.apache.jackrabbit.jcr2spi.ItemLifeCycleListener;
import org.apache.jackrabbit.jcr2spi.LazyItemIterator;
-import org.apache.jackrabbit.jcr2spi.operation.AddLabel;
-import org.apache.jackrabbit.jcr2spi.operation.Operation;
-import org.apache.jackrabbit.jcr2spi.operation.RemoveLabel;
-import org.apache.jackrabbit.jcr2spi.operation.Remove;
import org.apache.jackrabbit.jcr2spi.state.NodeState;
import org.apache.jackrabbit.jcr2spi.state.ItemStateException;
import org.apache.jackrabbit.jcr2spi.state.ChildNodeEntry;
@@ -72,10 +68,11 @@
ItemLifeCycleListener[] listeners) throws VersionException {
super(itemMgr, session, state, definition, listeners);
+ this.vhState = state;
+
// retrieve nodestate of the jcr:versionLabels node
- vhState = state;
- if (vhState.hasChildNodeEntry(QName.JCR_VERSIONLABELS)) {
- ChildNodeEntry lnEntry = vhState.getChildNodeEntry(QName.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
+ if (state.hasChildNodeEntry(QName.JCR_VERSIONLABELS)) {
+ ChildNodeEntry lnEntry = state.getChildNodeEntry(QName.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
try {
labelNodeState = lnEntry.getNodeState();
} catch (ItemStateException e) {
@@ -151,8 +148,13 @@
* @see VersionHistory#getVersion(String)
*/
public Version getVersion(String versionName) throws VersionException, RepositoryException {
- NodeState vState = getVersionState(versionName);
- return (Version) itemMgr.getItem(vState);
+ try {
+ NodeState vState = getVersionEntry(versionName).getNodeState();
+ return (Version) itemMgr.getItem(vState);
+ } catch (ItemStateException e) {
+ // should not occur
+ throw new RepositoryException(e);
+ }
}
/**
@@ -167,6 +169,7 @@
try {
return (Version) itemMgr.getItem(vEntry.getNodeState());
} catch (ItemStateException e) {
+ // should not occur
throw new RepositoryException(e);
}
}
@@ -182,10 +185,9 @@
*/
public void addVersionLabel(String versionName, String label, boolean moveLabel) throws VersionException, RepositoryException {
QName qLabel = getQLabel(label);
- // TODO: ev. delegate to versionmanager
ChildNodeEntry vEntry = getVersionEntry(versionName);
- Operation op = AddLabel.create(vhState.getNodeId(), vEntry.getId(), qLabel, moveLabel);
- itemStateMgr.execute(op);
+ // delegate to version manager that operates on workspace directely
+ session.getVersionManager().addVersionLabel(vhState.getNodeId(), vEntry.getId(), qLabel, moveLabel);
}
/**
@@ -197,10 +199,10 @@
*/
public void removeVersionLabel(String label) throws VersionException, RepositoryException {
QName qLabel = getQLabel(label);
- // TODO: ev. delegate to versionmanager
ChildNodeEntry vEntry = getVersionEntryByLabel(getQLabel(label));
- Operation op = RemoveLabel.create(vhState.getNodeId(), vEntry.getId(), qLabel);
- itemStateMgr.execute(op);
+
+ // delegate to version manager that operates on workspace directely
+ session.getVersionManager().removeVersionLabel(vhState.getNodeId(), vEntry.getId(), qLabel);
}
/**
@@ -304,11 +306,9 @@
* @throws RepositoryException
* @see VersionHistory#removeVersion(String)
*/
- public void removeVersion(String versionName) throws ReferentialIntegrityException, AccessDeniedException, UnsupportedRepositoryOperationException, VersionException, RepositoryException {
- NodeState vState = getVersionState(versionName);
- // TODO: ev. delegate to versionmanager
- Operation rm = Remove.create(vState);
- itemStateMgr.execute(rm);
+ public void removeVersion(String versionName) throws RepositoryException {
+ ChildNodeEntry vEntry = getVersionEntry(versionName);
+ session.getVersionManager().removeVersion(vEntry.getId(), vhState.getNodeId());
}
//---------------------------------------------------------------< Item >---
@@ -355,21 +355,6 @@
return vEntry;
}
} catch (NameException e) {
- throw new RepositoryException(e);
- }
- }
-
- /**
- *
- * @param versionName
- * @return
- * @throws VersionException
- * @throws RepositoryException
- */
- private NodeState getVersionState(String versionName) throws VersionException, RepositoryException {
- try {
- return getVersionEntry(versionName).getNodeState();
- } catch (ItemStateException e) {
throw new RepositoryException(e);
}
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java Fri Aug 11 07:00:00 2006
@@ -41,7 +41,8 @@
private static Logger log = LoggerFactory.getLogger(VersionImpl.class);
- public VersionImpl(ItemManager itemMgr, SessionImpl session, NodeState state, NodeDefinition definition, ItemLifeCycleListener[] listeners) {
+ public VersionImpl(ItemManager itemMgr, SessionImpl session, NodeState state,
+ NodeDefinition definition, ItemLifeCycleListener[] listeners) {
super(itemMgr, session, state, definition, listeners);
}
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java Fri Aug 11 07:00:00 2006
@@ -17,6 +17,8 @@
package org.apache.jackrabbit.jcr2spi.version;
import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.jcr2spi.state.NodeState;
import javax.jcr.RepositoryException;
import java.util.Collection;
@@ -26,11 +28,20 @@
*/
public interface VersionManager {
- public void checkin(NodeId nodeId) throws RepositoryException;
+ // TODO fix method definitions (throw clauses)
+ // TODO review usage of NodeId. for Restore it is requried, since the target must not point to an existing node.
- public void checkout(NodeId nodeId) throws RepositoryException;
+ public void checkin(NodeState nodeState) throws RepositoryException;
- public boolean isCheckedOut(NodeId nodeId) throws RepositoryException;
+ public void checkout(NodeState nodeState) throws RepositoryException;
+
+ public boolean isCheckedOut(NodeState nodeState) throws RepositoryException;
+
+ public void removeVersion(NodeId versionHistoryId, NodeId versionId) throws RepositoryException;
+
+ public void addVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel, boolean moveLabel) throws RepositoryException;
+
+ public void removeVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel) throws RepositoryException;
public void restore(NodeId nodeId, NodeId versionId, boolean removeExisting) throws RepositoryException;
@@ -44,7 +55,7 @@
* @return A Collection of <code>ItemId</code> containing the ids of those
* <code>Node</code>s that failed to be merged and need manual resolution
* by the user of the API.
- * @see #resolveMergeConflict(NodeId, NodeId, boolean)
+ * @see #resolveMergeConflict(NodeId,NodeId,boolean)
*/
public Collection merge(NodeId nodeId, String workspaceName, boolean bestEffort) throws RepositoryException;
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java Fri Aug 11 07:00:00 2006
@@ -27,6 +27,9 @@
import org.apache.jackrabbit.jcr2spi.operation.Restore;
import org.apache.jackrabbit.jcr2spi.operation.ResolveMergeConflict;
import org.apache.jackrabbit.jcr2spi.operation.Merge;
+import org.apache.jackrabbit.jcr2spi.operation.Remove;
+import org.apache.jackrabbit.jcr2spi.operation.AddLabel;
+import org.apache.jackrabbit.jcr2spi.operation.RemoveLabel;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
@@ -35,7 +38,6 @@
import org.apache.jackrabbit.spi.EventIterator;
import org.apache.jackrabbit.spi.Event;
import org.apache.jackrabbit.spi.NodeId;
-import org.apache.jackrabbit.spi.PropertyId;
import java.util.Collection;
import java.util.List;
@@ -54,20 +56,26 @@
this.stateManager = stateManager;
}
- public void checkin(NodeId nodeId) throws RepositoryException {
- Operation ci = Checkin.create(nodeId);
+ public void checkin(NodeState nodeState) throws RepositoryException {
+ Operation ci = Checkin.create(nodeState.getNodeId());
stateManager.execute(ci);
}
- public void checkout(NodeId nodeId) throws RepositoryException {
- Operation co = Checkout.create(nodeId);
+ public void checkout(NodeState nodeState) throws RepositoryException {
+ Operation co = Checkout.create(nodeState.getNodeId());
stateManager.execute(co);
}
- public boolean isCheckedOut(NodeId nodeId) throws RepositoryException {
+ /**
+ * Search nearest ancestor that is versionable. If no versionable ancestor
+ * can be found, <code>true</code> is returned.
+ *
+ * @param nodeState
+ * @return
+ * @throws RepositoryException
+ */
+ public boolean isCheckedOut(NodeState nodeState) throws RepositoryException {
try {
- NodeState nodeState = (NodeState) stateManager.getItemState(nodeId);
- // search nearest ancestor that is versionable
/**
* FIXME should not only rely on existence of jcr:isCheckedOut property
* but also verify that node.isNodeType("mix:versionable")==true;
@@ -81,15 +89,28 @@
}
nodeState = parentState;
}
- PropertyId propId = nodeState.getPropertyState(QName.JCR_ISCHECKEDOUT).getPropertyId();
- PropertyState propState = (PropertyState) stateManager.getItemState(propId);
-
+ PropertyState propState = nodeState.getPropertyState(QName.JCR_ISCHECKEDOUT);
Boolean b = Boolean.valueOf(propState.getValue().getString());
return b.booleanValue();
} catch (ItemStateException e) {
// should not occur
throw new RepositoryException(e);
}
+ }
+
+ public void removeVersion(NodeId versionHistoryId, NodeId versionId) throws RepositoryException {
+ Operation op = Remove.create(versionId, versionHistoryId);
+ stateManager.execute(op);
+ }
+
+ public void addVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel, boolean moveLabel) throws RepositoryException {
+ Operation op = AddLabel.create(versionHistoryId, versionId, qLabel, moveLabel);
+ stateManager.execute(op);
+ }
+
+ public void removeVersionLabel(NodeId versionHistoryId, NodeId versionId, QName qLabel) throws RepositoryException {
+ Operation op = RemoveLabel.create(versionHistoryId, versionId, qLabel);
+ stateManager.execute(op);
}
public void restore(NodeId nodeId, NodeId versionId, boolean removeExisting) throws RepositoryException {
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewImportHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewImportHandler.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewImportHandler.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewImportHandler.java Fri Aug 11 07:00:00 2006
@@ -28,8 +28,6 @@
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
-import org.apache.jackrabbit.spi.NodeId;
-import org.apache.jackrabbit.spi.IdFactory;
import java.io.IOException;
import java.io.Reader;
@@ -59,8 +57,8 @@
* @param importer
* @param nsContext
*/
- DocViewImportHandler(Importer importer, NamespaceResolver nsContext, IdFactory idFactory) {
- super(importer, nsContext, idFactory);
+ DocViewImportHandler(Importer importer, NamespaceResolver nsContext) {
+ super(importer, nsContext);
}
/**
@@ -171,7 +169,7 @@
nodeName = ISO9075.decode(nodeName);
// properties
- NodeId id = null;
+ String uuid = null;
QName nodeTypeName = null;
QName[] mixinTypes = null;
@@ -220,14 +218,14 @@
} else if (propName.equals(QName.JCR_UUID)) {
// jcr:uuid
if (attrValue.length() > 0) {
- id = idFactory.createNodeId(attrValue);
+ uuid = attrValue;
}
} else {
props.add(new Importer.PropInfo(propName, PropertyType.UNDEFINED, propValues));
}
}
- Importer.NodeInfo node = new Importer.NodeInfo(nodeName, nodeTypeName, mixinTypes, id);
+ Importer.NodeInfo node = new Importer.NodeInfo(nodeName, nodeTypeName, mixinTypes, uuid);
// all information has been collected, now delegate to importer
importer.startNode(node, props, nsContext);
// push current node data onto stack
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/ImportHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/ImportHandler.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/ImportHandler.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/ImportHandler.java Fri Aug 11 07:00:00 2006
@@ -32,7 +32,6 @@
import javax.jcr.NamespaceException;
import javax.jcr.RepositoryException;
import javax.jcr.NamespaceRegistry;
-import org.apache.jackrabbit.spi.IdFactory;
/**
* An <code>ImportHandler</code> instance can be used to import serialized
@@ -57,7 +56,6 @@
private final Importer importer;
private final NamespaceRegistry nsReg;
private final NamespaceResolver nsResolver;
- private final IdFactory idFactory;
private Locator locator;
private ContentHandler targetHandler;
@@ -77,11 +75,10 @@
// DIFF JACKRABBIT: pass NamespaceRegistry instead of impl.
public ImportHandler(Importer importer, NamespaceResolver nsResolver,
- NamespaceRegistry nsReg, IdFactory idFactory) {
+ NamespaceRegistry nsReg) {
this.importer = importer;
this.nsResolver = nsResolver;
this.nsReg = nsReg;
- this.idFactory = idFactory;
nsContext = new NamespaceContext();
}
@@ -227,9 +224,9 @@
systemViewXML = QName.NS_SV_URI.equals(namespaceURI);
if (systemViewXML) {
- targetHandler = new SysViewImportHandler(importer, nsContext, idFactory);
+ targetHandler = new SysViewImportHandler(importer, nsContext);
} else {
- targetHandler = new DocViewImportHandler(importer, nsContext, idFactory);
+ targetHandler = new DocViewImportHandler(importer, nsContext);
}
targetHandler.startDocument();
initialized = true;
Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/Importer.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/Importer.java?rev=430791&r1=430790&r2=430791&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/Importer.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/Importer.java Fri Aug 11 07:00:00 2006
@@ -18,7 +18,6 @@
import org.apache.jackrabbit.name.NamespaceResolver;
import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.spi.NodeId;
import javax.jcr.RepositoryException;
@@ -61,16 +60,16 @@
private QName name;
private QName nodeTypeName;
private QName[] mixinNames;
- private NodeId id;
+ private String uuid;
public NodeInfo() {
}
- public NodeInfo(QName name, QName nodeTypeName, QName[] mixinNames, NodeId id) {
+ public NodeInfo(QName name, QName nodeTypeName, QName[] mixinNames, String uuid) {
this.name = name;
this.nodeTypeName = nodeTypeName;
this.mixinNames = mixinNames;
- this.id = id;
+ this.uuid = uuid;
}
public void setName(QName name) {
@@ -97,12 +96,12 @@
return mixinNames;
}
- public void setId(NodeId id) {
- this.id = id;
+ public void setUUID(String uuid) {
+ this.uuid = uuid;
}
- public NodeId getId() {
- return id;
+ public String getUUID() {
+ return uuid;
}
}