import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
+import java.util.Locale;
+import net.jaekl.cfb.CfbBundle;
import net.jaekl.cfb.analyze.Analysis;
import net.jaekl.cfb.db.CfbSchema;
import net.jaekl.cfb.db.Column;
import net.jaekl.cfb.xml.BugCollection;
import net.jaekl.cfb.xml.BugInstance;
import net.jaekl.cfb.xml.LocalVariable;
+import net.jaekl.cfb.xml.messages.BugCategory;
+import net.jaekl.cfb.xml.messages.BugPattern;
import net.jaekl.cfb.xml.messages.MessageCollection;
public class DbStore {
return getAnalysis(priorId);
}
- public boolean put(Analysis analysis) throws SQLException, TypeMismatchException {
+ public boolean put(Analysis analysis) throws SQLException, TypeMismatchException, StoreException {
+ CfbBundle bundle = CfbBundle.getInst(Locale.getDefault());
+
if (null == analysis) {
return false;
}
Location secondLoc = (locs.size() > 1) ? locs.get(1) : null;
Location thirdLoc = (locs.size() > 2) ? locs.get(2) : null;
+ if (BugPattern.UNKNOWN.getId() == bugId) {
+ throw new StoreException(bundle.get(CfbBundle.BUG_TYPE_UNKNOWN, ""+bug.getType()));
+ }
+ if (BugCategory.UNKNOWN.getId() == categoryId) {
+ throw new StoreException(bundle.get(CfbBundle.BUG_CATEGORY_UNKNOWN, ""+bug.getCategory()));
+ }
+
values[row][0] = foundId;
values[row][1] = runId;
values[row][2] = bugId;