import org.argeo.api.acr.Content;
import org.argeo.api.acr.NamespaceUtils;
-import org.argeo.api.acr.spi.AbstractContent;
import org.argeo.api.acr.spi.ContentProvider;
import org.argeo.api.acr.spi.ProvidedSession;
import org.argeo.api.cms.CmsConstants;
+import org.argeo.cms.acr.AbstractContent;
import org.argeo.cms.acr.ContentUtils;
import org.argeo.jcr.Jcr;
import org.argeo.jcr.JcrException;
@Override
public Content getParent() {
+ if (Jcr.isRoot(getJcrNode())) // root
+ return null;
return new JcrContent(session, provider, jcrWorkspace, Jcr.getParentPath(getJcrNode()));
}
/*
* ADAPTERS
*/
+ @SuppressWarnings("unchecked")
public <A> A adapt(Class<A> clss) {
if (Source.class.isAssignableFrom(clss)) {
// try {
return super.adapt(clss);
}
+ @SuppressWarnings("unchecked")
@Override
public <C extends Closeable> C open(Class<C> clss) throws IOException, IllegalArgumentException {
if (InputStream.class.isAssignableFrom(clss)) {
return provider;
}
+ @Override
+ public String getSessionLocalId() {
+ try {
+ return getJcrNode().getIdentifier();
+ } catch (RepositoryException e) {
+ throw new JcrException("Cannot get identifier for " + getJcrNode(), e);
+ }
+ }
+
/*
* STATIC UTLITIES
*/