KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > jcr > version > VersionImpl


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.jcr.version;
18
19 import java.io.InputStream JavaDoc;
20 import java.util.ArrayList JavaDoc;
21 import java.util.Calendar JavaDoc;
22 import java.util.Collection JavaDoc;
23 import java.util.List JavaDoc;
24
25 import javax.jcr.AccessDeniedException;
26 import javax.jcr.InvalidItemStateException;
27 import javax.jcr.Item;
28 import javax.jcr.ItemExistsException;
29 import javax.jcr.ItemNotFoundException;
30 import javax.jcr.ItemVisitor;
31 import javax.jcr.MergeException;
32 import javax.jcr.NoSuchWorkspaceException;
33 import javax.jcr.Node;
34 import javax.jcr.NodeIterator;
35 import javax.jcr.PathNotFoundException;
36 import javax.jcr.Property;
37 import javax.jcr.PropertyIterator;
38 import javax.jcr.ReferentialIntegrityException;
39 import javax.jcr.RepositoryException;
40 import javax.jcr.Session;
41 import javax.jcr.UnsupportedRepositoryOperationException;
42 import javax.jcr.Value;
43 import javax.jcr.ValueFormatException;
44 import javax.jcr.lock.Lock;
45 import javax.jcr.lock.LockException;
46 import javax.jcr.nodetype.ConstraintViolationException;
47 import javax.jcr.nodetype.NoSuchNodeTypeException;
48 import javax.jcr.nodetype.NodeDefinition;
49 import javax.jcr.nodetype.NodeType;
50 import javax.jcr.version.Version;
51 import javax.jcr.version.VersionException;
52 import javax.jcr.version.VersionHistory;
53
54 import org.alfresco.jcr.item.NodeRefNodeIteratorImpl;
55 import org.alfresco.jcr.util.JCRProxyFactory;
56 import org.alfresco.service.cmr.repository.NodeRef;
57
58
59 /**
60  * Alfresco implementation of a JCR Version
61  *
62  * @author David Caruana
63  */

