@Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("property", propertyModel.getItemModel().getPath()).append("values", object).toString(); }
@Override public void remove(JcrNodeModel model) { load(); Iterator<JcrNodeModel> iterator = elements.iterator(); while (iterator.hasNext()) { JcrNodeModel currentModel = iterator.next(); if (model.equals(currentModel)) { iterator.remove(); try { JcrItemModel itemModel = model.getItemModel(); if (itemModel.exists()) { Item item = (Item) itemModel.getObject(); // remove the item log.info("removing item {}", item.getPath()); item.remove(); } else { log.info("item {} does not exist", itemModel.getPath()); } } catch (RepositoryException ex) { log.error(ex.getMessage(), ex); } } else { currentModel.detach(); } } }
public JcrNodeModel getBrowseModel() { JcrItemModel itemModel = getNodeModel().getItemModel(); while (itemModel != null && !itemModel.exists()) { itemModel = itemModel.getParentModel(); } if (itemModel == null) { return null; } return new JcrNodeModel(itemModel); }
@Override public String toString() { if (!detaching) { boolean isAttached = isAttached(); String string = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("path", getPath()).toString(); if (!isAttached) { detach(); } return string; } else { return super.toString(); } }
/** * 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; }
private static Node getCompoundNode(final JcrPropertyValueModel model) { JcrItemModel itemModel = model.getJcrPropertymodel().getItemModel(); final JcrItemModel nodeModel = itemModel.getParentModel(); return (Node) nodeModel.getObject(); }
Value[] values; Session session = UserSession.get().getJcrSession(); if (property.getItemModel().exists()) { values = property.getProperty().getValues(); } else { JcrItemModel parentModel = property.getItemModel().getParentModel(); Node node = (Node) parentModel.getObject(); node.setProperty(property.getItemModel().getPath().substring(parentModel.getPath().length() + 1), newValues); if (!property.getItemModel().exists()) { property.detach();
@Override public ContainerComponent load(JcrNodeModel model) { Description desc = descriptionDao.load(model); ContainerComponent component = new ContainerComponent(model, desc); //Load name if (model.getItemModel().exists()) { try { component.setName(model.getNode().getName()); } catch (RepositoryException e) { log.error(e.getMessage()); } } else { String path = model.getItemModel().getPath(); String name = path.substring(path.lastIndexOf('/') + 1); component.setName(name); } //load component class name if (JcrUtilities.hasProperty(model, HST_COMPONENTCLASSNAME)) { component.setComponentClassName(JcrUtilities.getProperty(model, HST_COMPONENTCLASSNAME)); } //load xtype if (JcrUtilities.hasProperty(model, HST_XTYPE)) { component.setXType(JcrUtilities.getProperty(model, HST_XTYPE)); } return component; }
private void writeObject(ObjectOutputStream output) throws IOException { if (isAttached()) { log.warn("Undetached JcrItemModel "+getPath()); T object = this.getObject(); if (object != null) { TraceMonitor.trace(object); } if (RuntimeConfigurationType.DEPLOYMENT.equals(Application.get().getConfigurationType())) { detach(); } } output.defaultWriteObject(); }
Value value = createValue(); if (value != null) { Node node = (Node) getItemModel().getParentModel().getObject(); String relPath = getItemModel().getPath().substring(node.getPath().length() + 1); getItemModel().detach();
/** * Start the observation by listening to JCR {@link Event}s. */ @Override public void startObservation() { if (getItemModel().getObject() == null) { log.info("skipping observation for null node"); return; } if (getItemModel().getRelativePath() == null) { listener = new JcrEventListener(context, Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED | Event.NODE_MOVED, "/", true, new String[] { getItemModel().getUuid() }, null); } else { listener = new JcrEventListener(context, Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED | Event.NODE_MOVED, getItemModel().getPath(), false, null, null); } listener.start(); }
public PropertyDefinition getDefinition(int type, boolean multiValued) { Node node = (Node) getItemModel().getParentModel().getObject(); String path = getItemModel().getPath(); String name = path.substring(path.lastIndexOf('/') + 1);
protected void sync() { entries = null; Iterator<Map.Entry<JcrNodeModel, JcrPluginConfig>> childIter = childConfigs.entrySet().iterator(); while (childIter.hasNext()) { Map.Entry<JcrNodeModel, JcrPluginConfig> entry = childIter.next(); JcrNodeModel model = entry.getKey(); if (!model.getItemModel().exists()) { childIter.remove(); entry.getValue(); } } }
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)); } }
/** * Retrieve a JcrNodeModel for the parent node. * * @return a model for the parent Node */ public JcrNodeModel getParentModel() { if (!parentCached) { JcrItemModel parentModel = getItemModel().getParentModel(); if (parentModel != null) { parent = new JcrNodeModel(parentModel); } else { parent = null; } parentCached = true; } return parent; }
@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 ItemModelWrapper(String path, boolean property) { itemModel = new JcrItemModel(path, property); }
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); } }
if (itemModel.exists()) { Property prop = getProperty(); Node node = itemModel.getParentModel().getObject(); String path = itemModel.getPath(); String name = path.substring(path.lastIndexOf('/') + 1); node.setProperty(name, jcrValues, valuesType);