private Map<String, Map<String, Accession>> accessions;
//Im Konstruktor
this.accessions = new HashMap<>();
@Override
public void groupsAddParent(Group currenGroup, Group parent) {
TreeMap<Long, Group> parentsMap = parents.get(currenGroup.getGroupsUniqueID());
if(parentsMap == null) {
parentsMap = new TreeMap<>();
}
parentsMap.put(parent.getID(), parent);
parents.put(currenGroup.getGroupsUniqueID(), parentsMap);
}
private Map<String, Map<String, Accession>> accessions;
@Override
public Map<String, Accession> getAccessions(Group group) {
Map<String, Accession> acc = accessions.get(group.getGroupsUniqueID());
if(acc == null) {
acc = new HashMap<>();
}
accessions.put(group.getGroupsUniqueID(), acc);
return acc;
}
// Für die SQLite
@Override
public void groupsAddAccession(Group group, Accession acc) {
/** SQL for inserting new addPeptides in the groups */
String sqlNewGroupsAddAccession = "INSERT INTO groupsAddAccessions(groupID, accId, accessions) VALUES (?,?,?)";
try (PreparedStatement pstmt = connection.prepareStatement(sqlNewGroupsAddAccession)) {
pstmt.setString(1, group.getGroupsUniqueID());
pstmt.setLong(2, acc.getID());
pstmt.setString(3, acc.getAccession());
pstmt.addBatch();
pstmt.executeBatch();
connection.commit();
} catch (Exception e) {
e.getMessage();
}
}
//TODO
@Override
public Map<String, Accession> getAccessions(Group groupID) {
String sqlGetAccessionsID = "SELECT accId, accessions FROM groupsAddAccessions WHERE groupID = ?";
Map<String, Map<String, Accession>> a = new ConcurrentHashMap<String, Map<String,Accession>>();
Map<String, Accession> acc = a.get(groupID.getGroupsUniqueID());
try (PreparedStatement pstmt = connection.prepareStatement(sqlGetAccessionsID)) {
pstmt.setString(1, groupID.getGroupsUniqueID());
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
long accId = rs.getLong("accId");
String accession = rs.getString("accessions");
acc.put(accession, new Accession(accId, this));
a.put(groupID.getGroupsUniqueID(), acc);
}
}
} catch (SQLException e) {
LOGGER.error(e);
}
return acc;
}