private static void restoreItem(TestElement el, HierarchicalStreamReader reader, String prop, boolean decode) { String att=propertyToAttribute.get(prop); String value=reader.getAttribute(att); if (value!=null){ if (decode) { value=ConversionHelp.decode(value); } el.setProperty(prop,value); } }
/** * Get the property name, updating it if necessary using {@link NameUpdater}. * @param reader where to read the name attribute * @param context the unmarshalling context * * @return the property name, may be null if the property has been deleted. * @see #getUpgradePropertyName(String, UnmarshallingContext) */ public static String getPropertyName(HierarchicalStreamReader reader, UnmarshallingContext context) { String name = ConversionHelp.decode(reader.getAttribute(ATT_NAME)); return getUpgradePropertyName(name, context); }
/** * Get the property value, updating it if necessary using {@link NameUpdater}. * * Do not use for GUI_CLASS or TEST_CLASS. * * @param reader where to read the value * @param context the unmarshalling context * @param name the name of the property * * @return the property value, updated if necessary. * @see #getUpgradePropertyValue(String, String, UnmarshallingContext) */ public static String getPropertyValue(HierarchicalStreamReader reader, UnmarshallingContext context, String name) { String value = ConversionHelp.decode(reader.getValue()); return getUpgradePropertyValue(name, value, context); }
/** {@inheritDoc} */ @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { MultiProperty prop = (MultiProperty) createCollection(context.getRequiredType()); prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME))); while (reader.hasMoreChildren()) { reader.moveDown(); JMeterProperty subProp = (JMeterProperty) readItem(reader, context, prop); if (subProp != null) { // could be null if it has been deleted via NameUpdater prop.addProperty(subProp); } reader.moveUp(); } return prop; }
/** * @param reader stream to read objects from * @param context context for xstream to allow nested objects * @param res sample result on which the attributes should be set */ protected void retrieveAttributes(HierarchicalStreamReader reader, UnmarshallingContext context, SampleResult res) { res.setSampleLabel(ConversionHelp.decode(reader.getAttribute(ATT_LABEL))); res.setDataEncoding(ConversionHelp.decode(reader.getAttribute(ATT_DATA_ENCODING))); res.setDataType(ConversionHelp.decode(reader.getAttribute(ATT_DATA_TYPE))); String oldrc=reader.getAttribute(ATT_RESPONSE_CODE_OLD); if (oldrc!=null) { res.setResponseCode(ConversionHelp.decode(oldrc)); } else { res.setResponseCode(ConversionHelp.decode(reader.getAttribute(ATT_RESPONSE_CODE))); } res.setResponseMessage(ConversionHelp.decode(reader.getAttribute(ATT_RESPONSE_MESSAGE))); res.setSuccessful(Converter.getBoolean(reader.getAttribute(ATT_SUCCESS), true)); res.setThreadName(ConversionHelp.decode(reader.getAttribute(ATT_THREADNAME))); res.setStampAndTime(Converter.getLong(reader.getAttribute(ATT_TIME_STAMP)), Converter.getLong(reader.getAttribute(ATT_TIME))); res.setIdleTime(Converter.getLong(reader.getAttribute(ATT_IDLETIME))); res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY))); res.setConnectTime(Converter.getLong(reader.getAttribute(ATT_CONNECT_TIME))); res.setBytes(Converter.getLong(reader.getAttribute(ATT_BYTES))); res.setSentBytes(Converter.getLong(reader.getAttribute(ATT_SENT_BYTES))); res.setSampleCount(Converter.getInt(reader.getAttribute(ATT_SAMPLE_COUNT),1)); // default is 1 res.setErrorCount(Converter.getInt(reader.getAttribute(ATT_ERROR_COUNT),0)); // default is 0 res.setGroupThreads(Converter.getInt(reader.getAttribute(ATT_GRP_THRDS))); res.setAllThreads(Converter.getInt(reader.getAttribute(ATT_ALL_THRDS))); }
try { TestElementProperty prop = (TestElementProperty) createCollection(context.getRequiredType()); prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME))); String element = reader.getAttribute(ConversionHelp.ATT_ELEMENT_TYPE); boolean isHeader = HEADER_CLASSNAME.equals(element);