package org.prevayler.demos.scalability; import java.io.Serializable; import java.util.*; import java.math.BigDecimal; public class Record implements Serializable { private static final long serialVersionUID=7098880197177237832L; private static final String largeString=generateLargeString(); private final long id; private final String name; private final String string1; private final BigDecimal bigDecimal1; private final BigDecimal bigDecimal2; private final long date1; private final long date2; private static final Random RANDOM=new Random(); public Record( long id){ this(id,RANDOM); } public Record( long id, Random random){ this(id,"NAME" + (id % 10000),(id % 10000) == 0 ? largeString + id : null,new BigDecimal(random.nextInt()),new BigDecimal(random.nextInt()),new Date(random.nextInt(10000000)),new Date(random.nextInt(10000000))); } public Record( long id, String name, String string1, BigDecimal bigDecimal1, BigDecimal bigDecimal2, Date date1, Date date2){ this.id=id; this.name=name; this.string1=string1; this.bigDecimal1=bigDecimal1; this.bigDecimal2=bigDecimal2; this.date1=date1.getTime(); this.date2=date2.getTime(); } public long getId(){ return id; } public String getName(){ return name; } public String getString1(){ return string1; } public BigDecimal getBigDecimal1(){ return bigDecimal1; } public BigDecimal getBigDecimal2(){ return bigDecimal2; } public Date getDate1(){ return new Date(date1); } public Date getDate2(){ return new Date(date2); } public int hashCode(){ return (int)(id + name.hashCode() + ("" + string1).hashCode()+ bigDecimal1.hashCode()+ bigDecimal2.hashCode()+ date1+ date2); } static private String generateLargeString(){ char[] chars=new char[980]; Arrays.fill(chars,'A'); return new String(chars); } }