/*
* Licensed to DuraSpace under one or more contributor license agreements.
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership.
*
* DuraSpace licenses this file to you 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.fcrepo.kernel.modeshape;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import org.fcrepo.kernel.api.exception.RepositoryRuntimeException;
import org.fcrepo.kernel.api.models.Tombstone;
import static org.fcrepo.kernel.modeshape.FedoraJcrConstants.JCR_CREATED;
/**
* @author cabeer
* @since 10/16/14
*/
public class TombstoneImpl extends FedoraResourceImpl implements Tombstone {
/**
* Construct a {@link org.fcrepo.kernel.api.models.FedoraResource} from an existing JCR Node
* @param node an existing JCR node to treat as an fcrepo object
*/
public TombstoneImpl(final Node node) {
super(node);
}
/**
* Check if the node has a fedora:tombstone mixin
* @param node the node
* @return true if the node has the fedora object mixin
*/
public static boolean hasMixin(final Node node) {
try {
return node.isNodeType(FEDORA_TOMBSTONE);
} catch (final RepositoryException e) {
throw new RepositoryRuntimeException(e);
}
}
@Override
public void delete() {
try {
node.remove();
} catch (final RepositoryException e) {
throw new RepositoryRuntimeException(e);
}
}
@Override
public String toString() {
try {
String txt = node.getPath();
if (node.hasProperty(JCR_CREATED)) {
txt += ", departed: ";
txt += node.getProperty(JCR_CREATED).getString();
}
return txt;
} catch (RepositoryException e) {
throw new RepositoryRuntimeException(e);
}
}
}