/*
* Copyright (c) 1998-2011 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Resin Open Source is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
* of NON-INFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*
* Free Software Foundation, Inc.
* 59 Temple Place, Suite 330
* Boston, MA 02111-1307 USA
*
* @author Scott Ferguson
*/
package com.caucho.jcr.base;
import javax.jcr.*;
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
import javax.jcr.version.VersionException;
/**
* Represents a Node or Property in the repository.
*/
public class BaseItem implements Item {
protected BaseItem()
{
}
/**
* Returns the full absolute pathname of the item.
*/
public String getPath()
throws RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Returns the tail name of the item.
*/
public String getName()
throws RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Returns the ancestor given by the depth.
*/
public Item getAncestor(int depth)
throws ItemNotFoundException,
AccessDeniedException,
RepositoryException
{
Item item = this;
for (; depth > 0; depth--) {
item = item.getParent();
}
return item;
}
/**
* Returns the parent node.
*/
public Node getParent()
throws ItemNotFoundException,
AccessDeniedException,
RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Returns the current depth of the item.
*/
public int getDepth()
throws RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Returns the owning session.
*/
public Session getSession()
throws RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Returns true for a node (directory).
*/
public boolean isNode()
{
return false;
}
/**
* Returns true if the item is newly added to the repository.
*/
public boolean isNew()
{
return false;
}
/**
* Returns true if the item has been modified.
*/
public boolean isModified()
{
return false;
}
/**
* Returns true if the item is identical to another item.
*/
public boolean isSame(Item otherItem)
throws RepositoryException
{
return this == otherItem;
}
/**
* Visits the node.
*/
public void accept(ItemVisitor visitor)
throws RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Saves changes to the item.
*/
public void save()
throws AccessDeniedException,
ItemExistsException,
ConstraintViolationException,
InvalidItemStateException,
ReferentialIntegrityException,
VersionException,
LockException,
NoSuchNodeTypeException,
RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Refreshes data from the backing store.
*
* @param keepChanges if true, changes are merged from the repository
*/
public void refresh(boolean keepChanges)
throws InvalidItemStateException,
RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
/**
* Removes the item from the store.
*/
public void remove()
throws VersionException,
LockException,
ConstraintViolationException,
RepositoryException
{
throw new UnsupportedOperationException(getClass().getName());
}
}