package net.atoms.NobleGases; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.Random; public class AtomsMap { private Collection atoms; private void init(HttpSession session) { atoms = new ArrayList(); Random random = new Random(); atoms.add(new Atom(Math.abs(random.nextLong()), "Helium", "He",2,4.003, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Neon", "Ne",10,20.180, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Argon", "Ar",18,39.948, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Krypton" ,"Kr",36,83.8, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Xenon", "Xe",54,131.29, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Radon", "Rn",86,222.0, true)); atoms.add(new Atom(Math.abs(random.nextLong()), "Sodium", "Na",11,22.99,false)); session.setAttribute("key", atoms); } private void loadData(HttpSession session) { atoms = (Collection) session.getAttribute("key"); if (atoms == null) init(session); } private void saveData(HttpSession session) { session.setAttribute("key", atoms); } public long saveToDB(Atom atom, HttpSession session) { loadData(session); boolean atomExist = false; ArrayList atomsNew = (ArrayList) atoms; int index = 0; for (Iterator iter = atoms.iterator(); iter.hasNext();) { Atom element = (Atom) iter.next(); if (element.getId() == atom.getId()) { atomsNew.set(index, atom); atomExist = true; break; } index++; } atoms = atomsNew; if (atomExist == false) { Random random = new Random(); atom.setId(random.nextLong()); atoms.add(atom); } saveData(session); return atom.getId(); } public Atom loadAtomById(long id, HttpSession session) { loadData(session); for (Iterator iter = atoms.iterator(); iter.hasNext();) { Atom element = (Atom) iter.next(); if (element.getId() == id) return (Atom) element; } return null; } public void deleteAtomById(long id, HttpSession session){ loadData(session); Collection atomsNew = new ArrayList(); for (Iterator iter = atoms.iterator(); iter.hasNext();) { Atom element = (Atom) iter.next(); if (element.getId() != id){ atomsNew.add(element); } } atoms = atomsNew; saveData(session); } public Collection getAllAtoms(HttpSession session) { loadData(session); return atoms; } }