Allow for configurable entry tag name
This commit is contained in:
		
							parent
							
								
									47af6fbb9f
								
							
						
					
					
						commit
						144efb5610
					
				| @ -357,7 +357,7 @@ public class OpenRocketSaver extends RocketSaver { | |||||||
| 			if (config != null) { | 			if (config != null) { | ||||||
| 				for (String key : config.keySet()) { | 				for (String key : config.keySet()) { | ||||||
| 					Object value = config.get(key, null); | 					Object value = config.get(key, null); | ||||||
| 					writeEntry(key, value); | 					writeEntry("entry", key, value, false); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			indent--; | 			indent--; | ||||||
| @ -429,7 +429,17 @@ public class OpenRocketSaver extends RocketSaver { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	private void writeEntry(String key, Object value) throws IOException { | 	/** | ||||||
|  | 	 * Write an entry element, which has a key and type attribute, and a value, to the output. | ||||||
|  | 	 * For example: <entry key="key" type="string">value</entry> | ||||||
|  | 	 * @param tagName The tag name (e.g. 'entry') | ||||||
|  | 	 * @param key The key attribute value | ||||||
|  | 	 * @param value The value to store | ||||||
|  | 	 * @param saveNumbersWithExplicitType If true, numbers will be stored with an explicit type attribute ('integer' or 'double'), | ||||||
|  | 	 *                                    if false, save simply as 'number' | ||||||
|  | 	 * @throws IOException | ||||||
|  | 	 */ | ||||||
|  | 	private void writeEntry(String tagName, String key, Object value, boolean saveNumbersWithExplicitType) throws IOException { | ||||||
| 		if (value == null) { | 		if (value == null) { | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| @ -441,24 +451,36 @@ public class OpenRocketSaver extends RocketSaver { | |||||||
| 			keyAttr = ""; | 			keyAttr = ""; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		final String openTag = "<" + tagName + " "; | ||||||
|  | 		final String closeTag = "</" + tagName + ">"; | ||||||
| 		if (value instanceof Boolean) { | 		if (value instanceof Boolean) { | ||||||
| 			writeln("<entry " + keyAttr + "type=\"boolean\">" + value + "</entry>"); | 			writeln(openTag + keyAttr + "type=\"boolean\">" + value + closeTag); | ||||||
| 		} else if (value instanceof Number) { | 		} else if (value instanceof Number) { | ||||||
| 			writeln("<entry " + keyAttr + "type=\"number\">" + value + "</entry>"); | 			if (saveNumbersWithExplicitType) { | ||||||
|  | 				if (value instanceof Integer) { | ||||||
|  | 					writeln(openTag + keyAttr + "type=\"integer\">" + value + closeTag); | ||||||
|  | 				} else if (value instanceof Double) { | ||||||
|  | 					writeln(openTag + keyAttr + "type=\"double\">" + value + closeTag); | ||||||
|  | 				} else { | ||||||
|  | 					writeln(openTag + keyAttr + "type=\"number\">" + value + closeTag); | ||||||
|  | 				} | ||||||
|  | 			} else { | ||||||
|  | 				writeln(openTag + keyAttr + "type=\"number\">" + value + closeTag); | ||||||
|  | 			} | ||||||
| 		} else if (value instanceof String) { | 		} else if (value instanceof String) { | ||||||
| 			writeln("<entry " + keyAttr + "type=\"string\">" + TextUtil.escapeXML((String) value) + "</entry>"); | 			writeln(openTag + keyAttr + "type=\"string\">" + TextUtil.escapeXML(value) + closeTag); | ||||||
| 		} else if (value instanceof List) { | 		} else if (value instanceof List<?> list) { | ||||||
| 			List<?> list = (List<?>) value; | 			// Nested element | ||||||
| 			writeln("<entry " + keyAttr + "type=\"list\">"); | 			writeln(openTag + keyAttr + "type=\"list\">"); | ||||||
| 			indent++; | 			indent++; | ||||||
| 			for (Object o : list) { | 			for (Object o : list) { | ||||||
| 				writeEntry(null, o); | 				writeEntry(tagName, null, o, saveNumbersWithExplicitType); | ||||||
| 			} | 			} | ||||||
| 			indent--; | 			indent--; | ||||||
| 			writeln("</entry>"); | 			writeln(closeTag); | ||||||
| 		} else { | 		} else { | ||||||
| 			// Unknown type | 			// Unknown type | ||||||
| 			log.error("Unknown configuration value type " + value.getClass() + "  value=" + value); | 			log.error("Unknown configuration value type {}  value={}", value.getClass(), value); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user