com.thoughtworks.xstream.mapper.Mapper类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(15.8k)|赞(0)|评价(0)|浏览(232)

本文整理了Java中com.thoughtworks.xstream.mapper.Mapper类的一些代码示例,展示了Mapper类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Mapper类的具体详情如下:
包路径:com.thoughtworks.xstream.mapper.Mapper
类名称:Mapper

Mapper介绍

暂无

代码示例

代码示例来源:origin: geoserver/geoserver

  1. protected static void marshalComparator(
  2. Mapper mapper,
  3. Comparator comparator,
  4. HierarchicalStreamWriter writer,
  5. MarshallingContext context) {
  6. if (comparator != null) {
  7. writer.startNode("comparator");
  8. writer.addAttribute(
  9. mapper.aliasForSystemAttribute("class"),
  10. mapper.serializedClass(comparator.getClass()));
  11. context.convertAnother(comparator);
  12. writer.endNode();
  13. }
  14. }

代码示例来源:origin: jenkinsci/jenkins

  1. protected Object instantiateNewInstance(HierarchicalStreamReader reader, UnmarshallingContext context) {
  2. String readResolveValue = reader.getAttribute(mapper.aliasForAttribute("resolves-to"));
  3. Class type = readResolveValue != null ? mapper.realClass(readResolveValue) : context.getRequiredType();
  4. Object currentObject = context.currentObject();
  5. if (currentObject != null) {
  6. if (type.isInstance(currentObject))
  7. return currentObject;
  8. }
  9. return reflectionProvider.newInstance(type);
  10. }

代码示例来源:origin: jenkinsci/jenkins

  1. private void writeField(String fieldName, String aliasName, Class fieldType, Class definedIn, Object newObj) {
  2. try {
  3. if (!mapper.shouldSerializeMember(definedIn, aliasName)) {
  4. return;
  5. }
  6. ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedMember(definedIn, aliasName), fieldType);
  7. Class actualType = newObj.getClass();
  8. Class defaultType = mapper.defaultImplementationOf(fieldType);
  9. if (!actualType.equals(defaultType)) {
  10. String serializedClassName = mapper.serializedClass(actualType);
  11. if (!serializedClassName.equals(mapper.serializedClass(defaultType))) {
  12. writer.addAttribute(mapper.aliasForSystemAttribute("class"), serializedClassName);
  13. }
  14. }
  15. if (seenFields.contains(aliasName)) {
  16. writer.addAttribute(mapper.aliasForAttribute("defined-in"), mapper.serializedClass(definedIn));
  17. }
  18. Field field = reflectionProvider.getField(definedIn,fieldName);
  19. marshallField(context, newObj, field);
  20. writer.endNode();
  21. } catch (RuntimeException e) {
  22. // intercept an exception so that the stack trace shows how we end up marshalling the object in question
  23. throw new RuntimeException("Failed to serialize "+definedIn.getName()+"#"+fieldName+" for "+source.getClass(),e);
  24. }
  25. }

代码示例来源:origin: jenkinsci/jenkins

  1. private Class determineWhichClassDefinesField(HierarchicalStreamReader reader) {
  2. String definedIn = reader.getAttribute(mapper.aliasForAttribute("defined-in"));
  3. return definedIn == null ? null : mapper.realClass(definedIn);
  4. }

