package cc.glsn.v15.argus; import java.sql.ResultSet; import java.util.Set; import java.util.TreeSet; import cc.glsn.v15.SQLConnection; class ParitySet { private ParitySetID setID; private String md5; private int num_images; private long size; private TreeSet images; private TreeSet drives; public ParitySet(ResultSet r) throws java.sql.SQLException { setID=new ParitySetID(r.getString("id")); md5=r.getString("md5"); num_images=r.getInt("num_images"); size=r.getLong("size"); images=new TreeSet(); drives=new TreeSet(); } public ParitySet(ParitySetID setID, Set imageSet, long len, String md5) { this.setID=setID; images=new TreeSet(imageSet); size=len; this.md5=md5; drives=new TreeSet(); } public ParitySetID getSetID() { return setID; } public String getMd5() { return md5; } public int getNum_images() { return num_images; } public TreeSet getImages() { return new TreeSet(images); } public void addMember(ImageID imgID) throws java.sql.SQLException { images.add(imgID); } public void addDrive(DriveID did) { drives.add(did); } public void saveDB(SQLConnection c) throws java.sql.SQLException { { ResultSet r=c.doSingleUpdatableQuery("select * from paritysets limit 1"); r.moveToInsertRow(); r.updateString("id", setID.getID()); r.updateString("md5", md5); r.updateInt("num_images",images.size()); r.updateLong("size", size); r.insertRow(); r.close(); } { ResultSet r=c.doSingleUpdatableQuery("select * from paritymembers limit 1"); for(ImageID i : images) { r.moveToInsertRow(); r.updateString("setid",setID.getID()); r.updateString("image_name", i.getID()); r.insertRow(); } r.close(); } } public TreeSet getDrives() { return new TreeSet(drives); } }