/*To remove an rcm under a particular rmos*/ public Message removeRcm(int id) { RcmService rcmService = new RcmService(); Rcm rcm; Message msg = new Message(); msg.setSuccessful(true); rcm = rcmService.getRcmById(id); if (rcm == null) { msg.setSuccessful(false); msg.setMessage("Rcm Does not exist"); return msg; } RmosRcmMapping mapping = repository.getMappingForRcm(this.rmos, rcm); if (mapping == null) { msg.setSuccessful(false); msg.setMessage("Rcm is Not Mapped to this Rmos"); return msg; } mapping.setValid(false); mapping.getRcm().setStatus(RcmStatus.REMOVED); msg.setSuccessful(repository.updateRmos(this.rmos)); if (!msg.isSuccessful()) msg.setMessage("Internal Error"); else { this.rmos = repository.getRmosById(this.rmos.getId()); } setChanged(); notifyObservers(); return msg; }
/*To get all rcm's*/ public List<Rcm> getAllRcms() { Set<RmosRcmMapping> mappings = this.rmos.getRmosRcmMappings(); List<Rcm> rcms = new ArrayList<Rcm>(); Iterator<RmosRcmMapping> iter = mappings.iterator(); while (iter.hasNext()) { RmosRcmMapping mapping = iter.next(); if (mapping.isValid()) rcms.add(mapping.getRcm()); } return rcms; }
/*To add a rcm to a particular rmos*/ public Message addRcm(String name, String location, double capacity, double cashValue) { LocationService locationService = new LocationService(); RcmService rcmService = new RcmService(); Message msg = new Message(); msg.setSuccessful(true); Rcm rcm = rcmService.getRcmByName(name); if (rcm != null) { msg.setSuccessful(false); msg.setMessage("Rcm Already exists"); return msg; } rcm = new Rcm(); rcm.setName(name); rcm.setLocation(locationService.getLocationByCity(location)); rcm.setTotalCapacity(capacity); rcm.setTotalCashValue(cashValue); rcm.setStatus(RcmStatus.ACTIVE); rcm.setReason("Admin Change"); RmosRcmMapping mapping = new RmosRcmMapping(); mapping.setRcm(rcm); mapping.setRmos(this.rmos); mapping.setValid(true); this.rmos.addRmosRcmMapping(mapping); msg.setSuccessful(repository.updateRmos(this.rmos)); if (!msg.isSuccessful()) msg.setMessage("Internal Error"); else { this.rmos = repository.getRmosById(this.rmos.getId()); } setChanged(); notifyObservers(); return msg; }