public ItemModelWrapper(String path, boolean property) { itemModel = new JcrItemModel(path, property); }
public ItemModelWrapper(Item item) { itemModel = new JcrItemModel(item); }
/** * Retrieve the JcrItemModel for the parent {@link Node}. * * @return the parent JcrItemModel */ public JcrItemModel<Node> getParentModel() { String path = getPath(); if (path != null) { int idx = path.lastIndexOf('/'); if (idx > 0) { String parent = path.substring(0, path.lastIndexOf('/')); return new JcrItemModel<Node>(parent, false); } else if (idx == 0) { if (path.equals("/")) { return null; } return new JcrItemModel<Node>("/", false); } else { log.error("Unrecognised path " + path); } } return null; }
@Override protected AbstractProvider<Node, JcrNodeModel> newProvider(IFieldDescriptor descriptor, ITypeDescriptor type, IModel<Node> nodeModel) { try { JcrNodeModel prototype = (JcrNodeModel) getTemplateEngine().getPrototype(type); return new ChildNodeProvider(descriptor, prototype, new JcrItemModel<>(nodeModel.getObject())); } catch (TemplateEngineException ex) { log.warn("Could not find prototype", ex); return null; } }
@Override protected void loadElements() { if (elements != null) { return; } elements = new LinkedList<>(); try { Node node = (Node) getItemModel().getObject(); if (node != null) { // expand the name-pattern NodeIterator iterator = node.getNodes(descriptor.getPath()); while (iterator.hasNext()) { Node child = iterator.nextNode(); // add child if it is not excluded. // TODO: filter on node type addTemplate(new JcrItemModel(child)); } } } catch (RepositoryException ex) { log.error(ex.getMessage()); } }
public void detach() { IModel<Node> nodeModel = documentService.getModel(); if (nodeModel == null || nodeModel.getObject() == null) { nodeModel = folderService.getModel(); } if (nodeModel != null && nodeModel.getObject() != null) { path = new JcrItemModel(nodeModel.getObject()).getPath(); } else { path = null; } folderService.detach(); documentService.detach(); if (folder != null) { folder.detach(); } }
public JcrItemModel getFieldItemModel() { return new JcrItemModel(getNodeModel().getItemModel().getPath() + "/" + field.getPath(), !field.getTypeDescriptor().isNode()); }
public void onEvent(Iterator<? extends IEvent<JcrNodeModel>> events) { EventCollection<JcrEvent> filtered = new EventCollection<JcrEvent>(); while (events.hasNext()) { JcrEvent jcrEvent = (JcrEvent) events.next(); Event event = jcrEvent.getEvent(); try { switch (event.getType()) { case 0: filtered.add(jcrEvent); break; case Event.PROPERTY_ADDED: case Event.PROPERTY_REMOVED: case Event.PROPERTY_CHANGED: String path = event.getPath(); JcrItemModel eventModel = new JcrItemModel(path, true); if (eventModel.equals(getItemModel())) { filtered.add(jcrEvent); } } } catch (RepositoryException ex) { log.error("Error filtering event", ex); } } if (filtered.size() > 0) { obContext.notifyObservers(filtered); } }
provider = new ChildNodeProvider(field, null, nodeModel.getItemModel()); } else { JcrItemModel itemModel = new JcrItemModel(nodeModel.getItemModel().getPath() + "/" + field.getPath(), true); provider = new PropertyValueProvider(field, null, itemModel);
void process(Event event, EventCollection<IEvent<IClusterConfig>> collection) { processChanges(collection); if (event.getType() != 0) { try { String path = event.getPath(); path = path.substring(0, path.lastIndexOf('/')); JcrItemModel model = new JcrItemModel(path, false); Node root = getNode(); while (model != null && !root.isSame((Node) model.getObject())) { if (model.exists()) { Node node = (Node) model.getObject(); if (node.isNodeType(FrontendNodeType.NT_PLUGIN)) { IPluginConfig config = wrapConfig(node); collection.add(new ClusterConfigEvent(JcrClusterConfig.this, config, ClusterConfigEvent.EventType.PLUGIN_CHANGED)); break; } } model = model.getParentModel(); } } catch (RepositoryException ex) { log.error("unable to find plugin configuration for event", ex); } } else { collection.add(new ClusterConfigEvent(JcrClusterConfig.this, null, ClusterConfigEvent.EventType.PLUGIN_CHANGED)); } }