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(); } } }
@Override public void refresh() { JcrNodeModel nodeModel = (JcrNodeModel) getModel(); // close editor if model no longer exists if (!nodeModel.getItemModel().exists()) { try { close(); } catch (EditorException ex) { log.warn("failed to close editor for non-existing document"); } } }
private List<Value> getValues() { if (propertyModel.getItemModel().exists()) { try { Property prop = getProperty(); if (!prop.getDefinition().isMultiple()) { return Arrays.asList(new Value[] { prop.getValue() }); } return Arrays.asList(prop.getValues()); } catch (RepositoryException ex) { log.error(ex.getMessage()); } } return Collections.emptyList(); }
/** * Returns the {@link javax.jcr.nodetype.PropertyDefinition} for the current property. * @return the property definition. */ private PropertyDefinition getPropertyDefinition() { if (propertyDefinition == null) { // property doesn't exist, try to find pdef in the node definition propertyDefinition = propertyModel.getDefinition(type, index != NO_INDEX); if (propertyDefinition == null && propertyModel.getItemModel().exists()) { try { propertyDefinition = propertyModel.getProperty().getDefinition(); } catch (RepositoryException e) { log.warn("Unable to determine property definition for " + propertyModel, e); } } } return propertyDefinition; }
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 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(); } } }
private PropertyDefinition getPropertyDefinition(int type) { if (cachedPropertyDefinition == null) { // property doesn't exist, try to find pdef in the node definition cachedPropertyDefinition = propertyModel.getDefinition(type, true); if (cachedPropertyDefinition == null) { cachedPropertyDefinition = propertyModel.getDefinition(type, false); if (cachedPropertyDefinition == null && propertyModel.getItemModel().exists()) { try { cachedPropertyDefinition = propertyModel.getProperty().getDefinition(); } catch (RepositoryException e) { throw new RuntimeException("Unable to determine property definition for " + propertyModel, e); } } } } return cachedPropertyDefinition; }
/** * Multi-valued property constructor. * Can be used for single-valued properties by setting index to NO_INDEX * * @param index * @param value * @param propertyModel */ public JcrPropertyValueModel(int index, Value value, JcrPropertyModel propertyModel) { this.propertyModel = propertyModel; this.value = value; if (value != null) { this.type = value.getType(); } else { if (propertyModel.getItemModel().exists()) { Property property = propertyModel.getProperty(); try { this.type = property.getType(); } catch (RepositoryException e) { throw new RuntimeException("Could not determine type of property", e); } } } if (index != NO_INDEX) { this.index = index; } }
@Override public int size() { if (!property.getItemModel().exists()) { return 0; } try { return property.getProperty().getValues().length; } catch (RepositoryException e) { throw new RepositoryRuntimeException("Failed to determine property value list size: " + e.toString(), e); } }
if (itemModel.exists()) { Property prop = getProperty();
private void load() { if (!loaded) { if (propertyModel.getItemModel().exists()) { Property prop = propertyModel.getProperty(); try { if (prop.getDefinition().isMultiple()) { Value[] values = prop.getValues(); if (values.length > 0 && index > -1 && index < values.length) { value = values[index]; } else { value = null; } } else { value = prop.getValue(); } } catch (RepositoryException ex) { log.error(ex.getMessage()); value = null; } } loaded = true; } }
if (!getItemModel().exists()) { log.warn("value not found"); } else {
@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; }
Value[] values; Session session = UserSession.get().getJcrSession(); if (property.getItemModel().exists()) { values = property.getProperty().getValues(); } else { Node node = (Node) parentModel.getObject(); node.setProperty(property.getItemModel().getPath().substring(parentModel.getPath().length() + 1), newValues); if (!property.getItemModel().exists()) { property.detach();
if (model.getItemModel().exists()) { try { component.setName(model.getNode().getName());
if (model.getItemModel().exists()) { try { component.setName(model.getNode().getName());
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)); } }
if (propertyModel.getItemModel().exists()) { Property prop = propertyModel.getProperty(); if (index != NO_INDEX) {
if (model.getItemModel().exists()) { try { component.setName(model.getNode().getName());
if (getItemModel().exists()) { Property property = (Property) getItemModel().getObject(); if (property.getDefinition().isMultiple()) {