本文整理汇总了Java中com.thoughtworks.xstream.mapper.Mapper.ImplicitCollectionMapping方法的典型用法代码示例。如果您正苦于以下问题:Java Mapper.ImplicitCollectionMapping方法的具体用法?Java Mapper.ImplicitCollectionMapping怎么用?Java Mapper.ImplicitCollectionMapping使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.thoughtworks.xstream.mapper.Mapper
的用法示例。
在下文中一共展示了Mapper.ImplicitCollectionMapping方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: writeValueToImplicitCollection
import com.thoughtworks.xstream.mapper.Mapper; //导入方法依赖的package包/类
private void writeValueToImplicitCollection(final Object value,
final Map<String, Collection<? super Object>> implicitCollections, final Object result,
final String implicitFieldName) {
Collection<? super Object> collection = implicitCollections.get(implicitFieldName);
if (collection == null) {
final Class<?> physicalFieldType = reflectionProvider.getFieldType(result, implicitFieldName, null);
if (physicalFieldType.isArray()) {
collection = new ArraysList(physicalFieldType);
} else {
final Class<?> fieldType = mapper.defaultImplementationOf(physicalFieldType);
if (!(Collection.class.isAssignableFrom(fieldType) || Map.class.isAssignableFrom(fieldType))) {
throw new ObjectAccessException("Field "
+ implicitFieldName
+ " of "
+ result.getClass().getName()
+ " is configured for an implicit Collection or Map, but field is of type "
+ fieldType.getName());
}
if (pureJavaReflectionProvider == null) {
pureJavaReflectionProvider = new PureJavaReflectionProvider();
}
final Object instance = pureJavaReflectionProvider.newInstance(fieldType);
if (instance instanceof Collection) {
@SuppressWarnings("unchecked")
final Collection<? super Object> uncheckedCollection = (Collection<? super Object>)instance;
collection = uncheckedCollection;
} else {
final Mapper.ImplicitCollectionMapping implicitCollectionMapping = mapper
.getImplicitCollectionDefForFieldName(result.getClass(), implicitFieldName);
@SuppressWarnings("unchecked")
final Map<Object, Object> map = (Map<Object, Object>)instance;
collection = new MappingList(map, implicitCollectionMapping.getKeyFieldName());
}
reflectionProvider.writeField(result, implicitFieldName, instance, null);
}
implicitCollections.put(implicitFieldName, collection);
}
collection.add(value);
}