package hudson.plugins.global_build_stats.xstream.migration.v0; import java.util.ArrayList; import java.util.List; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import hudson.plugins.global_build_stats.model.BuildStatConfiguration; import hudson.plugins.global_build_stats.model.JobBuildResult; import hudson.plugins.global_build_stats.xstream.migration.GlobalBuildStatsXStreamReader; /** * Reader for GlobalBuildStats v0 XStream representation * @author fcamblor */ public class V0XStreamReader implements GlobalBuildStatsXStreamReader<V0GlobalBuildStatsPOJO>{ public V0GlobalBuildStatsPOJO readGlobalBuildStatsPOJO( HierarchicalStreamReader reader, UnmarshallingContext context) { V0GlobalBuildStatsPOJO pojo = new V0GlobalBuildStatsPOJO(); reader.moveDown(); List<JobBuildResult> jobBuildResults = new ArrayList<JobBuildResult>(); while(reader.hasMoreChildren()){ reader.moveDown(); JobBuildResult jbr = (JobBuildResult)context.convertAnother(pojo, JobBuildResult.class); jobBuildResults.add(jbr); reader.moveUp(); } reader.moveUp(); reader.moveDown(); List<BuildStatConfiguration> buildStatConfigs = new ArrayList<BuildStatConfiguration>(); while(reader.hasMoreChildren()){ reader.moveDown(); BuildStatConfiguration bsc = (BuildStatConfiguration)context.convertAnother(pojo, BuildStatConfiguration.class); buildStatConfigs.add(bsc); reader.moveUp(); } reader.moveUp(); pojo.jobBuildResults = jobBuildResults; pojo.buildStatConfigs = buildStatConfigs; return pojo; } }