com.thoughtworks.xstream.mapper.Mapper.realClass()方法的使用及代码示例

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

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

Mapper.realClass介绍

[英]How a serialized class representation should be mapped back to a real class.
[中]序列化类表示应该如何映射回真实类。

代码示例

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

  1. public Class realClass(String elementName) {
  2. return delegate.realClass(elementName);
  3. }

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

  1. public Class realClass(String elementName) {
  2. return realClassMapper.realClass(elementName);
  3. }

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

  1. public static Class readClassType(HierarchicalStreamReader reader, Mapper mapper) {
  2. String classAttribute = readClassAttribute(reader, mapper);
  3. Class type;
  4. if (classAttribute == null) {
  5. type = mapper.realClass(reader.getNodeName());
  6. } else {
  7. type = mapper.realClass(classAttribute);
  8. }
  9. return type;
  10. }

代码示例来源: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: com.thoughtworks.xstream/xstream

  1. private void readCallback(HierarchicalStreamReader reader, UnmarshallingContext context,
  2. List callbacksToEnhance, List callbacks) {
  3. Callback callback = (Callback)context.convertAnother(null, mapper.realClass(reader
  4. .getNodeName()));
  5. callbacks.add(callback);
  6. if (callback == null) {
  7. callbacksToEnhance.add(NoOp.INSTANCE);
  8. } else {
  9. callbacksToEnhance.add(callback);
  10. }
  11. }

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

  1. private Class determineType(HierarchicalStreamReader reader, boolean validField, Object result, String fieldName, Class definedInCls) {
  2. String classAttribute = reader.getAttribute(mapper.aliasForAttribute("class"));
  3. Class fieldType = reflectionProvider.getFieldType(result, fieldName, definedInCls);
  4. if (classAttribute != null) {
  5. Class specifiedType = mapper.realClass(classAttribute);
  6. if(fieldType.isAssignableFrom(specifiedType))
  7. // make sure that the specified type in XML is compatible with the field type.
  8. // this allows the code to evolve in more flexible way.
  9. return specifiedType;
  10. }
  11. if (!validField) {
  12. Class itemType = mapper.getItemTypeForItemFieldName(result.getClass(), fieldName);
  13. if (itemType != null) {
  14. return itemType;
  15. } else {
  16. return mapper.realClass(reader.getNodeName());
  17. }
  18. } else {
  19. return mapper.defaultImplementationOf(fieldType);
  20. }
  21. }

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

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

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

  1. public Object fromString(String str) {
  2. try {
  3. return mapper.realClass(str);
  4. } catch (CannotResolveClassException e) {
  5. throw new ConversionException("Cannot load java class " + str, e.getCause());
  6. }
  7. }
  8. }

代码示例来源: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: AxonFramework/AxonFramework

  1. @Override
  2. public Class classForType(SerializedType type) {
  3. if (SerializedType.emptyType().equals(type)) {
  4. return Void.class;
  5. }
  6. try {
  7. return xStream.getMapper().realClass(type.getName());
  8. } catch (CannotResolveClassException e) {
  9. return UnknownSerializedType.class;
  10. }
  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. }

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

  1. @SuppressWarnings("unchecked")
  2. public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
  3. String attributeName = mapper.aliasForSystemAttribute("enum-type");
  4. if (attributeName == null) {
  5. throw new ConversionException("No EnumType specified for EnumSet");
  6. }
  7. Class enumTypeForSet = mapper.realClass(reader.getAttribute(attributeName));
  8. EnumSet set = EnumSet.noneOf(enumTypeForSet);
  9. String[] enumValues = reader.getValue().split(",");
  10. for (int i = 0; i < enumValues.length; i++) {
  11. String enumValue = enumValues[i];
  12. if(enumValue.length() > 0) {
  13. set.add(Enum.valueOf(enumTypeForSet, enumValue));
  14. }
  15. }
  16. return set;
  17. }

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

  1. protected Object readBareItem(final HierarchicalStreamReader reader, final UnmarshallingContext context,
  2. final Object current) {
  3. final String className = HierarchicalStreams.readClassAttribute(reader, mapper());
  4. final Class itemType = className == null ? type : mapper().realClass(className);
  5. if (Mapper.Null.class.equals(itemType)) {
  6. return null;
  7. } else {
  8. return context.convertAnother(current, itemType);
  9. }
  10. }
  11. }

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

  1. protected Object readItem(Class type, HierarchicalStreamReader reader,
  2. UnmarshallingContext context, Object current) {
  3. String className = HierarchicalStreams.readClassAttribute(reader, mapper());
  4. Class itemType = className == null ? type : mapper().realClass(className);
  5. if (Mapper.Null.class.equals(itemType)) {
  6. return null;
  7. } else {
  8. return context.convertAnother(current, itemType);
  9. }
  10. }
  11. }

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

  1. private Class determineType(HierarchicalStreamReader reader, Object result, String fieldName) {
  2. final String classAttributeName = classAttributeIdentifier != null ? classAttributeIdentifier : mapper.aliasForSystemAttribute("class");
  3. String classAttribute = classAttributeName == null ? null : reader.getAttribute(classAttributeName);
  4. if (classAttribute != null) {
  5. return mapper.realClass(classAttribute);
  6. } else {
  7. return mapper.defaultImplementationOf(beanProvider.getPropertyType(result, fieldName));
  8. }
  9. }

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

  1. @Override
  2. protected Object readItem(
  3. HierarchicalStreamReader reader, UnmarshallingContext context, Object current) {
  4. Class theClass = clazz;
  5. if (subclasses != null) {
  6. String attribute = reader.getAttribute("type");
  7. if (attribute != null) {
  8. theClass = mapper().realClass(attribute);
  9. }
  10. }
  11. return context.convertAnother(current, theClass, new ReferenceConverter(theClass));
  12. }
  13. }

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

  1. @SuppressWarnings("unchecked")
  2. public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
  3. String attributeName = mapper().aliasForSystemAttribute("enum-type");
  4. if (attributeName == null) {
  5. throw new ConversionException("No EnumType specified for EnumMap");
  6. }
  7. Class type = mapper().realClass(reader.getAttribute(attributeName));
  8. EnumMap map = new EnumMap(type);
  9. populateMap(reader, context, map);
  10. return map;
  11. }
  12. }

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

  1. /**
  2. * Given a filename, the unescape method returns the key which originated it.
  3. *
  4. * @param name the filename
  5. * @return the original key
  6. */
  7. protected Object extractKey(final String name) {
  8. final String key = unescape(name.substring(0, name.length() - 4));
  9. if ("null@null".equals(key)) {
  10. return null;
  11. }
  12. final int idx = key.indexOf('@');
  13. if (idx < 0) {
  14. final ConversionException exception = new ConversionException("No valid key");
  15. exception.add("key", key);
  16. throw exception;
  17. }
  18. final Class type = getMapper().realClass(key.substring(0, idx));
  19. final Converter converter = getConverterLookup().lookupConverterForType(type);
  20. if (converter instanceof SingleValueConverter) {
  21. final SingleValueConverter svConverter = (SingleValueConverter)converter;
  22. return svConverter.fromString(key.substring(idx + 1));
  23. } else {
  24. final ConversionException exception = new ConversionException(
  25. "No SingleValueConverter available for key type");
  26. exception.add("key-type", type.getName());
  27. throw exception;
  28. }
  29. }

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

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

代码示例来源: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. }

相关文章