Java tutorial
package no.nlf.dal; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.util.ArrayList; import java.util.List; import no.nlf.dal.config.AppContext; import no.nlf.dal.config.MongoCounter; import no.nlf.models.classes.Club; import no.nlf.models.classes.License; import no.nlf.models.classes.Parachutist; import no.nlf.models.mongoclasses.MongoParachutist; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; /** * * @author: Tore Buer, s180346 * @author: Eivind Jacobsen, s173466 * @author: Morten Kristoffersen, s169440 * * @since may.26.2014 * */ @Service public class ParachutistController { private MongoParachutist mongoParachutist; private Query searchPerson; @Autowired private AppContext appContext; @Autowired private MongoCounter mongoCounter; @Autowired private LicenseController licenseController; @Autowired private ClubController clubController; public ParachutistController() throws NoSuchAlgorithmException, NoSuchProviderException { }; public List<Parachutist> getAll() { List<MongoParachutist> mongoParachutists = appContext.mongoOperation().findAll(MongoParachutist.class); ArrayList<Parachutist> parachutists = new ArrayList<>(); List<License> allLicenses = licenseController.getAll(); List<Club> allClubs = clubController.getAll(); if (mongoParachutists.isEmpty()) { return parachutists; } Parachutist parachutist = new Parachutist(); for (MongoParachutist mongoParachutist : mongoParachutists) { parachutist = mongoParachutist.toParachutist(); for (License license : allLicenses) { for (Integer licenseId : mongoParachutist.getLicenses()) { if (license.getId() == licenseId) { parachutist.getLicenses().add(license); } } } for (Club club : allClubs) { for (Integer clubId : mongoParachutist.getMemberclubs()) { if (club.getId() == clubId) { parachutist.getMemberclubs().add(club); } } } parachutists.add(parachutist); } return parachutists; } public Parachutist getOne(int id) { searchPerson = new Query(Criteria.where("id").is(id)); mongoParachutist = appContext.mongoOperation().findOne(searchPerson, MongoParachutist.class); Parachutist parachutist = mongoParachutist.toParachutist(); List<Club> clubs = clubController.getAll(); List<License> licenses = licenseController.getAll(); for (Integer clubId : mongoParachutist.getMemberclubs()) { for (Club club : clubs) { if (clubId == club.getId()) { parachutist.getMemberclubs().add(club); } } } for (Integer licenseId : mongoParachutist.getLicenses()) { for (License license : licenses) { if (licenseId == license.getId()) { parachutist.getLicenses().add(licenseController.getOne(licenseId)); } } } return parachutist; } public Parachutist getOneWithMelwinId(String melwinId) { Query query = new Query(Criteria.where("melwinId").is(melwinId)); mongoParachutist = appContext.mongoOperation().findOne(query, MongoParachutist.class); if (mongoParachutist == null) { return new Parachutist(); } Parachutist parachutist = mongoParachutist.toParachutist(); for (Integer clubId : mongoParachutist.getMemberclubs()) { parachutist.getMemberclubs().add(clubController.getOne(clubId)); } for (Integer licenseId : mongoParachutist.getLicenses()) { parachutist.getLicenses().add(licenseController.getOne(licenseId)); } return parachutist; } public Parachutist save(Parachutist parachutist) { mongoParachutist = new MongoParachutist(parachutist); mongoParachutist.setId(mongoCounter.getNextSequence("jumpers")); appContext.mongoOperation().save(mongoParachutist); Parachutist returnParachutist = mongoParachutist.toParachutist(); returnParachutist.setLicenses(parachutist.getLicenses()); returnParachutist.setMemberclubs(parachutist.getMemberclubs()); return returnParachutist; } public Parachutist update(Parachutist parachutist) { MongoParachutist mongoParachutist = new MongoParachutist(parachutist); Update updateMongoParacutist = new Update(); Query queryMongoParachutists = new Query(Criteria.where("melwinId").is(mongoParachutist.getMelwinId())); updateMongoParacutist.set("memberclubs", mongoParachutist.getMemberclubs()); updateMongoParacutist.set("licenses", mongoParachutist.getLicenses()); updateMongoParacutist.set("firstname", mongoParachutist.getFirstname()); updateMongoParacutist.set("lastname", mongoParachutist.getLastname()); updateMongoParacutist.set("bithdate", mongoParachutist.getBirthdate()); updateMongoParacutist.set("street", mongoParachutist.getStreet()); updateMongoParacutist.set("gender", mongoParachutist.getGender()); updateMongoParacutist.set("phone", mongoParachutist.getPhone()); updateMongoParacutist.set("mail", mongoParachutist.getMail()); updateMongoParacutist.set("postnumber", mongoParachutist.getPostnumber()); updateMongoParacutist.set("postplace", mongoParachutist.getPostplace()); mongoParachutist = appContext.mongoOperation().findAndModify(queryMongoParachutists, updateMongoParacutist, new FindAndModifyOptions().returnNew(true), MongoParachutist.class); if (mongoParachutist != null) { return mongoParachutist.toParachutist(); } return new Parachutist(); } public Parachutist delete(int id) { searchPerson = new Query(Criteria.where("id").is(id)); mongoParachutist = appContext.mongoOperation().findOne(searchPerson, MongoParachutist.class); appContext.mongoOperation().remove(mongoParachutist); return mongoParachutist.toParachutist(); } public boolean validateUser(String melwinId) { Query searchPerson = new Query(Criteria.where("melwinId").is(melwinId)); MongoParachutist mp = appContext.mongoOperation().findOne(searchPerson, MongoParachutist.class); if (mp == null) return false; return true; } public boolean existsUserNotPassword(String melwinId, String nakkey) { Query searchPerson = new Query(Criteria.where("nak").is(melwinId)); mongoParachutist = appContext.mongoOperation().findOne(searchPerson, MongoParachutist.class); if (mongoParachutist.getNakKey().equals("")) return true; return false; } }