package com.github.xetorthio.jedisque; import redis.clients.jedis.Builder; import redis.clients.jedis.BuilderFactory; import redis.clients.util.SafeEncoder; import java.util.ArrayList; import java.util.List; public class JedisqueBuilder extends BuilderFactory { public static final Builder<List<Job>> JOB_LIST = new Builder<List<Job>>() { @SuppressWarnings("unchecked") public List<Job> build(Object data) { if (null == data) { return null; } List<List<byte[]>> l = (List<List<byte[]>>) data; // Order matters that's why we're using a LL final List<Job> result = new ArrayList<Job>(); for (List<byte[]> rawJob : l) { result.add(new Job(rawJob.get(0), rawJob.get(1), rawJob.get(2))); } return result; } }; public static final Builder<JobInfo> JOB_SHOW = new Builder<JobInfo>() { @SuppressWarnings("unchecked") public JobInfo build(Object data) { if (null == data) { return null; } List<byte[]> showRaw = (List<byte[]>) data; return new JobInfo(SafeEncoder.encode(showRaw.get(1)), SafeEncoder.encode(showRaw.get(3)), SafeEncoder.encode(showRaw.get(5)), BuilderFactory.LONG.build(showRaw.get(7)), BuilderFactory.LONG.build(showRaw.get(9)), BuilderFactory.LONG.build(showRaw.get(11)), BuilderFactory.LONG.build(showRaw.get(13)), BuilderFactory.LONG.build(showRaw.get(15)), BuilderFactory.STRING_LIST.build(showRaw.get(17)), BuilderFactory.STRING_LIST.build(showRaw.get(19)), BuilderFactory.LONG.build(showRaw.get(21)), BuilderFactory.LONG.build(showRaw.get(23)), SafeEncoder.encode(showRaw.get(25))); } }; }