private Map<String, String> unmarshalMap( HierarchicalStreamReader reader, UnmarshallingContext context) { Map<String, String> map = Collections.emptyMap(); while (reader.hasMoreChildren()) { if (map == Collections.EMPTY_MAP) { map = new HashMap<String, String>(); } reader.moveDown(); String key = reader.getNodeName(); String value = reader.getValue(); reader.moveUp(); map.put(StringCache.intern(key), value); } return map; }
public Object unmarshal(HierarchicalStreamReader reader, final UnmarshallingContext context) { if(reader.hasMoreChildren()) { /* old format where <range> elements are nested like <range> <start>1337</start> <end>1479</end> </range> */ return new RangeSet((List<Range>)(collectionConv.unmarshal(reader,context))); } else { return RangeSet.fromString(reader.getValue(),true); } } }
public XStreamDOM unmarshalElement(HierarchicalStreamReader r, UnmarshallingContext context) { String name = escape(r.getNodeName()); int c = r.getAttributeCount(); String[] attributes = new String[c*2]; for (int i=0; i<c; i++) { attributes[i*2] = escape(r.getAttributeName(i)); attributes[i*2+1] = r.getAttribute(i); } List<XStreamDOM> children = null; String value = null; if (r.hasMoreChildren()) { children = new ArrayList<XStreamDOM>(); while (r.hasMoreChildren()) { children.add(unmarshal(r, context)); } } else { value = r.getValue(); } return new XStreamDOM(name,attributes,children,value); } }
Object o) { try { String nodeName = reader.getNodeName(); Class c = o.getClass(); Field f = null; String value = reader.getValue(); Class returnClass = f.getType(); if (value != null) {
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Map<String, String> map = new LinkedHashMap<>(); while (reader.hasMoreChildren()) { reader.moveDown(); map.put(reader.getNodeName(), reader.getValue()); reader.moveUp(); } return map; }
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { String data = reader.getValue(); // needs to be called before hasMoreChildren. if (!reader.hasMoreChildren()) { return fromString(data); } else { // backwards compatibility ... try to unmarshal byte arrays that haven't been encoded return unmarshalIndividualByteElements(reader, context); } }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Map<String, String> attributes = ConverterAttributeMapValidator.readValidatedAttributes(reader, null); return new NodeValue(reader.getNodeName(), attributes, reader.getValue()); }
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Map elements = new HashMap(); while (reader.hasMoreChildren()) { reader.moveDown(); elements.put(reader.getNodeName(), Integer.valueOf(reader.getValue())); reader.moveUp(); } return new Color(((Integer) elements.get("red")).intValue(), ((Integer) elements.get("green")).intValue(), ((Integer) elements.get("blue")).intValue(), ((Integer) elements.get("alpha")).intValue()); }
@Override public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) { final String data = reader.getValue(); // needs to be called before hasMoreChildren. if (!reader.hasMoreChildren()) { return fromString(data); } else { // backwards compatibility ... try to unmarshal byte arrays that haven't been encoded return unmarshalIndividualByteElements(reader, context); } }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { // JD: we handle infinite manually b/c the json serializer chokes on inifinte values // b/c JSON does not support it Double min = null, max = null; while (reader.hasMoreChildren()) { reader.moveDown(); if ("min".equals(reader.getNodeName())) { if (!"-inf".equals(reader.getValue())) { min = Double.parseDouble(reader.getValue()); } } if ("max".equals(reader.getNodeName())) { if (!"inf".equals(reader.getValue())) { max = Double.parseDouble(reader.getValue()); } } reader.moveUp(); } min = min != null ? min : Double.NEGATIVE_INFINITY; max = max != null ? max : Double.POSITIVE_INFINITY; return NumberRange.create(min.doubleValue(), true, max.doubleValue(), true); } }
@Override public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) { reader.moveDown(); final String pattern = reader.getValue(); reader.moveUp(); reader.moveDown(); final int flags = Integer.parseInt(reader.getValue()); reader.moveUp(); return Pattern.compile(pattern, flags); }
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { reader.moveDown(); long timeInMillis = Long.parseLong(reader.getValue()); reader.moveUp(); final String timeZone; if (reader.hasMoreChildren()) { reader.moveDown(); timeZone = reader.getValue(); reader.moveUp(); } else { // backward compatibility to XStream 1.1.2 and below timeZone = TimeZone.getDefault().getID(); } GregorianCalendar result = new GregorianCalendar(); result.setTimeZone(TimeZone.getTimeZone(timeZone)); result.setTime(new Date(timeInMillis)); // calendar.setTimeInMillis() not available under JDK 1.3 return result; }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Applications apps = new Applications(); while (reader.hasMoreChildren()) { reader.moveDown(); String nodeName = reader.getNodeName(); if (NODE_APP.equals(nodeName)) { apps.addApplication((Application) context.convertAnother( apps, Application.class)); } else if (VERSIONS_DELTA.equals(nodeName)) { apps.setVersion(Long.valueOf(reader.getValue())); } else if (APPS_HASHCODE.equals(nodeName)) { apps.setAppsHashCode(reader.getValue()); } reader.moveUp(); } return apps; } }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Application app = new Application(); while (reader.hasMoreChildren()) { reader.moveDown(); String nodeName = reader.getNodeName(); if (ELEM_NAME.equals(nodeName)) { app.setName(reader.getValue()); } else if (NODE_INSTANCE.equals(nodeName)) { app.addInstance((InstanceInfo) context.convertAnother(app, InstanceInfo.class)); } reader.moveUp(); } return app; } }