All Downloads are FREE. Search and download functionalities are using the official Maven repository.

goja.rapid.xstream.SequenceFieldKeySorter Maven / Gradle / Ivy

The newest version!
package goja.rapid.xstream;

import com.beust.jcommander.internal.Maps;
import com.thoughtworks.xstream.converters.reflection.FieldKey;
import com.thoughtworks.xstream.converters.reflection.FieldKeySorter;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Map;
import java.util.Set;

/**
 * 

* * @author sogYF * @version 1.0 * @since JDK 1.6 */ public class SequenceFieldKeySorter implements FieldKeySorter { @Override public Map sort(Class type, Map keyedByFieldKey) { Annotation sequence = type.getAnnotation(XMLSequence.class); if (sequence != null) { final String[] fieldsOrder = ((XMLSequence) sequence).value(); Map result = Maps.newLinkedHashMap(); Set> fields = keyedByFieldKey.entrySet(); for (String fieldName : fieldsOrder) { if (fieldName != null) { for (Map.Entry fieldEntry : fields) { if (fieldName.equals(fieldEntry.getKey().getFieldName())) { result.put(fieldEntry.getKey(), fieldEntry.getValue()); } } } } return result; } else { return keyedByFieldKey; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy