You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2005/09/08 22:22:14 UTC
svn commit: r279618 - in
/incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator:
DecoratorFactory.java LockDecorator.java SimpleDecoratorFactory.java
Author: jukka
Date: Thu Sep 8 13:21:48 2005
New Revision: 279618
URL: http://svn.apache.org/viewcvs?rev=279618&view=rev
Log:
JCR-EXT: Implemented the SimpleDecoratorFactory and added the LockDecorator.
Added:
incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java (with props)
Modified:
incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/DecoratorFactory.java
incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/SimpleDecoratorFactory.java
Modified: incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/DecoratorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/DecoratorFactory.java?rev=279618&r1=279617&r2=279618&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/DecoratorFactory.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/DecoratorFactory.java Thu Sep 8 13:21:48 2005
@@ -6,7 +6,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -22,22 +22,23 @@
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.Workspace;
+import javax.jcr.lock.Lock;
/**
* Factory interface for creating decorator instances. The decorator
* classes create new decorator instances using a factory to make it
- * easier to customize the behaviour of a decorator layer.
+ * easier to customize the behaviour of a decorator layer.
*/
public interface DecoratorFactory {
/**
* Creates a repository decorator.
- *
+ *
* @param repository the underlying repository instance
* @return decorator for the given repository
*/
- public Repository getRepositoryDecorator(Repository repository);
-
+ Repository getRepositoryDecorator(Repository repository);
+
/**
* Creates a session decorator. The created session decorator will
* return the given repository (decorator) instance from the
@@ -57,7 +58,7 @@
* @param session the underlying session instance
* @return decorator for the given session
*/
- public Session getSessionDecorator(Repository repository, Session session);
+ Session getSessionDecorator(Repository repository, Session session);
/**
* Creates a workspace decorator.
@@ -67,8 +68,8 @@
* @param workspace the underlying workspace instance
* @return workspace decorator
*/
- public Workspace getWorkspaceDecorator(Session session, Workspace workspace);
-
+ Workspace getWorkspaceDecorator(Session session, Workspace workspace);
+
/**
* Creates a node decorator.
*
@@ -77,8 +78,8 @@
* @param node the underlying node instance
* @return node decorator
*/
- public Node getNodeDecorator(Session session, Node node);
-
+ Node getNodeDecorator(Session session, Node node);
+
/**
* Creates a property decorator.
*
@@ -87,8 +88,8 @@
* @param property the underlying property instance
* @return property decorator
*/
- public Property getPropertyDecorator(Session session, Property property);
-
+ Property getPropertyDecorator(Session session, Property property);
+
/**
* Creates an item decorator.
*
@@ -97,6 +98,15 @@
* @param item the underlying item instance
* @return item decorator
*/
- public Item getItemDecorator(Session session, Item item);
-
+ Item getItemDecorator(Session session, Item item);
+
+ /**
+ * Creates a lock decorator.
+ *
+ * @param node the node (decorator) instance to which the lock is bound
+ * @param lock the underlying lock instance
+ * @return lock decorator
+ */
+ Lock getLockDecorator(Node node, Lock lock);
+
}
Added: incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java?rev=279618&view=auto
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java (added)
+++ incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java Thu Sep 8 13:21:48 2005
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation or its licensors,
+ * as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.decorator;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.lock.Lock;
+import javax.jcr.lock.LockException;
+
+public class LockDecorator implements Lock {
+
+ private final Node node;
+
+ private final Lock lock;
+
+ public LockDecorator(Node node, Lock lock) {
+ this.node = node;
+ this.lock = lock;
+ }
+
+ public Node getNode() {
+ return node;
+ }
+
+ public String getLockOwner() {
+ return lock.getLockOwner();
+ }
+
+ public boolean isDeep() {
+ return lock.isDeep();
+ }
+
+ public String getLockToken() {
+ return lock.getLockToken();
+ }
+
+ public boolean isLive() throws RepositoryException {
+ return lock.isLive();
+ }
+
+ public boolean isSessionScoped() {
+ return lock.isSessionScoped();
+ }
+
+ public void refresh() throws LockException, RepositoryException {
+ lock.refresh();
+ }
+
+}
Propchange: incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/LockDecorator.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/SimpleDecoratorFactory.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/SimpleDecoratorFactory.java?rev=279618&r1=279617&r2=279618&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/SimpleDecoratorFactory.java (original)
+++ incubator/jackrabbit/trunk/contrib/jcr-ext/src/java/org/apache/jackrabbit/decorator/SimpleDecoratorFactory.java Thu Sep 8 13:21:48 2005
@@ -6,7 +6,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -22,6 +22,7 @@
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.Workspace;
+import javax.jcr.lock.Lock;
/**
* TODO
@@ -30,25 +31,21 @@
/** {@inheritDoc} */
public Repository getRepositoryDecorator(Repository repository) {
- // TODO Auto-generated method stub
- return null;
+ return new RepositoryDecorator(this, repository);
}
/** {@inheritDoc} */
public Session getSessionDecorator(Repository repository, Session session) {
- // TODO Auto-generated method stub
- return null;
+ return new SessionDecorator(this, repository, session);
}
/** {@inheritDoc} */
public Workspace getWorkspaceDecorator(Session session, Workspace workspace) {
- // TODO Auto-generated method stub
- return null;
+ return new WorkspaceDecorator(this, session, workspace);
}
/** {@inheritDoc} */
public Node getNodeDecorator(Session session, Node node) {
- // TODO Auto-generated method stub
return null;
}
@@ -60,8 +57,17 @@
/** {@inheritDoc} */
public Item getItemDecorator(Session session, Item item) {
- // TODO Auto-generated method stub
- return null;
+ if (item instanceof Node) {
+ return getNodeDecorator(session, (Node) item);
+ } else if (item instanceof Property) {
+ return getPropertyDecorator(session, (Property) item);
+ } else {
+ return new ItemDecorator(this, session, item);
+ }
+ }
+
+ public Lock getLockDecorator(Node node, Lock lock) {
+ return new LockDecorator(node, lock);
}
}