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);
}
}