代码示例来源:origin: jenkinsci/jenkins

  1. public void visit(String fieldName, Class type, Class definedIn, Object value) {
  2. SingleValueConverter converter = mapper.getConverterFromItemType(fieldName, type, definedIn);
  3. if (converter == null) converter = mapper.getConverterFromItemType(fieldName, type);
  4. if (converter == null) converter = mapper.getConverterFromItemType(type);
  5. if (converter != null) {
  6. if (value != null) {
  7. final String str = converter.toString(value);
  8. if (str != null) {
  9. writer.addAttribute(mapper.aliasForAttribute(fieldName), str);
  10. }
  11. }
  12. seenAsAttributes.add(fieldName);
  13. }
  14. }
  15. });

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. @Override
  2. public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {
  3. final boolean oldFormat = "custom".equals(reader.getAttribute(mapper.aliasForSystemAttribute("serialization")));
  4. if (oldFormat) {
  5. reader.moveDown();
  6. reader.moveDown();
  7. }
  8. final Map<String, Long> elements = new HashMap<>();
  9. while (reader.hasMoreChildren()) {
  10. reader.moveDown();
  11. final String name = reader.getNodeName();
  12. elements.put(oldFormat ? name : mapper.realMember(ValueRange.class, name), Long.valueOf(reader.getValue()));
  13. reader.moveUp();
  14. }
  15. if (oldFormat) {
  16. reader.moveUp();
  17. reader.moveUp();
  18. }
  19. return ValueRange.of(elements.get("minSmallest").longValue(), elements.get("minLargest").longValue(), elements
  20. .get("maxSmallest")
  21. .longValue(), elements.get("maxLargest").longValue());
  22. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. InvocationHandler handler = null;
  2. Class handlerType = null;
  3. while (reader.hasMoreChildren()) {
  4. reader.moveDown();
  5. String elementName = reader.getNodeName();
  6. if (elementName.equals("interface")) {
  7. interfaces.add(mapper.realClass(reader.getValue()));
  8. } else if (elementName.equals("handler")) {
  9. String attributeName = mapper.aliasForSystemAttribute("class");
  10. if (attributeName != null) {
  11. handlerType = mapper.realClass(reader.getAttribute(attributeName));
  12. break;
  13. throw new ConversionException("No InvocationHandler specified for dynamic proxy");
  14. proxy = Proxy.newProxyInstance(classLoaderReference.getReference(), interfacesAsArray, DUMMY);
  15. handler = (InvocationHandler) context.convertAnother(proxy, handlerType);
  16. reader.moveUp();
  17. if (HANDLER != null) {

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. .realMember(resultType, mapper.attributeForAlias(attrAlias));
  2. Field field = reflectionProvider.getFieldOrNull(resultType, attrName);
  3. if (field != null && shouldUnmarshalField(field)) {
  4. Class classDefiningField = field.getDeclaringClass();
  5. if (!mapper.shouldSerializeMember(classDefiningField, attrName)) {
  6. continue;
  7. SingleValueConverter converter = mapper.getConverterFromAttribute(
  8. classDefiningField, attrName, field.getType());
  9. Class type = field.getType();
  10. if (converter != null) {
  11. Object value = converter.fromString(reader.getAttribute(attrAlias));
  12. if (type.isPrimitive()) {
  13. type = Primitives.box(type);
  14. ? resultType
  15. : explicitDeclaringClass;
  16. String fieldName = mapper.realMember(fieldDeclaringClass, originalNodeName);
  17. Mapper.ImplicitCollectionMapping implicitCollectionMapping = mapper
  18. .getImplicitCollectionDefForFieldName(fieldDeclaringClass, fieldName);
  19. final Object value;
  20. String implicitFieldName = null;
  21. Class itemType = mapper.getItemTypeForItemFieldName(fieldDeclaringClass, fieldName);
  22. if (itemType != null) {
  23. String classAttribute = HierarchicalStreams.readClassAttribute(
  24. reader, mapper);
  25. if (classAttribute != null) {
  26. type = mapper.realClass(classAttribute);

代码示例来源:origin: jenkinsci/jenkins

  1. if (result instanceof Saveable && context.get("Saveable") == null)
  2. context.put("Saveable", result);
  3. String attrName = mapper.attributeForAlias(attrAlias);
  4. Class classDefiningField = determineWhichClassDefinesField(reader);
  5. boolean fieldExistsInClass = fieldDefinedInClass(result, attrName);
  6. if (fieldExistsInClass) {
  7. Field field = reflectionProvider.getField(result.getClass(), attrName);
  8. SingleValueConverter converter = mapper.getConverterFromAttribute(field.getDeclaringClass(),attrName,field.getType());
  9. Class type = field.getType();
  10. if (converter == null) {
  11. converter = mapper.getConverterFromItemType(type);
  12. throw new ConversionException("Cannot convert type " + value.getClass().getName() + " to type " + type.getName());
  13. reflectionProvider.writeField(result, attrName, value, classDefiningField);
  14. seenFields.add(classDefiningField, attrName);
  15. while (reader.hasMoreChildren()) {
  16. reader.moveDown();
  17. String fieldName = mapper.realMember(result.getClass(), reader.getNodeName());
  18. for (Class<?> concrete = result.getClass(); concrete != null; concrete = concrete.getSuperclass()) {
  19. boolean implicitCollectionHasSameName = mapper.getImplicitCollectionDefForFieldName(result.getClass(), reader.getNodeName()) != null;
  20. value = context.convertAnother(result, type);

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public Map readFieldsFromStream() {
  2. final Map fields = new HashMap();
  3. reader.moveDown();
  4. if (reader.getNodeName().equals(ELEMENT_FIELDS)) {
  5. String name = reader.getAttribute(ATTRIBUTE_NAME);
  6. Class type = mapper.realClass(reader.getAttribute(ATTRIBUTE_CLASS));
  7. Object value = context.convertAnother(result, type);
  8. fields.put(name, value);
  9. reader.moveUp();
  10. while (reader.hasMoreChildren()) {
  11. reader.moveDown();
  12. String name = mapper.realMember(currentType[0], reader.getNodeName());
  13. if (mapper.shouldSerializeMember(currentType[0], name)) {
  14. String classAttribute = HierarchicalStreams.readClassAttribute(reader, mapper);
  15. Class type;
  16. if (classAttribute != null) {
  17. type = mapper.realClass(classAttribute);
  18. } else {
  19. ObjectStreamField field = objectStreamClass.getField(name);
  20. Object value = context.convertAnother(result, type);
  21. fields.put(name, value);
  22. throw new ConversionException("Expected <" + ELEMENT_FIELDS + "/> or <" +
  23. ELEMENT_DEFAULT + "/> element when calling ObjectInputStream.readFields()");

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public void writeFieldsToStream(Map fields) {
  2. ObjectStreamClass objectStreamClass = ObjectStreamClass.lookup(currentType[0]);
  3. writer.startNode(ELEMENT_DEFAULT);
  4. for (Iterator iterator = fields.keySet().iterator(); iterator.hasNext();) {
  5. String name = (String) iterator.next();
  6. if (!mapper.shouldSerializeMember(currentType[0], name)) {
  7. continue;
  8. }
  9. ObjectStreamField field = objectStreamClass.getField(name);
  10. Object value = fields.get(name);
  11. if (field == null) {
  12. throw new MissingFieldException(value.getClass().getName(), name);
  13. }
  14. if (value != null) {
  15. ExtendedHierarchicalStreamWriterHelper.startNode(
  16. writer, mapper.serializedMember(source.getClass(), name),
  17. value.getClass());
  18. if (field.getType() != value.getClass() && !field.getType().isPrimitive()) {
  19. String attributeName = mapper.aliasForSystemAttribute(ATTRIBUTE_CLASS);
  20. if (attributeName != null) {
  21. writer.addAttribute(attributeName, mapper.serializedClass(value.getClass()));
  22. }
  23. }
  24. context.convertAnother(value);
  25. writer.endNode();
  26. }
  27. }
  28. writer.endNode();
  29. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public void defaultReadObject() {
  2. if (serializationMembers.getSerializablePersistentFields(currentType[0]) != null) {
  3. readFieldsFromStream();
  4. return;
  5. }
  6. if (!reader.hasMoreChildren()) {
  7. return;
  8. }
  9. reader.moveDown();
  10. if (!reader.getNodeName().equals(ELEMENT_DEFAULT)) {
  11. throw new ConversionException("Expected <" + ELEMENT_DEFAULT + "/> element in readObject() stream");
  12. }
  13. while (reader.hasMoreChildren()) {
  14. reader.moveDown();
  15. String fieldName = mapper.realMember(currentType[0], reader.getNodeName());
  16. if (mapper.shouldSerializeMember(currentType[0], fieldName)) {
  17. String classAttribute = HierarchicalStreams.readClassAttribute(reader, mapper);
  18. final Class type;
  19. if (classAttribute != null) {
  20. type = mapper.realClass(classAttribute);
  21. } else {
  22. type = mapper.defaultImplementationOf(reflectionProvider.getFieldType(result, fieldName, currentType[0]));
  23. }
  24. Object value = context.convertAnother(result, type);
  25. reflectionProvider.writeField(result, fieldName, value, currentType[0]);
  26. }
  27. reader.moveUp();
  28. }
  29. reader.moveUp();
  30. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public void writeToStream(final Object object) {
  2. if (object == null) {
  3. writer.startNode("null");
  4. writer.endNode();
  5. } else {
  6. ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedClass(object.getClass()), object.getClass());
  7. context.convertAnother(object);
  8. writer.endNode();
  9. }
  10. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
  2. String methodName = null;
  3. String declaringClassName = null;
  4. while((methodName == null || declaringClassName == null) && reader.hasMoreChildren()) {
  5. reader.moveDown();
  6. if (reader.getNodeName().equals("name")) {
  7. methodName = reader.getValue();
  8. } else if (reader.getNodeName().equals("clazz")) {
  9. declaringClassName = reader.getValue();
  10. }
  11. reader.moveUp();
  12. }
  13. Class declaringClass = (Class)javaClassConverter.fromString(declaringClassName);
  14. try {
  15. return declaringClass.getDeclaredField(mapper.realMember(declaringClass, methodName));
  16. } catch (NoSuchFieldException e) {
  17. throw new ConversionException(e);
  18. }
  19. }
  20. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. String attributeName = mapper.aliasForSystemAttribute(ATTRIBUTE_SERIALIZATION);
  2. if (attributeName != null && !ATTRIBUTE_VALUE_CUSTOM.equals(reader.getAttribute(attributeName))) {
  3. throw new ConversionException("Cannot deserialize object with new readObject()/writeObject() methods");
  4. reader.moveDown();
  5. if (!reader.getNodeName().equals(ELEMENT_FIELD)) {
  6. throw new ConversionException("Expected <" + ELEMENT_FIELD + "/> element inside <" + ELEMENT_FIELD + "/>");
  7. throw new ConversionException("Expected <" + ELEMENT_FIELDS + "/> or <" +
  8. ELEMENT_DEFAULT + "/> element when calling ObjectInputStream.readFields()");
  9. while (reader.hasMoreChildren()) {
  10. reader.moveDown();
  11. String nodeName = reader.getNodeName();
  12. if (nodeName.equals(ELEMENT_UNSERIALIZABLE_PARENTS)) {
  13. String classAttribute = HierarchicalStreams.readClassAttribute(reader, mapper);
  14. if (classAttribute == null) {
  15. currentType[0] = mapper.defaultImplementationOf(mapper.realClass(nodeName));
  16. } else {
  17. currentType[0] = mapper.realClass(classAttribute);

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. private void write(final String fieldName, final long value, final HierarchicalStreamWriter writer) {
  2. ExtendedHierarchicalStreamWriterHelper.startNode(writer, mapper.serializedMember(ValueRange.class, fieldName),
  3. long.class);
  4. writer.setValue(String.valueOf(value));
  5. writer.endNode();
  6. }
  7. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. final Iterator it = reader.getAttributeNames();
  2. systemAttributes.add(mapper.aliasForSystemAttribute("class"));
  3. final String fieldName = mapper.realMember(resultType, attrName);
  4. final Field field = reflectionProvider.getFieldOrNull(resultType, fieldName);
  5. if (field != null) {
  6. if (Modifier.isTransient(field.getModifiers())) {
  7. final Class declaringClass = field.getDeclaringClass();
  8. ConverterMatcher converter = UseAttributeForEnumMapper.isEnum(type)
  9. ? (ConverterMatcher)enumMapper.getConverterFromItemType(null, type, null)
  10. : (ConverterMatcher)mapper.getLocalConverter(declaringClass, fieldName);
  11. if (converter == null) {
  12. converter = lookup.lookupConverterForType(type);
  13. .readClassAttribute(reader, mapper);
  14. if (classAttribute != null) {
  15. type = mapper.realClass(classAttribute);
  16. } else {
  17. type = mapper.defaultImplementationOf(reflectionProvider.getFieldType(
  18. result, fieldName, classDefiningField));
  19. final Object value = context.convertAnother(
  20. result, type,
  21. mapper.getLocalConverter(field.getDeclaringClass(), field.getName()));

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {
  2. final Object result = instantiateNewInstance(context);
  3. final Set seenProperties = new HashSet() {
  4. public boolean add(Object e) {
  5. if (!super.add(e)) {
  6. throw new DuplicatePropertyException(((FastField)e).getName());
  7. }
  8. return true;
  9. }
  10. };
  11. Class resultType = result.getClass();
  12. while (reader.hasMoreChildren()) {
  13. reader.moveDown();
  14. String propertyName = mapper.realMember(resultType, reader.getNodeName());
  15. if (mapper.shouldSerializeMember(resultType, propertyName)) {
  16. boolean propertyExistsInClass = beanProvider.propertyDefinedInClass(propertyName, resultType);
  17. if (propertyExistsInClass) {
  18. Class type = determineType(reader, result, propertyName);
  19. Object value = context.convertAnother(result, type);
  20. beanProvider.writeProperty(result, propertyName, value);
  21. seenProperties.add(new FastField(resultType, propertyName));
  22. } else if (!mapper.isIgnoredElement(propertyName)) {
  23. throw new MissingFieldException(resultType.getName(), propertyName);
  24. }
  25. }
  26. reader.moveUp();
  27. }
  28. return result;
  29. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. private void writeField(String propertyName, Class fieldType, Object newObj) {
  2. Class actualType = newObj.getClass();
  3. Class defaultType = mapper.defaultImplementationOf(fieldType);
  4. String serializedMember = mapper.serializedMember(source.getClass(), propertyName);
  5. ExtendedHierarchicalStreamWriterHelper.startNode(writer, serializedMember, actualType);
  6. if (!actualType.equals(defaultType) && classAttributeName != null) {
  7. writer.addAttribute(classAttributeName, mapper.serializedClass(actualType));
  8. }
  9. context.convertAnother(newObj);
  10. writer.endNode();
  11. }

代码示例来源:origin: com.thoughtworks.xstream/xstream

  1. public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {
  2. final List list = new ArrayList();
  3. while (reader.hasMoreChildren()) {
  4. reader.moveDown();
  5. final Object item;
  6. final String className = HierarchicalStreams.readClassAttribute(reader, mapper);
  7. final Class itemType = className == null ? arrayType.getComponentType() : mapper.realClass(className);
  8. if (Mapper.Null.class.equals(itemType)) {
  9. item = null;
  10. } else {
  11. item = context.convertAnother(null, itemType);
  12. }
  13. list.add(item);
  14. reader.moveUp();
  15. }
  16. final Object array = Array.newInstance(arrayType.getComponentType(), list.size());
  17. for (int i = 0; i < list.size(); ++i) {
  18. Array.set(array, i, list.get(i));
  19. }
  20. return array;
  21. }

相关文章