001: /*
002: * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved
003: *
004: * This file is part of Resin(R) Open Source
005: *
006: * Each copy or derived work must preserve the copyright notice and this
007: * notice unmodified.
008: *
009: * Resin Open Source is free software; you can redistribute it and/or modify
010: * it under the terms of the GNU General Public License as published by
011: * the Free Software Foundation; either version 2 of the License, or
012: * (at your option) any later version.
013: *
014: * Resin Open Source is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017: * of NON-INFRINGEMENT. See the GNU General Public License for more
018: * details.
019: *
020: * You should have received a copy of the GNU General Public License
021: * along with Resin Open Source; if not, write to the
022: *
023: * Free Software Foundation, Inc.
024: * 59 Temple Place, Suite 330
025: * Boston, MA 02111-1307 USA
026: *
027: * @author Scott Ferguson
028: */
029:
030: package com.caucho.jcr.base;
031:
032: import javax.jcr.*;
033: import javax.jcr.lock.LockException;
034: import javax.jcr.nodetype.ConstraintViolationException;
035: import javax.jcr.nodetype.NoSuchNodeTypeException;
036: import javax.jcr.version.VersionException;
037:
038: /**
039: * Represents a Node or Property in the repository.
040: */
041: public class BaseItem implements Item {
042: protected BaseItem() {
043: }
044:
045: /**
046: * Returns the full absolute pathname of the item.
047: */
048: public String getPath() throws RepositoryException {
049: throw new UnsupportedOperationException(getClass().getName());
050: }
051:
052: /**
053: * Returns the tail name of the item.
054: */
055: public String getName() throws RepositoryException {
056: throw new UnsupportedOperationException(getClass().getName());
057: }
058:
059: /**
060: * Returns the ancestor given by the depth.
061: */
062: public Item getAncestor(int depth) throws ItemNotFoundException,
063: AccessDeniedException, RepositoryException {
064: Item item = this ;
065:
066: for (; depth > 0; depth--) {
067: item = item.getParent();
068: }
069:
070: return item;
071: }
072:
073: /**
074: * Returns the parent node.
075: */
076: public Node getParent() throws ItemNotFoundException,
077: AccessDeniedException, RepositoryException {
078: throw new UnsupportedOperationException(getClass().getName());
079: }
080:
081: /**
082: * Returns the current depth of the item.
083: */
084: public int getDepth() throws RepositoryException {
085: throw new UnsupportedOperationException(getClass().getName());
086: }
087:
088: /**
089: * Returns the owning session.
090: */
091: public Session getSession() throws RepositoryException {
092: throw new UnsupportedOperationException(getClass().getName());
093: }
094:
095: /**
096: * Returns true for a node (directory).
097: */
098: public boolean isNode() {
099: return false;
100: }
101:
102: /**
103: * Returns true if the item is newly added to the repository.
104: */
105: public boolean isNew() {
106: return false;
107: }
108:
109: /**
110: * Returns true if the item has been modified.
111: */
112: public boolean isModified() {
113: return false;
114: }
115:
116: /**
117: * Returns true if the item is identical to another item.
118: */
119: public boolean isSame(Item otherItem) throws RepositoryException {
120: return this == otherItem;
121: }
122:
123: /**
124: * Visits the node.
125: */
126: public void accept(ItemVisitor visitor) throws RepositoryException {
127: throw new UnsupportedOperationException(getClass().getName());
128: }
129:
130: /**
131: * Saves changes to the item.
132: */
133: public void save() throws AccessDeniedException,
134: ItemExistsException, ConstraintViolationException,
135: InvalidItemStateException, ReferentialIntegrityException,
136: VersionException, LockException, NoSuchNodeTypeException,
137: RepositoryException {
138: throw new UnsupportedOperationException(getClass().getName());
139: }
140:
141: /**
142: * Refreshes data from the backing store.
143: *
144: * @param keepChanges if true, changes are merged from the repository
145: */
146: public void refresh(boolean keepChanges)
147: throws InvalidItemStateException, RepositoryException {
148: throw new UnsupportedOperationException(getClass().getName());
149: }
150:
151: /**
152: * Removes the item from the store.
153: */
154: public void remove() throws VersionException, LockException,
155: ConstraintViolationException, RepositoryException {
156: throw new UnsupportedOperationException(getClass().getName());
157: }
158: }
|