64 public class VersionImpl implements Version
65 {
66     private VersionHistoryImpl versionHistoryImpl;
67     private org.alfresco.service.cmr.version.Version version;
68     private Version proxy;
69     
70     
71     /**
72      * Construct
73      *
74      * @param versionHistoryImpl
75      * @param version
76      */

77     public VersionImpl(VersionHistoryImpl versionHistoryImpl, org.alfresco.service.cmr.version.Version version)
78     {
79         this.versionHistoryImpl = versionHistoryImpl;
80         this.version = version;
81     }
82
83     /**
84      * Get Version Proxy
85      *
86      * @return
87      */

88     public Version getProxy()
89     {
90         if (proxy == null)
91         {
92             proxy = (Version)JCRProxyFactory.create(this, Version.class, versionHistoryImpl.getSessionImpl());
93         }
94         return proxy;
95     }
96     
97     /*
98      * (non-Javadoc)
99      * @see javax.jcr.version.Version#getContainingHistory()
100      */

101     public VersionHistory getContainingHistory() throws RepositoryException
102     {
103         return versionHistoryImpl.getProxy();
104     }
105
106     /*
107      * (non-Javadoc)
108      * @see javax.jcr.version.Version#getCreated()
109      */

110     public Calendar JavaDoc getCreated() throws RepositoryException
111     {
112         Calendar JavaDoc calendar = Calendar.getInstance();
113         calendar.setTime(version.getCreatedDate());
114         return calendar;
115     }
116
117     /*
118      * (non-Javadoc)
119      * @see javax.jcr.version.Version#getSuccessors()
120      */

121     public Version[] getSuccessors() throws RepositoryException
122     {
123         Collection JavaDoc<org.alfresco.service.cmr.version.Version> successors = versionHistoryImpl.getVersionHistoryImpl().getSuccessors(version);
124         Version[] versions = new Version[successors.size()];
125         int i = 0;
126         for (org.alfresco.service.cmr.version.Version sucessor : successors)
127         {
128             versions[i++] = new VersionImpl(versionHistoryImpl, sucessor).getProxy();
129         }
130         return versions;
131     }
132
133     /*
134      * (non-Javadoc)
135      * @see javax.jcr.version.Version#getPredecessors()
136      */

137     public Version[] getPredecessors() throws RepositoryException
138     {
139         org.alfresco.service.cmr.version.Version predecessor = versionHistoryImpl.getVersionHistoryImpl().getPredecessor(version);
140         Version[] versions = new Version[1];
141         versions[0] = new VersionImpl(versionHistoryImpl, predecessor).getProxy();
142         return versions;
143     }
144
145     /*
146      * (non-Javadoc)
147      * @see javax.jcr.Node#hasNodes()
148      */

149     public boolean hasNodes() throws RepositoryException
150     {
151         return true;
152     }
153
154     /*
155      * (non-Javadoc)
156      * @see javax.jcr.Node#getNodes()
157      */

158     public NodeIterator getNodes() throws RepositoryException
159     {
160         List JavaDoc<NodeRef> nodeRefs = new ArrayList JavaDoc<NodeRef>();
161         nodeRefs.add(version.getFrozenStateNodeRef());
162         return new NodeRefNodeIteratorImpl(versionHistoryImpl.getSessionImpl(), nodeRefs);
163     }
164     
165     // Node implementation
166
// TODO: To support this set of methods will require the projection of all the JCR Version nodes.
167
// That's not simple.
168

169     public Node addNode(String JavaDoc relPath) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, RepositoryException
170     {
171         throw new UnsupportedRepositoryOperationException();
172     }
173
174     public Node addNode(String JavaDoc relPath, String JavaDoc primaryNodeTypeName) throws ItemExistsException, PathNotFoundException, NoSuchNodeTypeException, LockException, VersionException, ConstraintViolationException, RepositoryException
175     {
176         throw new UnsupportedRepositoryOperationException();
177     }
178
179     public void orderBefore(String JavaDoc srcChildRelPath, String JavaDoc destChildRelPath) throws UnsupportedRepositoryOperationException, VersionException, ConstraintViolationException, ItemNotFoundException, LockException, RepositoryException
180     {
181         throw new UnsupportedRepositoryOperationException();
182     }
183
184     public Property setProperty(String JavaDoc name, Value value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
185     {
186         throw new UnsupportedRepositoryOperationException();
187     }
188
189     public Property setProperty(String JavaDoc name, Value value, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
190     {
191         throw new UnsupportedRepositoryOperationException();
192     }
193
194     public Property setProperty(String JavaDoc name, Value[] values) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
195     {
196         throw new UnsupportedRepositoryOperationException();
197     }
198
199     public Property setProperty(String JavaDoc name, Value[] values, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
200     {
201         throw new UnsupportedRepositoryOperationException();
202     }
203
204     public Property setProperty(String JavaDoc name, String JavaDoc[] values) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
205     {
206         throw new UnsupportedRepositoryOperationException();
207     }
208
209     public Property setProperty(String JavaDoc name, String JavaDoc[] values, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
210     {
211         throw new UnsupportedRepositoryOperationException();
212     }
213
214     public Property setProperty(String JavaDoc name, String JavaDoc value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
215     {
216         throw new UnsupportedRepositoryOperationException();
217     }
218
219     public Property setProperty(String JavaDoc name, String JavaDoc value, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
220     {
221         throw new UnsupportedRepositoryOperationException();
222     }
223
224     public Property setProperty(String JavaDoc name, InputStream JavaDoc value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
225     {
226         throw new UnsupportedRepositoryOperationException();
227     }
228
229     public Property setProperty(String JavaDoc name, boolean value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
230     {
231         throw new UnsupportedRepositoryOperationException();
232     }
233
234     public Property setProperty(String JavaDoc name, double value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
235     {
236         throw new UnsupportedRepositoryOperationException();
237     }
238
239     public Property setProperty(String JavaDoc name, long value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
240     {
241         throw new UnsupportedRepositoryOperationException();
242     }
243
244     public Property setProperty(String JavaDoc name, Calendar JavaDoc value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
245     {
246         throw new UnsupportedRepositoryOperationException();
247     }
248
249     public Property setProperty(String JavaDoc name, Node value) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException
250     {
251         throw new UnsupportedRepositoryOperationException();
252     }
253
254     public Node getNode(String JavaDoc relPath) throws PathNotFoundException, RepositoryException
255     {
256         throw new UnsupportedRepositoryOperationException();
257     }
258
259     public NodeIterator getNodes(String JavaDoc namePattern) throws RepositoryException
260     {
261         throw new UnsupportedRepositoryOperationException();
262     }
263
264     public Property getProperty(String JavaDoc relPath) throws PathNotFoundException, RepositoryException
265     {
266         throw new UnsupportedRepositoryOperationException();
267     }
268
269     public PropertyIterator getProperties() throws RepositoryException
270     {
271         throw new UnsupportedRepositoryOperationException();
272     }
273
274     public PropertyIterator getProperties(String JavaDoc namePattern) throws RepositoryException
275     {
276         throw new UnsupportedRepositoryOperationException();
277     }
278
279     public Item getPrimaryItem() throws ItemNotFoundException, RepositoryException
280     {
281         throw new UnsupportedRepositoryOperationException();
282     }
283
284     public String JavaDoc getUUID() throws UnsupportedRepositoryOperationException, RepositoryException
285     {
286         throw new UnsupportedRepositoryOperationException();
287     }
288
289     public int getIndex() throws RepositoryException
290     {
291         throw new UnsupportedRepositoryOperationException();
292     }
293
294     public PropertyIterator getReferences() throws RepositoryException
295     {
296         throw new UnsupportedRepositoryOperationException();
297     }
298
299     public boolean hasNode(String JavaDoc relPath) throws RepositoryException
300     {
301         throw new UnsupportedRepositoryOperationException();
302     }
303
304     public boolean hasProperty(String JavaDoc relPath) throws RepositoryException
305     {
306         throw new UnsupportedRepositoryOperationException();
307     }
308
309     public boolean hasProperties() throws RepositoryException
310     {
311         throw new UnsupportedRepositoryOperationException();
312     }
313
314     public NodeType getPrimaryNodeType() throws RepositoryException
315     {
316         throw new UnsupportedRepositoryOperationException();
317     }
318
319     public NodeType[] getMixinNodeTypes() throws RepositoryException
320     {
321         throw new UnsupportedRepositoryOperationException();
322     }
323
324     public boolean isNodeType(String JavaDoc nodeTypeName) throws RepositoryException
325     {
326         throw new UnsupportedRepositoryOperationException();
327     }
328
329     public void addMixin(String JavaDoc mixinName) throws NoSuchNodeTypeException, VersionException, ConstraintViolationException, LockException, RepositoryException
330     {
331         throw new UnsupportedRepositoryOperationException();
332     }
333
334     public void removeMixin(String JavaDoc mixinName) throws NoSuchNodeTypeException, VersionException, ConstraintViolationException, LockException, RepositoryException
335     {
336         throw new UnsupportedRepositoryOperationException();
337     }
338
339     public boolean canAddMixin(String JavaDoc mixinName) throws NoSuchNodeTypeException, RepositoryException
340     {
341         throw new UnsupportedRepositoryOperationException();
342     }
343
344     public NodeDefinition getDefinition() throws RepositoryException
345     {
346         throw new UnsupportedRepositoryOperationException();
347     }
348
349     public Version checkin() throws VersionException, UnsupportedRepositoryOperationException, InvalidItemStateException, LockException, RepositoryException
350     {
351         throw new UnsupportedRepositoryOperationException();
352     }
353
354     public void checkout() throws UnsupportedRepositoryOperationException, LockException, RepositoryException
355     {
356         throw new UnsupportedRepositoryOperationException();
357     }
358
359     public void doneMerge(Version version) throws VersionException, InvalidItemStateException, UnsupportedRepositoryOperationException, RepositoryException
360     {
361         throw new UnsupportedRepositoryOperationException();
362     }
363
364     public void cancelMerge(Version version) throws VersionException, InvalidItemStateException, UnsupportedRepositoryOperationException, RepositoryException
365     {
366         throw new UnsupportedRepositoryOperationException();
367     }
368
369     public void update(String JavaDoc srcWorkspaceName) throws NoSuchWorkspaceException, AccessDeniedException, LockException, InvalidItemStateException, RepositoryException
370     {
371         throw new UnsupportedRepositoryOperationException();
372     }
373
374     public NodeIterator merge(String JavaDoc srcWorkspace, boolean bestEffort) throws NoSuchWorkspaceException, AccessDeniedException, MergeException, LockException, InvalidItemStateException, RepositoryException
375     {
376         throw new UnsupportedRepositoryOperationException();
377     }
378
379     public String JavaDoc getCorrespondingNodePath(String JavaDoc workspaceName) throws ItemNotFoundException, NoSuchWorkspaceException, AccessDeniedException, RepositoryException
380     {
381         throw new UnsupportedRepositoryOperationException();
382     }
383
384     public boolean isCheckedOut() throws RepositoryException
385     {
386         throw new UnsupportedRepositoryOperationException();
387     }
388
389     public void restore(String JavaDoc versionName, boolean removeExisting) throws VersionException, ItemExistsException, UnsupportedRepositoryOperationException, LockException, InvalidItemStateException, RepositoryException
390     {
391         throw new UnsupportedRepositoryOperationException();
392     }
393
394     public void restore(Version version, boolean removeExisting) throws VersionException, ItemExistsException, UnsupportedRepositoryOperationException, LockException, RepositoryException
395     {
396         throw new UnsupportedRepositoryOperationException();
397     }
398
399     public void restore(Version version, String JavaDoc relPath, boolean removeExisting) throws PathNotFoundException, ItemExistsException, VersionException, ConstraintViolationException, UnsupportedRepositoryOperationException, LockException, InvalidItemStateException, RepositoryException
400     {
401         throw new UnsupportedRepositoryOperationException();
402     }
403
404     public void restoreByLabel(String JavaDoc versionLabel, boolean removeExisting) throws VersionException, ItemExistsException, UnsupportedRepositoryOperationException, LockException, InvalidItemStateException, RepositoryException
405     {
406         throw new UnsupportedRepositoryOperationException();
407     }
408
409     public VersionHistory getVersionHistory() throws UnsupportedRepositoryOperationException, RepositoryException
410     {
411         throw new UnsupportedRepositoryOperationException();
412     }
413
414     public Version getBaseVersion() throws UnsupportedRepositoryOperationException, RepositoryException
415     {
416         throw new UnsupportedRepositoryOperationException();
417     }
418
419     public Lock lock(boolean isDeep, boolean isSessionScoped) throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, InvalidItemStateException, RepositoryException
420     {
421         throw new UnsupportedRepositoryOperationException();
422     }
423
424     public Lock getLock() throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, RepositoryException
425     {
426         throw new UnsupportedRepositoryOperationException();
427     }
428
429     public void unlock() throws UnsupportedRepositoryOperationException, LockException, AccessDeniedException, InvalidItemStateException, RepositoryException
430     {
431         throw new UnsupportedRepositoryOperationException();
432     }
433
434     public boolean holdsLock() throws RepositoryException
435     {
436         throw new UnsupportedRepositoryOperationException();
437     }
438
439     public boolean isLocked() throws RepositoryException
440     {
441         throw new UnsupportedRepositoryOperationException();
442     }
443
444     public String JavaDoc getPath() throws RepositoryException
445     {
446         throw new UnsupportedRepositoryOperationException();
447     }
448
449     public String JavaDoc getName() throws RepositoryException
450     {
451         return version.getVersionLabel();
452     }
453
454     public Item getAncestor(int depth) throws ItemNotFoundException, AccessDeniedException, RepositoryException
455     {
456         throw new UnsupportedRepositoryOperationException();
457     }
458
459     public Node getParent() throws ItemNotFoundException, AccessDeniedException, RepositoryException
460     {
461         throw new UnsupportedRepositoryOperationException();
462     }
463
464     public int getDepth() throws RepositoryException
465     {
466         throw new UnsupportedRepositoryOperationException();
467     }
468
469     public Session getSession() throws RepositoryException
470     {
471         throw new UnsupportedRepositoryOperationException();
472     }
473
474     public boolean isNode()
475     {
476         return true;
477     }
478
479     public boolean isNew()
480     {
481         return false;
482     }
483
484     public boolean isModified()
485     {
486         return false;
487     }
488
489     public boolean isSame(Item otherItem) throws RepositoryException
490     {
491         throw new UnsupportedRepositoryOperationException();
492     }
493
494     public void accept(ItemVisitor visitor) throws RepositoryException
495     {
496         throw new UnsupportedRepositoryOperationException();
497     }
498
499     public void save() throws AccessDeniedException, ItemExistsException, ConstraintViolationException, InvalidItemStateException, ReferentialIntegrityException, VersionException, LockException, NoSuchNodeTypeException, RepositoryException
500     {
501         throw new UnsupportedRepositoryOperationException();
502     }
503
504     public void refresh(boolean keepChanges) throws InvalidItemStateException, RepositoryException
505     {
506         throw new UnsupportedRepositoryOperationException();
507     }
508
509     public void remove() throws VersionException, LockException, ConstraintViolationException, RepositoryException
510     {
511         throw new UnsupportedRepositoryOperationException();
512     }
513
514     
515 }
516
Popular Tags