package org.societies.webapp.controller;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import javax.validation.Valid;
import org.jfree.util.Log;
import org.societies.api.cis.directory.ICisDirectoryRemote;
import org.societies.api.comm.xmpp.interfaces.ICommManager;
import org.societies.api.css.directory.ICssDirectoryRemote;
import org.societies.api.identity.INetworkNode;
import org.societies.api.internal.comm.ICommManagerController;
import org.societies.api.internal.css.management.ICSSLocalManager;
import org.societies.api.internal.css.ICSSInternalManager;
import org.societies.api.internal.servicelifecycle.IServiceControl;
import org.societies.api.internal.servicelifecycle.IServiceDiscovery;
import org.societies.api.internal.servicelifecycle.ServiceControlException;
import org.societies.api.internal.servicelifecycle.ServiceDiscoveryException;
import org.societies.api.schema.css.directory.CssAdvertisementRecord;
import org.societies.api.schema.cssmanagement.CssAdvertisementRecordDetailed;
import org.societies.api.schema.cssmanagement.CssInterfaceResult;
import org.societies.api.schema.cssmanagement.CssNode;
import org.societies.api.schema.cssmanagement.CssRecord;
import org.societies.api.schema.cssmanagement.CssRequest;
import org.societies.api.schema.cssmanagement.CssRequestOrigin;
import org.societies.api.schema.cssmanagement.CssRequestStatusType;
import org.societies.api.schema.servicelifecycle.model.Service;
import org.societies.api.schema.servicelifecycle.model.ServiceResourceIdentifier;
import org.societies.api.schema.servicelifecycle.servicecontrol.ServiceControlResult;
import org.societies.cis.directory.client.CisDirectoryRemoteClient;
import org.societies.css.mgmt.CssDirectoryRemoteClient;
import org.societies.webapp.models.CssManagerLoginForm;
import org.societies.webapp.models.requests.CssServiceModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class CssManagerController {
/**
* OSGI service get auto injected
*/
@Autowired
private ICSSInternalManager cssLocalManager;
@Autowired
private ICommManager commManager;
@Autowired
private IServiceDiscovery sdService;
@Autowired
private IServiceControl scService;
@Autowired
private ICommManagerController commManagerControl;
@Autowired
private ICssDirectoryRemote cssDirectoryRemote;
public ICssDirectoryRemote getCssDirectoryRemote() {
return cssDirectoryRemote;
}
public void setCssDirectoryRemote(ICssDirectoryRemote cssDirectoryRemote) {
this.cssDirectoryRemote = cssDirectoryRemote;
}
private CssManagerLoginForm cmControllerLoginForm = new CssManagerLoginForm();
/**
* @return the commManagerControl
*/
public ICommManagerController getCommManagerControl() {
return commManagerControl;
}
/**
* @param commManagerControl
* the commManagerControl to set
*/
public void setCommManagerControl(ICommManagerController commManagerControl) {
this.commManagerControl = commManagerControl;
}
public ICSSInternalManager getCssLocalManager() {
return cssLocalManager;
}
public void setCssLocalManager(ICSSInternalManager cssLocalManager) {
this.cssLocalManager = cssLocalManager;
}
public ICommManager getCommManager() {
return commManager;
}
public void setCommManager(ICommManager commManager) {
this.commManager = commManager;
}
public IServiceDiscovery getSDService() {
return sdService;
}
public void getSDService(IServiceDiscovery sdService) {
this.sdService = sdService;
}
public IServiceControl getSCService() {
return scService;
}
public void setSCService(IServiceControl scService) {
this.scService = scService;
}
final int MAX_REQUESTS = 5;
@RequestMapping(value = "/cssmanager_old.html", method = RequestMethod.GET)
public ModelAndView cssManager_old() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("message", "Welcome to the Css Manager Controller Page");
/*
* We need to find out what Css we are logging into
*/
if (getCssLocalManager() == null) {
model.put("message", "Css ManagerService reference not avaiable");
return new ModelAndView("cssmanager", model);
}
// data model object to be used for displaying form in html page
CssManagerLoginForm cmLoginForm = new CssManagerLoginForm();
// TODO : Check should we do this some other way!
INetworkNode myNode = this.getCommManager().getIdManager()
.getThisNetworkNode();
cmLoginForm.setCssIdentity(myNode.getBareJid());
model.put("cmLoginForm", cmLoginForm);
/*
* return modelandview object and passing login (jsp page name) and
* model object as constructor
*/
return new ModelAndView("cssmanager", model);
}
@RequestMapping(value = "/pilotcssprofile.html", method = RequestMethod.GET)
public ModelAndView pilotCssProfile() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("message", "Welcome to you Profile Page");
/*
* We need to find out what Css we are logging into
*/
if (getCssLocalManager() == null) {
model.put("message", "Css ManagerService reference not avaiable");
return new ModelAndView("pilotcssprofile", model);
}
INetworkNode myNode = this.getCommManager().getIdManager()
.getThisNetworkNode();
cmControllerLoginForm.setCssIdentity(myNode.getBareJid());
cmControllerLoginForm.setCssAdId(myNode.getBareJid());
if (getCommManagerControl() != null) {
Set<INetworkNode> allNodes = getCommManagerControl()
.getOtherNodes();
allNodes.add(getCommManager().getIdManager().getThisNetworkNode());
model.put("allNodes", allNodes);
}
// Now we go a logon to the Css
CssRecord loginRecord = new CssRecord();
setupEmptyCssRecord(loginRecord);
loginRecord.setCssIdentity(cmControllerLoginForm.getCssIdentity());
try {
Future<CssInterfaceResult> loginResult = getCssLocalManager()
.getCssRecord();
CssInterfaceResult cssDetails = null;
if (loginResult == null) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
} else if (((CssInterfaceResult) loginResult.get())
.isResultStatus() == false) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
}
cssDetails = loginResult.get();
// cmControllerLoginForm.setCssHostingLocation(cssDetails.getProfile()
// .getCssHostingLocation());
// cmControllerLoginForm.setDomainServer(cssDetails.getProfile()
// .getDomainServer());
cmControllerLoginForm.setEmailID(cssDetails.getProfile()
.getEmailID());
cmControllerLoginForm.setHomeLocation(cssDetails.getProfile()
.getHomeLocation());
cmControllerLoginForm.setEntity(cssDetails.getProfile().getEntity());
Log.info("GET Entity Type is : " +cssDetails.getProfile().getEntity());
// cmControllerLoginForm.setImID(cssDetails.getProfile().getImID());
cmControllerLoginForm.setName(cssDetails.getProfile().getName());
cmControllerLoginForm.setSex(cssDetails.getProfile().getSex());
cmControllerLoginForm.setWorkplace(cssDetails.getProfile().getWorkplace());
cmControllerLoginForm.setPosition(cssDetails.getProfile().getPosition());
// first get all the cssdirectory records
CssDirectoryRemoteClient cssDirCallback = new CssDirectoryRemoteClient();
List<String> mylist = new ArrayList<String>();
mylist.add(cmControllerLoginForm.getCssIdentity());
getCssDirectoryRemote().searchByID(mylist, cssDirCallback);
List<CssAdvertisementRecord> returnlist = cssDirCallback.getResultList();
if ((returnlist == null) || (returnlist.size() == 0))
{
// If there was no cssRecord, there was no css advertisement record
CssAdvertisementRecord cssAdvert = new CssAdvertisementRecord();
cssAdvert.setId(cmControllerLoginForm.getCssIdentity());
cssAdvert.setName(" ");
cssAdvert.setUri(" ");
getCssLocalManager().addAdvertisementRecord(cssAdvert);
cmControllerLoginForm.setCssAdName(" ");
}
else
{
cmControllerLoginForm.setCssAdName(returnlist.get(0).getName());
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("pilotcssprofile", model);
} catch (ExecutionException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("pilotcssprofile", model);
}
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("pilotcssprofile", model);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@RequestMapping(value = "/pilotcssprofile.html", method = RequestMethod.POST)
public ModelAndView pilotCssProfile(@Valid CssManagerLoginForm cmLoginForm,
BindingResult result, Map model) {
if (result.hasErrors()) {
model.put("message", "Css Manager form error");
return new ModelAndView("pilotcssprofile", model);
}
if (getCssLocalManager() == null) {
model.put("message", "Css ManagerService reference not available");
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("pilotcssprofile", model);
}
if (getCommManagerControl() != null) {
Set<INetworkNode> allNodes = getCommManagerControl()
.getOtherNodes();
allNodes.add(getCommManager().getIdManager().getThisNetworkNode());
model.put("allNodes", allNodes);
}
cmControllerLoginForm.setCssIdentity(cmLoginForm.getCssIdentity());
cmControllerLoginForm.setCssAdId(cmLoginForm.getCssIdentity());
// Now we go a logon to the Css
CssRecord loginRecord = new CssRecord();
setupEmptyCssRecord(loginRecord);
loginRecord.setCssIdentity(cmControllerLoginForm.getCssIdentity());
// loginRecord.setCssHostingLocation(cmControllerLoginForm.getCssHostingLocation());
// loginRecord.setDomainServer(cmControllerLoginForm.getDomainServer());
loginRecord.setEmailID(cmLoginForm.getEmailID());
loginRecord.setHomeLocation(cmLoginForm.getHomeLocation());
// loginRecord.setIdentityName(cmControllerLoginForm.getIdentityName());
loginRecord.setEntity(cmLoginForm.getEntity());
Log.info("POST Entity Type is : " +cmLoginForm.getEntity());
loginRecord.setName(cmLoginForm.getName());
loginRecord.setSex(cmLoginForm.getSex());
loginRecord.setWorkplace(cmLoginForm.getWorkplace());
loginRecord.setPosition(cmLoginForm.getPosition());
try {
getCssLocalManager().modifyCssRecord(loginRecord);
Future<CssInterfaceResult> asynCssDetails = getCssLocalManager()
.getCssRecord();
CssInterfaceResult cssDetails = asynCssDetails.get();
CssAdvertisementRecord cssAdOld = new CssAdvertisementRecord();
CssAdvertisementRecord cssAdNew = new CssAdvertisementRecord();
cssAdOld.setId(this.getCommManager().getIdManager()
.getThisNetworkNode().getBareJid());
cssAdOld.setName(cmControllerLoginForm.getCssAdName());
cssAdOld.setUri(cmControllerLoginForm.getCssAdUri());
// We are only displaying the name, so only read that from webpage
cssAdNew.setId(this.getCommManager().getIdManager()
.getThisNetworkNode().getBareJid());
cssAdNew.setName(cmLoginForm.getCssAdName());
cssAdNew.setUri(cmControllerLoginForm.getCssAdUri());
getCssDirectoryRemote().updateCssAdvertisementRecord(cssAdOld, cssAdNew);
cmControllerLoginForm.setCssAdName(cmLoginForm.getCssAdName());
// cmControllerLoginForm.setCssHostingLocation(cssDetails.getProfile()
// .getCssHostingLocation());
// cmControllerLoginForm.setDomainServer(cssDetails.getProfile()
// .getDomainServer());
cmControllerLoginForm.setEmailID(cssDetails.getProfile()
.getEmailID());
cmControllerLoginForm.setHomeLocation(cssDetails.getProfile()
.getHomeLocation());
cmControllerLoginForm.setEntity(cssDetails.getProfile()
.getEntity());
// cmControllerLoginForm.setImID(cssDetails.getProfile().getImID());
cmControllerLoginForm.setName(cssDetails.getProfile().getName());
cmControllerLoginForm.setSex(cssDetails.getProfile().getSex());
cmControllerLoginForm.setWorkplace(cssDetails.getProfile().getWorkplace());
cmControllerLoginForm.setPosition(cssDetails.getProfile().getPosition());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("pilotcssprofile", model);
} catch (ExecutionException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("pilotcssprofile", model);
}
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("pilotcssprofile", model);
}
@RequestMapping(value = "/cssmanager.html", method = RequestMethod.GET)
public ModelAndView cssManager() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("message", "Welcome to the Css Manager Controller Page");
int requestActiveCount = 1;
int friendServiceCount = 1;
/*
* We need to find out what Css we are logging into
*/
if (getCssLocalManager() == null) {
model.put("message", "Css ManagerService reference not avaiable");
return new ModelAndView("cssmanager", model);
}
// data model object to be used for displaying form in html page
// CssManagerLoginForm cmLoginForm = new CssManagerLoginForm();
// TODO : Check should we do this some other way!
INetworkNode myNode = this.getCommManager().getIdManager()
.getThisNetworkNode();
cmControllerLoginForm.setCssIdentity(myNode.getBareJid());
cmControllerLoginForm.setCssAdId(myNode.getBareJid());
if (getCommManagerControl() != null) {
Set<INetworkNode> allNodes = getCommManagerControl()
.getOtherNodes();
allNodes.add(getCommManager().getIdManager().getThisNetworkNode());
model.put("allNodes", allNodes);
}
// Now we go a logon to the Css
CssRecord loginRecord = new CssRecord();
setupEmptyCssRecord(loginRecord);
loginRecord.setCssIdentity(cmControllerLoginForm.getCssIdentity());
try {
Future<CssInterfaceResult> loginResult = getCssLocalManager()
.getCssRecord();
CssInterfaceResult cssDetails = null;
if (loginResult == null) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
// If there was no cssRecord, there was no css advertisement
// record
CssAdvertisementRecord cssAdvert = new CssAdvertisementRecord();
cssAdvert.setId(cmControllerLoginForm.getCssIdentity());
cssAdvert.setName(" ");
cssAdvert.setUri(" ");
getCssLocalManager().addAdvertisementRecord(cssAdvert);
model.put("message", "created Css Record");
} else {
if (((CssInterfaceResult) loginResult.get()).isResultStatus() == false) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
// If there was no cssRecord, there was no css advertisement
// record
CssAdvertisementRecord cssAdvert = new CssAdvertisementRecord();
cssAdvert.setId(cmControllerLoginForm.getCssIdentity());
cssAdvert.setName(" ");
cssAdvert.setUri(" ");
getCssLocalManager().addAdvertisementRecord(cssAdvert);
model.put("message", "created Css Record");
} else {
cssDetails = loginResult.get();
// cmControllerLoginForm.setCssHostingLocation(cssDetails
// .getProfile().getCssHostingLocation());
// cmControllerLoginForm.setDomainServer(cssDetails
// .getProfile().getDomainServer());
cmControllerLoginForm.setEmailID(cssDetails.getProfile()
.getEmailID());
cmControllerLoginForm.setHomeLocation(cssDetails
.getProfile().getHomeLocation());
// cmControllerLoginForm.setIdentityName(cssDetails
// .getProfile().getIdentityName());
// cmControllerLoginForm.setImID(cssDetails.getProfile()
// .getImID());
cmControllerLoginForm.setName(cssDetails.getProfile()
.getName());
cmControllerLoginForm.setSex(cssDetails.getProfile()
.getSex());
}
}
// Update all data
Future<List<CssAdvertisementRecordDetailed>> cssadverts = getCssLocalManager()
.getCssAdvertisementRecordsFull();
Future<List<CssRequest>> cssRequests = getCssLocalManager()
.findAllCssRequests();
Future<List<CssAdvertisementRecord>> asynchCssFriends = getCssLocalManager()
.getCssFriends();
Future<List<Service>> asynchServices = null;
List<Service> friendServices = new ArrayList<Service>();
List<CssAdvertisementRecordDetailed> dbCssAds = cssadverts.get();
cmControllerLoginForm.getCssAdRequests1().setActive(false);
cmControllerLoginForm.getCssAdRequests2().setActive(false);
cmControllerLoginForm.getCssAdRequests3().setActive(false);
cmControllerLoginForm.getCssAdRequests4().setActive(false);
cmControllerLoginForm.getCssAdRequests5().setActive(false);
if (dbCssAds != null && dbCssAds.size() > 0) {
requestActiveCount = 1;
for (CssAdvertisementRecordDetailed cssAdDetails : dbCssAds) {
// We don't want to show ourselfs!
if (cssAdDetails
.getResultCssAdvertisementRecord()
.getId()
.contentEquals(
cmControllerLoginForm.getCssIdentity())) {
cmControllerLoginForm.setCssAdId(cssAdDetails
.getResultCssAdvertisementRecord().getId());
cmControllerLoginForm.setCssAdName(cssAdDetails
.getResultCssAdvertisementRecord().getName());
cmControllerLoginForm.setCssAdUri(cssAdDetails
.getResultCssAdvertisementRecord().getUri());
} else {
switch (requestActiveCount) {
case 1:
cmControllerLoginForm.getCssAdRequests1()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests1()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService11()
.setActive(false);
cmControllerLoginForm.getCssFriendService12()
.setActive(false);
cmControllerLoginForm.getCssFriendService13()
.setActive(false);
cmControllerLoginForm.getCssFriendService14()
.setActive(false);
cmControllerLoginForm.getCssFriendService15()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
System.out
.println("~~~~~~~~~~~~~~~ asynchServices is : "
+ asynchServices);
System.out
.println("~~~~~~~~~~~~~~~ getId() is : "
+ cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
System.out
.println("~~~~~~~~~~~~~~~ friendServices size is : "
+ friendServices);
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService11()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService11()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService12()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService12()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService13()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService13()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService14()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService14()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService15()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService15()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 2:
cmControllerLoginForm.getCssAdRequests2()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests2()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService21()
.setActive(false);
cmControllerLoginForm.getCssFriendService22()
.setActive(false);
cmControllerLoginForm.getCssFriendService23()
.setActive(false);
cmControllerLoginForm.getCssFriendService24()
.setActive(false);
cmControllerLoginForm.getCssFriendService25()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService21()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService21()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService22()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService22()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService23()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService23()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService24()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService24()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService25()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService25()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 3:
cmControllerLoginForm.getCssAdRequests3()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests3()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService31()
.setActive(false);
cmControllerLoginForm.getCssFriendService32()
.setActive(false);
cmControllerLoginForm.getCssFriendService33()
.setActive(false);
cmControllerLoginForm.getCssFriendService34()
.setActive(false);
cmControllerLoginForm.getCssFriendService35()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService31()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService31()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService32()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService32()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService33()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService33()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService34()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService34()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService35()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService35()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 4:
cmControllerLoginForm.getCssAdRequests4()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests4()
.setActive(true);
requestActiveCount++;
break;
case 5:
cmControllerLoginForm.getCssAdRequests5()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests5()
.setActive(true);
requestActiveCount++;
break;
default:
// since we can't se dynamic lists we are
// constrainted to 5 so .....
}
}
}
}
model.put("cssadverts", cssadverts.get());
// model.put("cssads", cssads);
model.put("cssFriends", asynchCssFriends.get());
List<CssRequest> dbCssRequests = cssRequests.get();
cmControllerLoginForm.getCssRequests1().setActive(false);
cmControllerLoginForm.getCssRequests2().setActive(false);
cmControllerLoginForm.getCssRequests3().setActive(false);
cmControllerLoginForm.getCssRequests4().setActive(false);
cmControllerLoginForm.getCssRequests5().setActive(false);
if (dbCssRequests != null && dbCssRequests.size() > 0) {
requestActiveCount = 1;
for (CssRequest cssRequestDB : dbCssRequests) {
switch (requestActiveCount) {
case 1:
cmControllerLoginForm.getCssRequests1()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests1().setActive(true);
requestActiveCount++;
break;
case 2:
cmControllerLoginForm.getCssRequests2()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests2().setActive(true);
requestActiveCount++;
break;
case 3:
cmControllerLoginForm.getCssRequests3()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests3().setActive(true);
requestActiveCount++;
break;
case 4:
cmControllerLoginForm.getCssRequests4()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests4().setActive(true);
requestActiveCount++;
break;
case 5:
cmControllerLoginForm.getCssRequests5()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests5().setActive(true);
requestActiveCount++;
break;
default:
// since we can't se dynamic lists we are
// constrainted to 5 so .....
}
}
}
List<Service> myServices = null;
Future<List<Service>> asynchMyServices = null;
try {
asynchMyServices = this.getSDService().getLocalServices();
myServices = asynchMyServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cmControllerLoginForm.getCssService1().setActive(false);
cmControllerLoginForm.getCssService2().setActive(false);
cmControllerLoginForm.getCssService3().setActive(false);
cmControllerLoginForm.getCssService4().setActive(false);
cmControllerLoginForm.getCssService5().setActive(false);
for (int j = 0; (j < myServices.size()) && (j < 5); j++) {
switch (j) {
case 0:
cmControllerLoginForm.getCssService1().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService1().setActive(true);
break;
case 1:
cmControllerLoginForm.getCssService2().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService2().setActive(true);
break;
case 2:
cmControllerLoginForm.getCssService3().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService3().setActive(true);
break;
case 3:
cmControllerLoginForm.getCssService4().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService4().setActive(true);
break;
case 4:
cmControllerLoginForm.getCssService5().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService5().setActive(true);
break;
}
friendServiceCount++;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("cssmanager", model);
} catch (ExecutionException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("cssmanager", model);
}
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("cssmanagerresult", model);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@RequestMapping(value = "/cssmanager.html", method = RequestMethod.POST)
public ModelAndView cssManager(@Valid CssManagerLoginForm cmLoginForm,
BindingResult result, Map model) {
int requestActiveCount = 1;
int friendServiceCount = 1;
if (result.hasErrors()) {
model.put("message", "Css Manager form error");
return new ModelAndView("cssmanager", model);
}
if (getCssLocalManager() == null) {
model.put("message", "Css ManagerService reference not avaiable");
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("cssmanager", model);
}
if (getCommManagerControl() != null) {
Set<INetworkNode> allNodes = getCommManagerControl()
.getOtherNodes();
allNodes.add(getCommManager().getIdManager().getThisNetworkNode());
model.put("allNodes", allNodes);
}
cmControllerLoginForm.setCssIdentity(cmLoginForm.getCssIdentity());
cmControllerLoginForm.setCssAdId(cmLoginForm.getCssIdentity());
// Now we go a logon to the Css
CssRecord loginRecord = new CssRecord();
setupEmptyCssRecord(loginRecord);
loginRecord.setCssIdentity(cmLoginForm.getCssIdentity());
// loginRecord.setPassword(cmLoginForm.getPassword());
if (cmLoginForm.getButtonLabel().contentEquals("Save")) {
// loginRecord.setCssHostingLocation(cmLoginForm
// .getCssHostingLocation());
// loginRecord.setDomainServer(cmLoginForm.getDomainServer());
loginRecord.setEmailID(cmLoginForm.getEmailID());
loginRecord.setHomeLocation(cmLoginForm.getHomeLocation());
// loginRecord.setIdentityName(cmLoginForm.getIdentityName());
// loginRecord.setImID(cmLoginForm.getImID());
loginRecord.setName(cmLoginForm.getName());
loginRecord.setSex(cmLoginForm.getSex());
}
if (cmLoginForm.getButtonLabel().contentEquals("Save")) {
doUpdatesMessaging(cmLoginForm);
model.put("buttonmessage", "Did the updates");
} else {
model.put("buttonmessage", "didn't do updates");
}
try {
Future<CssInterfaceResult> loginResult = getCssLocalManager()
.getCssRecord();
CssInterfaceResult cssDetails = null;
if (loginResult == null) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
// If there was no cssRecord, there was no css advertisement
// record
CssAdvertisementRecord cssAdvert = new CssAdvertisementRecord();
cssAdvert.setId(cmLoginForm.getCssIdentity());
cssAdvert.setName(" ");
cssAdvert.setUri(" ");
getCssLocalManager().addAdvertisementRecord(cssAdvert);
model.put("message", "created Css Record");
} else {
if (((CssInterfaceResult) loginResult.get()).isResultStatus() == false) {
// No CssRecord we eed to create one
loginResult = getCssLocalManager().registerCSS(loginRecord);
// If there was no cssRecord, there was no css advertisement
// record
CssAdvertisementRecord cssAdvert = new CssAdvertisementRecord();
cssAdvert.setId(cmLoginForm.getCssIdentity());
cssAdvert.setName(" ");
cssAdvert.setUri(" ");
getCssLocalManager().addAdvertisementRecord(cssAdvert);
model.put("message", "created Css Record");
} else {
cssDetails = loginResult.get();
if (cmLoginForm.getButtonLabel().contentEquals("Logon")) {
loginResult = getCssLocalManager()
.loginCSS(loginRecord);
if (cssDetails.isResultStatus() == false) {
model.put("message",
"Css ManagerService Incorrect Password");
return new ModelAndView("cssmanager", model);
}
model.put("message",
"Welcome to the Css Manager Controller Page");
} else if (cmLoginForm.getButtonLabel().contentEquals(
"Save")) {
getCssLocalManager().modifyCssRecord(loginRecord);
Future<CssInterfaceResult> asynCssDetails = getCssLocalManager()
.getCssRecord();
cssDetails = asynCssDetails.get();
CssAdvertisementRecord cssAdOld = new CssAdvertisementRecord();
CssAdvertisementRecord cssAdNew = new CssAdvertisementRecord();
cssAdOld.setId(cmControllerLoginForm.getCssAdId());
cssAdOld.setName(cmControllerLoginForm.getCssAdName());
cssAdOld.setUri(cmControllerLoginForm.getCssAdUri());
cssAdNew.setId(cmLoginForm.getCssAdId());
cssAdNew.setName(cmLoginForm.getCssAdName());
cssAdNew.setUri(cmLoginForm.getCssAdUri());
getCssLocalManager().updateAdvertisementRecord(
cssAdOld, cssAdNew);
}
// cmControllerLoginForm.setCssHostingLocation(cssDetails
// .getProfile().getCssHostingLocation());
// cmControllerLoginForm.setDomainServer(cssDetails
// .getProfile().getDomainServer());
cmControllerLoginForm.setEmailID(cssDetails.getProfile()
.getEmailID());
cmControllerLoginForm.setHomeLocation(cssDetails
.getProfile().getHomeLocation());
// cmControllerLoginForm.setIdentityName(cssDetails
// .getProfile().getIdentityName());
// cmControllerLoginForm.setImID(cssDetails.getProfile()
// .getImID());
cmControllerLoginForm.setName(cssDetails.getProfile()
.getName());
cmControllerLoginForm.setSex(cssDetails.getProfile()
.getSex());
}
}
// Update all data
Future<List<CssAdvertisementRecordDetailed>> cssadverts = getCssLocalManager()
.getCssAdvertisementRecordsFull();
Future<List<CssRequest>> cssRequests = getCssLocalManager()
.findAllCssRequests();
Future<List<CssAdvertisementRecord>> asynchCssFriends = getCssLocalManager()
.getCssFriends();
Future<List<Service>> asynchServices = null;
List<Service> friendServices = new ArrayList<Service>();
List<CssAdvertisementRecordDetailed> dbCssAds = cssadverts.get();
cmControllerLoginForm.getCssAdRequests1().setActive(false);
cmControllerLoginForm.getCssAdRequests2().setActive(false);
cmControllerLoginForm.getCssAdRequests3().setActive(false);
cmControllerLoginForm.getCssAdRequests4().setActive(false);
cmControllerLoginForm.getCssAdRequests5().setActive(false);
if (dbCssAds != null && dbCssAds.size() > 0) {
requestActiveCount = 1;
for (CssAdvertisementRecordDetailed cssAdDetails : dbCssAds) {
// We don't want to show ourselfs!
if (cssAdDetails.getResultCssAdvertisementRecord().getId()
.contentEquals(cmLoginForm.getCssIdentity())) {
cmControllerLoginForm.setCssAdId(cssAdDetails
.getResultCssAdvertisementRecord().getId());
cmControllerLoginForm.setCssAdName(cssAdDetails
.getResultCssAdvertisementRecord().getName());
cmControllerLoginForm.setCssAdUri(cssAdDetails
.getResultCssAdvertisementRecord().getUri());
} else {
switch (requestActiveCount) {
case 1:
cmControllerLoginForm.getCssAdRequests1()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests1()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService11()
.setActive(false);
cmControllerLoginForm.getCssFriendService12()
.setActive(false);
cmControllerLoginForm.getCssFriendService13()
.setActive(false);
cmControllerLoginForm.getCssFriendService14()
.setActive(false);
cmControllerLoginForm.getCssFriendService15()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
System.out
.println("~~~~~~~~~~~~~~~ asynchServices is : "
+ asynchServices);
System.out
.println("~~~~~~~~~~~~~~~ getId() is : "
+ cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
System.out
.println("~~~~~~~~~~~~~~~ friendServices size is : "
+ friendServices);
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService11()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService11()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService12()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService12()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService13()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService13()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService14()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService14()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService15()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService15()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 2:
cmControllerLoginForm.getCssAdRequests2()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests2()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService21()
.setActive(false);
cmControllerLoginForm.getCssFriendService22()
.setActive(false);
cmControllerLoginForm.getCssFriendService23()
.setActive(false);
cmControllerLoginForm.getCssFriendService24()
.setActive(false);
cmControllerLoginForm.getCssFriendService25()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService21()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService21()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService22()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService22()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService23()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService23()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService24()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService24()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService25()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService25()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 3:
cmControllerLoginForm.getCssAdRequests3()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests3()
.setActive(true);
requestActiveCount++;
cmControllerLoginForm.getCssFriendService31()
.setActive(false);
cmControllerLoginForm.getCssFriendService32()
.setActive(false);
cmControllerLoginForm.getCssFriendService33()
.setActive(false);
cmControllerLoginForm.getCssFriendService34()
.setActive(false);
cmControllerLoginForm.getCssFriendService35()
.setActive(false);
// if friends, then get services
if (cssAdDetails.getStatus() == CssRequestStatusType.ACCEPTED) {
try {
asynchServices = this
.getSDService()
.getServices(
cssAdDetails
.getResultCssAdvertisementRecord()
.getId());
friendServices = asynchServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
friendServiceCount = 1;
// don't fall over if friend container not
// available!
if (friendServices != null) {
for (int j = 0; (j < friendServices.size())
&& (j < 5); j++) {
switch (friendServiceCount) {
case 1:
cmControllerLoginForm
.getCssFriendService31()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService31()
.setActive(true);
break;
case 2:
cmControllerLoginForm
.getCssFriendService32()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService32()
.setActive(true);
break;
case 3:
cmControllerLoginForm
.getCssFriendService33()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService33()
.setActive(true);
break;
case 4:
cmControllerLoginForm
.getCssFriendService34()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService34()
.setActive(true);
break;
case 5:
cmControllerLoginForm
.getCssFriendService35()
.setServiceDetails(
friendServices
.get(j));
cmControllerLoginForm
.getCssFriendService35()
.setActive(true);
break;
}
friendServiceCount++;
}
}
}
break;
case 4:
cmControllerLoginForm.getCssAdRequests4()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests4()
.setActive(true);
requestActiveCount++;
break;
case 5:
cmControllerLoginForm.getCssAdRequests5()
.setAdRecObj(cssAdDetails);
cmControllerLoginForm.getCssAdRequests5()
.setActive(true);
requestActiveCount++;
break;
default:
// since we can't se dynamic lists we are
// constrainted to 5 so .....
}
}
}
}
model.put("cssadverts", cssadverts.get());
// model.put("cssads", cssads);
model.put("cssFriends", asynchCssFriends.get());
List<CssRequest> dbCssRequests = cssRequests.get();
cmControllerLoginForm.getCssRequests1().setActive(false);
cmControllerLoginForm.getCssRequests2().setActive(false);
cmControllerLoginForm.getCssRequests3().setActive(false);
cmControllerLoginForm.getCssRequests4().setActive(false);
cmControllerLoginForm.getCssRequests5().setActive(false);
if (dbCssRequests != null && dbCssRequests.size() > 0) {
requestActiveCount = 1;
for (CssRequest cssRequestDB : dbCssRequests) {
switch (requestActiveCount) {
case 1:
cmControllerLoginForm.getCssRequests1()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests1().setActive(true);
requestActiveCount++;
break;
case 2:
cmControllerLoginForm.getCssRequests2()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests2().setActive(true);
requestActiveCount++;
break;
case 3:
cmControllerLoginForm.getCssRequests3()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests3().setActive(true);
requestActiveCount++;
break;
case 4:
cmControllerLoginForm.getCssRequests4()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests4().setActive(true);
requestActiveCount++;
break;
case 5:
cmControllerLoginForm.getCssRequests5()
.setCssRequestObj(cssRequestDB);
cmControllerLoginForm.getCssRequests5().setActive(true);
requestActiveCount++;
break;
default:
// since we can't se dynamic lists we are
// constrainted to 5 so .....
}
}
}
List<Service> myServices = null;
Future<List<Service>> asynchMyServices = null;
try {
asynchMyServices = this.getSDService().getLocalServices();
myServices = asynchMyServices.get();
} catch (ServiceDiscoveryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cmControllerLoginForm.getCssService1().setActive(false);
cmControllerLoginForm.getCssService2().setActive(false);
cmControllerLoginForm.getCssService3().setActive(false);
cmControllerLoginForm.getCssService4().setActive(false);
cmControllerLoginForm.getCssService5().setActive(false);
for (int j = 0; (j < myServices.size()) && (j < 5); j++) {
switch (j) {
case 0:
cmControllerLoginForm.getCssService1().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService1().setActive(true);
break;
case 1:
cmControllerLoginForm.getCssService2().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService2().setActive(true);
break;
case 2:
cmControllerLoginForm.getCssService3().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService3().setActive(true);
break;
case 3:
cmControllerLoginForm.getCssService4().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService4().setActive(true);
break;
case 4:
cmControllerLoginForm.getCssService5().setServiceDetails(
myServices.get(j));
cmControllerLoginForm.getCssService5().setActive(true);
break;
}
friendServiceCount++;
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("cssmanager", model);
} catch (ExecutionException e) {
// TODO Auto-generated catch block
model.put("message", e.getMessage());
model.put("cmLoginForm", cmLoginForm);
return new ModelAndView("cssmanager", model);
}
model.put("cmLoginForm", cmControllerLoginForm);
return new ModelAndView("cssmanagerresult", model);
}
void setupEmptyCssRecord(CssRecord rec) {
rec.setCssIdentity("");
// rec.setPassword("");
// rec.setDomainServer("");
// rec.setCssHostingLocation("");
// rec.setCssInactivation("");
// rec.setCssRegistration("");
// rec.setCssUpTime(0);
// rec.setDomainServer("");
rec.setEmailID("");
rec.setEntity(0);
rec.setForeName("");
rec.setHomeLocation("");
// rec.setIdentityName("");
// rec.setImID("");
rec.setName("");
// rec.setPresence(0);
rec.setSex(0);
// rec.setSocialURI("");
// rec.setStatus(0);
rec.setWorkplace("");
rec.setPosition("");
List<CssNode> cssNodes = rec.getCssNodes();
cssNodes = new ArrayList<CssNode>();
rec.setCssNodes(cssNodes);
List<CssNode> archiveCSSNodes = rec.getArchiveCSSNodes();
archiveCSSNodes = new ArrayList<CssNode>();
rec.setArchiveCSSNodes(archiveCSSNodes);
}
void startService(CssServiceModel serviceModel) {
ServiceResourceIdentifier serviceId = new ServiceResourceIdentifier();
Future<ServiceControlResult> asynchResult = null;
serviceId.setServiceInstanceIdentifier(serviceModel.getServiceDetails()
.getServiceIdentifier().getServiceInstanceIdentifier());
try {
serviceId.setIdentifier(new URI(serviceModel.getServiceDetails()
.getServiceIdentifier().getIdentifier().toString()));
asynchResult = this.getSCService().startService(serviceId);
asynchResult.get();
} catch (URISyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ServiceControlException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void stopService(CssServiceModel serviceModel) {
ServiceResourceIdentifier serviceId = new ServiceResourceIdentifier();
Future<ServiceControlResult> asynchResult = null;
serviceId.setServiceInstanceIdentifier(serviceModel.getServiceDetails()
.getServiceIdentifier().getServiceInstanceIdentifier());
try {
serviceId.setIdentifier(new URI(serviceModel.getServiceDetails()
.getServiceIdentifier().getIdentifier().toString()));
asynchResult = this.getSCService().stopService(serviceId);
asynchResult.get();
} catch (URISyntaxException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ServiceControlException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void doControlService(CssServiceModel serviceModel, String command) {
if (command.contentEquals("1")) { // stop service
this.stopService(serviceModel);
} else if (command.contentEquals("2")) { // start service
this.startService(serviceModel);
}
}
void doControlFriendRequests(CssAdvertisementRecordDetailed requestModel,
String command) {
if (command.contentEquals("1")) { // send friend request
getCssLocalManager().sendCssFriendRequest(
requestModel.getResultCssAdvertisementRecord().getId());
} else if (command.contentEquals("2") // cancel pending request
|| command.contentEquals("3")) { // leave
CssRequest request = new CssRequest();
request.setOrigin(CssRequestOrigin.LOCAL);
request.setCssIdentity(requestModel
.getResultCssAdvertisementRecord().getId());
request.setRequestStatus(CssRequestStatusType.CANCELLED);
getCssLocalManager().updateCssFriendRequest(request);
}
}
void doControlCssRequests(CssRequest requestModel, String command) {
CssRequest request = new CssRequest();
CssRequest requestrecipricol = new CssRequest();
if (command.contentEquals("1")) { // accept
request.setOrigin(CssRequestOrigin.LOCAL);
request.setCssIdentity(requestModel.getCssIdentity());
request.setRequestStatus(CssRequestStatusType.ACCEPTED);
getCssLocalManager().updateCssRequest(request);
// Add accepted friend as friend to local friends list
requestrecipricol.setOrigin(CssRequestOrigin.REMOTE);
requestrecipricol.setCssIdentity(requestModel.getCssIdentity());
requestrecipricol.setRequestStatus(CssRequestStatusType.ACCEPTED);
getCssLocalManager().updateCssFriendRequest(requestrecipricol);
} else if (command.contentEquals("2")) { // reject
request.setOrigin(CssRequestOrigin.LOCAL);
request.setCssIdentity(requestModel.getCssIdentity());
request.setRequestStatus(CssRequestStatusType.DENIED);
getCssLocalManager().updateCssRequest(request);
} else if (command.contentEquals("3")) { // reject
request.setOrigin(CssRequestOrigin.LOCAL);
request.setCssIdentity(requestModel.getCssIdentity());
request.setRequestStatus(CssRequestStatusType.CANCELLED);
getCssLocalManager().updateCssRequest(request);
}
}
void doUpdatesMessaging(CssManagerLoginForm cmLoginForm) {
// Check Services first
if ((cmControllerLoginForm.getCssService1().isActive())
&& (cmLoginForm.getCssService1().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssService1(),
cmLoginForm.getCssService1().getValue());
}
if ((cmControllerLoginForm.getCssService2().isActive())
&& (cmLoginForm.getCssService2().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssService2(),
cmLoginForm.getCssService2().getValue());
}
if ((cmControllerLoginForm.getCssService3().isActive())
&& (cmLoginForm.getCssService3().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssService3(),
cmLoginForm.getCssService3().getValue());
}
if ((cmControllerLoginForm.getCssService4().isActive())
&& (cmLoginForm.getCssService4().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssService4(),
cmLoginForm.getCssService4().getValue());
}
if ((cmControllerLoginForm.getCssService5().isActive())
&& (cmLoginForm.getCssService5().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssService5(),
cmLoginForm.getCssService5().getValue());
}
if ((cmControllerLoginForm.getCssFriendService11().isActive())
&& (cmLoginForm.getCssFriendService11().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssFriendService11(),
cmLoginForm.getCssFriendService11().getValue());
}
if ((cmControllerLoginForm.getCssFriendService12().isActive())
&& (cmLoginForm.getCssFriendService12().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssFriendService12(),
cmLoginForm.getCssFriendService12().getValue());
}
if ((cmControllerLoginForm.getCssFriendService13().isActive())
&& (cmLoginForm.getCssFriendService13().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssFriendService13(),
cmLoginForm.getCssFriendService13().getValue());
}
if ((cmControllerLoginForm.getCssFriendService14().isActive())
&& (cmLoginForm.getCssFriendService14().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssFriendService14(),
cmLoginForm.getCssFriendService14().getValue());
}
if ((cmControllerLoginForm.getCssFriendService15().isActive())
&& (cmLoginForm.getCssFriendService15().getValue() != null)) {
doControlService(cmControllerLoginForm.getCssFriendService15(),
cmLoginForm.getCssFriendService15().getValue());
}
// now each 'every one' of the request to see if they changed!
if ((cmControllerLoginForm.getCssAdRequests1().isActive())
&& (cmLoginForm.getCssAdRequests1().getValue() != null)) {
doControlFriendRequests(cmControllerLoginForm.getCssAdRequests1()
.getAdRecObj(), cmLoginForm.getCssAdRequests1().getValue());
}
if ((cmControllerLoginForm.getCssAdRequests2().isActive())
&& (cmLoginForm.getCssAdRequests2().getValue() != null)) {
doControlFriendRequests(cmControllerLoginForm.getCssAdRequests2()
.getAdRecObj(), cmLoginForm.getCssAdRequests2().getValue());
}
if ((cmControllerLoginForm.getCssAdRequests3().isActive())
&& (cmLoginForm.getCssAdRequests3().getValue() != null)) {
doControlFriendRequests(cmControllerLoginForm.getCssAdRequests3()
.getAdRecObj(), cmLoginForm.getCssAdRequests3().getValue());
}
if ((cmControllerLoginForm.getCssRequests1().isActive())
&& (cmLoginForm.getCssRequests1().getValue() != null)) {
this.doControlCssRequests(cmControllerLoginForm.getCssRequests1()
.getCssRequestObj(), cmLoginForm.getCssRequests1()
.getValue());
}
if ((cmControllerLoginForm.getCssRequests2().isActive())
&& (cmLoginForm.getCssRequests2().getValue() != null)) {
this.doControlCssRequests(cmControllerLoginForm.getCssRequests2()
.getCssRequestObj(), cmLoginForm.getCssRequests2()
.getValue());
}
if ((cmControllerLoginForm.getCssRequests3().isActive())
&& (cmLoginForm.getCssRequests3().getValue() != null)) {
this.doControlCssRequests(cmControllerLoginForm.getCssRequests3()
.getCssRequestObj(), cmLoginForm.getCssRequests3()
.getValue());
}
}
}