+++ /dev/null
-package org.argeo.eclipse.ui.jcr;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.eclipse.ui.EclipseUiException;
-import org.argeo.jcr.JcrUtils;
-
-/** Simple JCR node content provider taking a list of String as base path. */
-public class SimpleNodeContentProvider extends AbstractNodeContentProvider {
- private static final long serialVersionUID = -8245193308831384269L;
- private final List<String> basePaths;
- private Boolean mkdirs = false;
-
- public SimpleNodeContentProvider(Session session, String... basePaths) {
- this(session, Arrays.asList(basePaths));
- }
-
- public SimpleNodeContentProvider(Session session, List<String> basePaths) {
- super(session);
- this.basePaths = basePaths;
- }
-
- @Override
- protected Boolean isBasePath(String path) {
- if (basePaths.contains(path))
- return true;
- return super.isBasePath(path);
- }
-
- public Object[] getElements(Object inputElement) {
- try {
- List<Node> baseNodes = new ArrayList<Node>();
- for (String basePath : basePaths)
- if (mkdirs && !getSession().itemExists(basePath))
- baseNodes.add(JcrUtils.mkdirs(getSession(), basePath));
- else
- baseNodes.add(getSession().getNode(basePath));
- return baseNodes.toArray();
- } catch (RepositoryException e) {
- throw new EclipseUiException("Cannot get base nodes for " + basePaths,
- e);
- }
- }
-
- public List<String> getBasePaths() {
- return basePaths;
- }
-
- public void setMkdirs(Boolean mkdirs) {
- this.mkdirs = mkdirs;
- }
-
-}