| /* |
| * 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.base; |
| |
| import java.io.IOException; |
| import java.io.InputStream; |
| |
| import javax.jcr.AccessDeniedException; |
| import javax.jcr.InvalidItemStateException; |
| import javax.jcr.InvalidSerializedDataException; |
| import javax.jcr.ItemExistsException; |
| import javax.jcr.NamespaceRegistry; |
| import javax.jcr.NoSuchWorkspaceException; |
| import javax.jcr.PathNotFoundException; |
| import javax.jcr.RepositoryException; |
| import javax.jcr.Session; |
| import javax.jcr.UnsupportedRepositoryOperationException; |
| import javax.jcr.Workspace; |
| import javax.jcr.lock.LockException; |
| import javax.jcr.nodetype.ConstraintViolationException; |
| import javax.jcr.nodetype.NodeTypeManager; |
| import javax.jcr.observation.ObservationManager; |
| import javax.jcr.query.QueryManager; |
| import javax.jcr.version.Version; |
| import javax.jcr.version.VersionException; |
| import javax.xml.transform.Transformer; |
| import javax.xml.transform.TransformerConfigurationException; |
| import javax.xml.transform.TransformerException; |
| import javax.xml.transform.TransformerFactory; |
| import javax.xml.transform.sax.SAXResult; |
| import javax.xml.transform.stream.StreamSource; |
| |
| import org.xml.sax.ContentHandler; |
| |
| /** |
| * Workspace base class. |
| */ |
| public class BaseWorkspace implements Workspace { |
| |
| private static final NamespaceRegistry NAMESPACE_REGISTRY = |
| new BaseNamespaceRegistry(); |
| |
| /** Not implemented. {@inheritDoc} */ |
| public Session getSession() { |
| throw new UnsupportedOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public String getName() { |
| throw new UnsupportedOperationException(); |
| } |
| |
| /** |
| * Implemented by calling <code>copy(getName(), srcAbsPath, destAbsPath). |
| * {@inheritDoc} |
| */ |
| public void copy(String srcAbsPath, String destAbsPath) |
| throws ConstraintViolationException, VersionException, |
| AccessDeniedException, PathNotFoundException, ItemExistsException, |
| LockException, RepositoryException { |
| copy(getName(), srcAbsPath, destAbsPath); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public void copy(String srcWorkspace, String srcAbsPath, String destAbsPath) |
| throws NoSuchWorkspaceException, ConstraintViolationException, |
| VersionException, AccessDeniedException, PathNotFoundException, |
| ItemExistsException, LockException, RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public void clone(String srcWorkspace, String srcAbsPath, |
| String destAbsPath, boolean removeExisting) |
| throws NoSuchWorkspaceException, ConstraintViolationException, |
| VersionException, AccessDeniedException, PathNotFoundException, |
| ItemExistsException, LockException, RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public void move(String srcAbsPath, String destAbsPath) |
| throws ConstraintViolationException, VersionException, |
| AccessDeniedException, PathNotFoundException, ItemExistsException, |
| LockException, RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public void restore(Version[] versions, boolean removeExisting) |
| throws ItemExistsException, |
| UnsupportedRepositoryOperationException, VersionException, |
| LockException, InvalidItemStateException, RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public QueryManager getQueryManager() throws RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public NamespaceRegistry getNamespaceRegistry() throws RepositoryException { |
| return NAMESPACE_REGISTRY; |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public NodeTypeManager getNodeTypeManager() throws RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public ObservationManager getObservationManager() |
| throws UnsupportedRepositoryOperationException, RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public String[] getAccessibleWorkspaceNames() throws RepositoryException { |
| return new String[] { getName() }; |
| } |
| |
| /** Not implemented. {@inheritDoc} */ |
| public ContentHandler getImportContentHandler(String parentAbsPath, |
| int uuidBehavior) throws PathNotFoundException, |
| ConstraintViolationException, VersionException, LockException, |
| RepositoryException { |
| throw new UnsupportedRepositoryOperationException(); |
| } |
| |
| /** |
| * Implemented by calling |
| * <code>transformer.transform(new StreamSource(in), new SAXResult(handler))</code> |
| * with an identity {@link Transformer Transformer} and a |
| * {@link ContentHandler ContentHandler} instance created by calling |
| * <code>getImportContentHandler(parentAbsPath, uuidBehaviour)</code>. |
| * Possible {@see TransformerException TransformerExceptions} and |
| * {@see TransformerConfigurationException TransformerConfigurationExceptions} |
| * are converted to {@link IOException IOExceptions}. |
| * {@inheritDoc} |
| */ |
| public void importXML(String parentAbsPath, InputStream in, int uuidBehavior) |
| throws IOException, PathNotFoundException, ItemExistsException, |
| ConstraintViolationException, InvalidSerializedDataException, |
| LockException, RepositoryException { |
| try { |
| ContentHandler handler = |
| getImportContentHandler(parentAbsPath, uuidBehavior); |
| |
| TransformerFactory factory = TransformerFactory.newInstance(); |
| Transformer transformer = factory.newTransformer(); |
| transformer.transform(new StreamSource(in), new SAXResult(handler)); |
| } catch (TransformerConfigurationException e) { |
| throw new IOException( |
| "Unable to configure a SAX transformer: " + e.getMessage()); |
| } catch (TransformerException e) { |
| throw new IOException( |
| "Unable to deserialize a SAX stream: " + e.getMessage()); |
| } |
| } |
| |
| } |