public PropertyMap createPropertyMap(PropertyDefinitionMap propDefMap, AugeasNode node) throws AugeasRhqException { PropertyMap propMap = new PropertyMap(propDefMap.getName()); for (PropertyDefinition mapEntryPropDef : propDefMap.getOrderedPropertyDefinitions()) { propMap.put(loadProperty(mapEntryPropDef, node)); } return propMap; }
public PropertyDefinition get(String name) { return getMap().get(name); }
public PropertyDefinitionList getPropertyDefinitionList(String name) { return (PropertyDefinitionList) this.get(name); }
private static PropertyDefinitionMap createExclude(boolean readOnly) { String name = PROP_EXCLUDES_EXCLUDE; String description = "A pattern that specifies a file or directory to exclude."; boolean required = true; PropertyDefinitionSimple path = createExcludePath(readOnly); PropertyDefinitionSimple pattern = createExcludePattern(readOnly); PropertyDefinitionMap pd = new PropertyDefinitionMap(name, description, required, path, pattern); pd.setDisplayName("Exclude"); pd.setReadOnly(readOnly); pd.setSummary(true); pd.setOrder(0); return pd; }
private static PropertyDefinitionMap parseMapProperty(MapProperty mapProperty, AbstractPropertyMap defaultConfigurationParentMap) throws InvalidPluginDescriptorException { String description = parseMultiValue(mapProperty.getDescription(), mapProperty.getLongDescription()); PropertyDefinitionMap propDefMap = new PropertyDefinitionMap(mapProperty.getName().intern(), description, mapProperty.isRequired()); String displayName = (mapProperty.getDisplayName() != null) ? mapProperty.getDisplayName() : StringUtils .deCamelCase(mapProperty.getName()); if (displayName!=null) { propDefMap.setDisplayName(displayName.intern()); } propDefMap.setReadOnly(mapProperty.isReadOnly()); propDefMap.setSummary(mapProperty.isSummary()); // Add an instance of the map to the default config, if appropriate. PropertyMap propMap; if (defaultConfigurationParentMap != null) { propMap = new PropertyMap(propDefMap.getName()); defaultConfigurationParentMap.put(propMap); } else { propMap = null; } // Process the map's nested properties. List<JAXBElement<? extends ConfigurationProperty>> nestedProperties = mapProperty.getConfigurationProperty(); int propertyOrderIndex = 0; for (JAXBElement<? extends ConfigurationProperty> jaxbProperty : nestedProperties) { ConfigurationProperty uncastedProperty = jaxbProperty.getValue(); PropertyDefinition propertyDefinition = parseProperty(uncastedProperty, propertyOrderIndex++, propMap); propDefMap.put(propertyDefinition); } return propDefMap; }
private static void validatePropertyMap(AbstractPropertyMap propertyMap, AbstractPropertyMap currentPropertyMap, PropertyDefinitionMap propertyDefinitionMap, List<String> errorMessages) { // if the entire map is read-only then the new map must match the current map if the current map is non-empty if (propertyDefinitionMap.isReadOnly() && null != currentPropertyMap && !currentPropertyMap.getMap().isEmpty()) { if (!propertyMap.getMap().equals(currentPropertyMap.getMap())) { errorMessages.add("ReadOnly property '" + propertyDefinitionMap.getName() + "' has a value " + propertyMap.getMap() + " different than the current value " + currentPropertyMap.getMap() + "]. It is not allowed to change."); return; } } Map<String, PropertyDefinition> childPropertyDefinitions = propertyDefinitionMap.getMap(); for (PropertyDefinition childPropertyDefinition : childPropertyDefinitions.values()) { validateProperty(childPropertyDefinition, propertyMap, currentPropertyMap, errorMessages); } }
protected PropertyMap createPropertyMap(PropertyDefinitionMap propDefMap, Augeas augeas, AugeasNode node) { PropertyMap propMap = new PropertyMap(propDefMap.getName()); populatePropertyMap(propDefMap, propMap, augeas, node); return propMap; }
private static void adaptPropertyMap(AbstractPropertyMap source, AbstractPropertyMap target, PropertyDefinitionMap definition, Object parent, boolean adaptReadonlyProperties) { if ((adaptReadonlyProperties || !definition.isReadOnly()) && target == null) { target = new PropertyMap(definition.getName()); add(parent, (PropertyMap) target); } for (Map.Entry<String, PropertyDefinition> e : definition.getPropertyDefinitions().entrySet()) { String name = e.getKey(); PropertyDefinition def = e.getValue(); Property sourceChild = source.get(name); // only bother if we have something to adapt from if (sourceChild != null) { Property targetChild = target.get(name); adaptProperty(sourceChild, targetChild, def, target, adaptReadonlyProperties); } } }
protected void setNodeFromPropertyMap(PropertyDefinitionMap propDefMap, PropertyMap propMap, Augeas augeas, AugeasNode mapNode) { for (PropertyDefinition mapEntryPropDef : propDefMap.getOrderedPropertyDefinitions()) { setNode(mapEntryPropDef, propMap, augeas, mapNode); } }
} else if (memberDef instanceof PropertyDefinitionMap) { PropertyDefinitionMap pdm = (PropertyDefinitionMap) memberDef; for (PropertyDefinition inner : pdm.getOrderedPropertyDefinitions()) { if (inner instanceof PropertyDefinitionSimple) { handlePDS(subject, resource, baseResource, (PropertyDefinitionSimple) inner); for (PropertyDefinition inner : pdm.getOrderedPropertyDefinitions()) { if (inner instanceof PropertyDefinitionSimple) { handlePDS(subject, resource, baseResource, (PropertyDefinitionSimple) inner); } else { if (LOG.isDebugEnabled()) { LOG.debug("4 ____[ " + inner.toString() + " in " + pdm.toString() + " ]____ not yet supported");
.getSummaryPropertyDefinitions(); .getSummaryPropertyDefinitions()) { .get(summaryPropertyDefinition.getName()); FacesComponentUtility.addVerbatimText(parent, "<th class='" + PROPERTY_MAP_SUMMARY_DATA_HEADER_CELL_STYLE_CLASS + "'>"); if (!isReadOnly(listMemberMapPropertyDefinition.getParentPropertyListDefinition())) { FacesComponentUtility.addVerbatimText(parent, "<tr>\n"); FacesComponentUtility.addVerbatimText(parent, "<td colspan='" + (mapSummaryPropertyDefinitions.size() + 1)
new PropertyDefinitionMap(METRIC_UPDATE_OVERRIDE_PROPERTY, null, true, metricName, resourceTypeName, resourceTypePlugin, updateSchedules); PropertyDefinitionList metricUpdateOverrides =
public PropertyDefinitionMap(@NotNull String name, String description, boolean required, PropertyDefinition... properties) { super(name, description, required); if (properties != null) { for (PropertyDefinition property : properties) { put(property); } } }
private static PropertyDefinitionMap createBasedir(ConfigurationDefinition configDef, boolean readOnly) { String name = PROP_BASEDIR; String description = "The root directory from which snapshots will be generated during drift monitoring."; boolean required = true; PropertyDefinitionSimple valueContext = createBasedirValueContext(readOnly); PropertyDefinitionSimple valueName = createBasedirValueName(readOnly); PropertyDefinitionMap pd = new PropertyDefinitionMap(name, description, required, valueContext, valueName); pd.setDisplayName("Base Directory"); pd.setReadOnly(readOnly); pd.setSummary(true); pd.setOrder(7); pd.setConfigurationDefinition(configDef); return pd; }
property = new PropertyMap(propertyDefinition.getName()); Map<String, PropertyDefinition> childPropertyDefinitions = ((PropertyDefinitionMap) propertyDefinition) .getMap(); for (PropertyDefinition childPropertyDefinition : childPropertyDefinitions.values()) { createDefaultProperty(childPropertyDefinition, (PropertyMap) property); PropertyMap listMap = new PropertyMap(listMemberDefinitionMap.getName()); createDefaultProperty(listMemberDefinitionMap, listMap); ((PropertyList) property).add(listMap);
protected void setNode(PropertyDefinition propDef, AbstractPropertyMap parentPropMap, Augeas augeas, AugeasNode parentNode) { String propName = getAugeasPathRelativeToParent(propDef, parentNode, augeas); AugeasNode node = (propName.equals(".")) ? parentNode : new AugeasNode(parentNode, propName); if (isPropertyDefined(propDef, parentPropMap)) { // The property *is* defined, which means we either need to add or update the corresponding node in the // Augeas tree. if (propDef instanceof PropertyDefinitionSimple) { PropertyDefinitionSimple propDefSimple = (PropertyDefinitionSimple) propDef; PropertySimple propSimple = parentPropMap.getSimple(propDefSimple.getName()); setNodeFromPropertySimple(augeas, node, propDefSimple, propSimple); } else if (propDef instanceof PropertyDefinitionMap) { PropertyDefinitionMap propDefMap = (PropertyDefinitionMap) propDef; PropertyMap propMap = parentPropMap.getMap(propDefMap.getName()); setNodeFromPropertyMap(propDefMap, propMap, augeas, node); } else if (propDef instanceof PropertyDefinitionList) { PropertyDefinitionList propDefList = (PropertyDefinitionList) propDef; PropertyList propList = parentPropMap.getList(propDefList.getName()); setNodeFromPropertyList(propDefList, propList, augeas, node); } else { throw new IllegalStateException("Unsupported PropertyDefinition subclass: " + propDef.getClass().getName()); } } else { // The property *is not* defined - remove the corresponding node from the Augeas tree if it exists. removeNodeIfItExists(augeas, node); } }
protected void populatePropertyMap(PropertyDefinitionMap propDefMap, PropertyMap propMap, Augeas augeas, AugeasNode mapNode) { for (PropertyDefinition mapEntryPropDef : propDefMap.getOrderedPropertyDefinitions()) { loadProperty(mapEntryPropDef, propMap, augeas, mapNode); } }
public void updateMap(PropertyDefinitionMap propDefMap, Property prop, AugeasNode mapNode, int seq) throws AugeasRhqException { PropertyMap map = null; if (prop instanceof PropertyList) { PropertyList lst = (PropertyList) prop; List<Property> props = lst.getList(); map = (PropertyMap) props.get(seq - 1); } if (prop instanceof PropertyMap) { PropertyMap mp = (PropertyMap) prop; map = (PropertyMap) mp.get(propDefMap.getName()); } List<AugeasNode> nodes = tree.matchRelative(mapNode, propDefMap.getName()); AugeasNode node; int i; if (nodes.isEmpty() || nodes.size() < seq) { node = tree.createNode(mapNode, propDefMap.getName(), null, seq); nodes.add(node); i = ((seq == 0) ? 0 : seq - 1); } else if (seq == 0) { node = nodes.get(0); i = 0; } else { node = nodes.get(seq - 1); i = seq - 1; } for (PropertyDefinition mapEntryPropDef : propDefMap.getOrderedPropertyDefinitions()) { updateProperty(mapEntryPropDef, map, nodes.get(i), 0); } }
private static PropertyDefinitionMap createInclude(boolean readOnly) { String name = PROP_INCLUDES_INCLUDE; String description = "A pattern that specifies a file or directory to include."; boolean required = true; PropertyDefinitionSimple path = createIncludePath(readOnly); PropertyDefinitionSimple pattern = createIncludePattern(readOnly); PropertyDefinitionMap pd = new PropertyDefinitionMap(name, description, required, path, pattern); pd.setDisplayName("Include"); pd.setReadOnly(readOnly); pd.setSummary(true); pd.setOrder(0); return pd; }