private static void createDefaultProperty(PropertyDefinition propertyDefinition, AbstractPropertyMap parentPropertyMap) { Property property = instantiateDefaultProperty(propertyDefinition); if (property != null) { parentPropertyMap.put(property); } }
private static void add(Object parent, Property prop) { if (parent instanceof AbstractPropertyMap) { ((AbstractPropertyMap) parent).put(prop); } else if (parent instanceof PropertyList) { ((PropertyList) parent).add(prop); } }
/** * Closes the definition of the current map and returns to the parent context. * @return the parent context */ public Parent closeMap() { parent.getMap().put(getMap()); return parent; } }
/** * Closes the definition of the current list and returns to the parent context. * @return the parent context */ public Parent closeList() { parent.getMap().put(getList()); return parent; } }
private static void calculateGroupOpenPropertyMap(List<AbstractPropertyMap> sourceParentPropertyMaps, AbstractPropertyMap targetParentPropertyMap) { Map<String, Map<String, Integer>> memberNameValueFrequenciesMap = createMemberNameValueFrequenciesMap(sourceParentPropertyMaps); for (String memberName : memberNameValueFrequenciesMap.keySet()) { // Add each unique member to the target map, so the renderer will be able to display it on the main // config page. PropertySimple member = new PropertySimple(memberName, null); targetParentPropertyMap.put(member); // Also add it to each of the source config maps that don't already contain it, so that they can be // rendered as unset on the propSet page. for (AbstractPropertyMap map : sourceParentPropertyMaps) { if (map.get(memberName) == null) map.put(new PropertySimple(memberName, null)); } Map<String, Integer> valueFrequencies = memberNameValueFrequenciesMap.get(memberName); if (valueFrequencies.size() == 1 && valueFrequencies.values().iterator().next() == sourceParentPropertyMaps.size()) { // Set override to true so the renderers will know the prop is homogenous. member.setOverride(true); // And set the value, so it can be displayed on the main config page. member.setStringValue(valueFrequencies.keySet().iterator().next()); } } }
protected void loadProperty(PropertyDefinition propDef, AbstractPropertyMap parentPropMap, Augeas augeas, AugeasNode parentNode) { String propName = getAugeasPathRelativeToParent(propDef, parentNode, augeas); AugeasNode node = (propName.equals(".")) ? parentNode : new AugeasNode(parentNode, propName); Property prop; if (propDef instanceof PropertyDefinitionSimple) { prop = createPropertySimple((PropertyDefinitionSimple) propDef, augeas, node); } else if (propDef instanceof PropertyDefinitionMap) { prop = createPropertyMap((PropertyDefinitionMap) propDef, augeas, node); } else if (propDef instanceof PropertyDefinitionList) { prop = createPropertyList((PropertyDefinitionList) propDef, augeas, node); } else { throw new IllegalStateException("Unsupported PropertyDefinition subclass: " + propDef.getClass().getName()); } if (prop != null) { parentPropMap.put(prop); } }
/** * Adds a simple property. * @param name the name of the simple property * @param value the value of the simple property * @return continue with the definition */ public This addSimple(String name, Object value) { getMap().put(new PropertySimple(name, value)); return castThis(); }
targetParentPropertyMap.put(propertySimple); if (valuesHomogenous) targetParentPropertyMap.put(targetPropertyMap); calculateGroupPropertyMap((PropertyDefinitionMap) propertyDefinition, nestedSourceParentPropertyMaps, targetPropertyMap); PropertyDefinition listMemberPropertyDefinition = propertyDefinitionList.getMemberDefinition(); PropertyList targetPropertyList = new PropertyList(propertyDefinition.getName()); targetParentPropertyMap.put(targetPropertyList); if (listMemberPropertyDefinition instanceof PropertyDefinitionMap) { PropertyDefinitionMap propertyDefinitionMap = (PropertyDefinitionMap) listMemberPropertyDefinition;
if (basePropertySimple == null) { basePropertySimple = new PropertySimple(changesPropertyName, changesPropertySimple.getStringValue()); base.put(basePropertySimple); } else { basePropertySimple.setStringValue(changesPropertySimple.getStringValue()); if (basePropertyMap == null) { basePropertyMap = new PropertyMap(changesPropertyName); base.put(basePropertyMap);
private static void mergeOpenPropertyMap(List<AbstractPropertyMap> memberParentPropertyMaps, AbstractPropertyMap groupParentPropertyMap) { for (String groupMemberPropertyName : groupParentPropertyMap.getMap().keySet()) { PropertySimple groupMemberProperty = groupParentPropertyMap.getSimple(groupMemberPropertyName); if (groupMemberProperty != null && groupMemberProperty.getOverride() != null && groupMemberProperty.getOverride()) { for (AbstractPropertyMap sourceParentPropertyMap : memberParentPropertyMaps) { PropertySimple sourcePropertySimple = sourceParentPropertyMap.getSimple(groupMemberPropertyName); if (sourcePropertySimple == null) { sourcePropertySimple = new PropertySimple(groupMemberPropertyName, groupMemberProperty .getStringValue()); sourceParentPropertyMap.put(sourcePropertySimple); } else { sourcePropertySimple.setStringValue(groupMemberProperty.getStringValue()); } } } } }
sourcePropertySimple = new PropertySimple(propertyDefinition.getName(), propertySimple .getStringValue()); sourceParentPropertyMap.put(sourcePropertySimple); } else { sourcePropertySimple.setStringValue(propertySimple.getStringValue()); nestedSourceParentPropertyMaps.add(sourceParentPropertyMap.getMap(propertyDefinition.getName())); PropertyMap groupPropertyMap = groupParentPropertyMap.getMap(propertyDefinition.getName()); groupParentPropertyMap.put(groupPropertyMap); mergePropertyMap((PropertyDefinitionMap) propertyDefinition, nestedSourceParentPropertyMaps, groupPropertyMap);
parentPropertyMap.put(property);
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; }
if (propertyDefinition instanceof PropertyDefinitionSimple) { PropertySimple propertySimple = new PropertySimple(propertyDefinition.getName(), ""); parentPropertyMap.put(propertySimple);
defaultConfigurationParentMap.put(new PropertySimple(simpleProperty.getName(), initialValue));