|
/*
|
|
* This program is a part of the IoTa Project.
|
|
*
|
|
* Copyright © 2008-2012 Université de Caen Basse-Normandie, GREYC
|
|
* Copyright © 2008-2012 Orange Labs
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
* <http://www.gnu.org/licenses/>
|
|
*
|
|
* See AUTHORS for a list of contributors.
|
|
*/
|
|
package fr.unicaen.iota.discovery.server.repository.soap;
|
|
|
|
import fr.unicaen.iota.discovery.server.hibernate.Event;
|
|
import fr.unicaen.iota.discovery.server.hibernate.Partner;
|
|
import fr.unicaen.iota.discovery.server.hibernate.User;
|
|
import fr.unicaen.iota.discovery.server.querycontrol.DSControler;
|
|
import fr.unicaen.iota.discovery.server.repository.soap.model.*;
|
|
import fr.unicaen.iota.discovery.server.util.Constants;
|
|
import fr.unicaen.iota.discovery.server.util.ProtocolException;
|
|
import fr.unicaen.iota.discovery.server.util.Session;
|
|
import fr.unicaen.iota.discovery.server.util.Util;
|
|
import java.util.Calendar;
|
|
import java.util.List;
|
|
import org.apache.axis2.databinding.types.PositiveInteger;
|
|
import org.apache.axis2.databinding.types.Token;
|
|
import org.apache.axis2.databinding.types.URI;
|
|
import org.apache.axis2.databinding.types.URI.MalformedURIException;
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.LogFactory;
|
|
|
|
/*
|
|
* Based on ESDS_ServiceSkeleton java skeleton for the axisService
|
|
*/
|
|
public class ESDS_Service implements ESDS_ServiceSkeletonInterface {
|
|
|
|
private static final Log log = LogFactory.getLog(ESDS_Service.class);
|
|
private DSControler dsControler = new DSControler();
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param hello
|
|
*/
|
|
@Override
|
|
public HelloResult hello(Hello hello) {
|
|
log.trace("Hello method called");
|
|
HelloResult helloResult = new HelloResult();
|
|
HelloOut helloOut = new HelloOut();
|
|
helloOut.setResult(createCommandSuccessfull());
|
|
helloOut.setServerIdentity(new Token(dsControler.hello()));
|
|
helloOut.setServerTS(Calendar.getInstance());
|
|
helloResult.setHelloResult(helloOut);
|
|
return helloResult;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userLookup
|
|
*/
|
|
@Override
|
|
public UserLookupResult userLookup(UserLookup userLookup) {
|
|
log.trace("userLookup method called");
|
|
UserLookupResult result = new UserLookupResult();
|
|
UserLookupOut out = new UserLookupOut();
|
|
try {
|
|
String sessionID = userLookup.getUserLookup().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
String userID = userLookup.getUserLookup().getUserID().getTUserID().toString();
|
|
TUserItemList tUserItemList = new TUserItemList();
|
|
List<User> users = dsControler.userLookup(sessionID, userID);
|
|
for (User user : users) {
|
|
TUserItem tUserItem = new TUserItem();
|
|
TUserID tUserID = new TUserID();
|
|
tUserID.setTUserID(new Token(user.getUserID()));
|
|
tUserItem.setId(tUserID);
|
|
TSmallUID uid = new TSmallUID();
|
|
uid.setTSmallUID(user.getId());
|
|
tUserItem.setUid(uid);
|
|
tUserItemList.addUser(tUserItem);
|
|
}
|
|
out.setUserList(tUserItemList);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
out.setUserList(new TUserItemList());
|
|
}
|
|
result.setUserLookupResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userCreate
|
|
*/
|
|
@Override
|
|
public UserCreateResult userCreate(UserCreate userCreate) {
|
|
log.trace("userCreate method called");
|
|
UserCreateResult result = new UserCreateResult();
|
|
UserCreateOut out = new UserCreateOut();
|
|
try {
|
|
String sessionID = userCreate.getUserCreate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
int uid = dsControler.userCreate(sessionID, userCreate.getUserCreate().getPartnerID().getTPartnerID().toString(),
|
|
userCreate.getUserCreate().getPassword().getTPassword().toString(),
|
|
userCreate.getUserCreate().getUserID().getTUserID().toString());
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(uid);
|
|
out.setUserUID(tSmallUID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
result.setUserCreateResult(out);
|
|
TSmallUID userUid = new TSmallUID();
|
|
userUid.setTSmallUID(-1);
|
|
out.setUserUID(userUid);
|
|
}
|
|
result.setUserCreateResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userInfo
|
|
*/
|
|
@Override
|
|
public UserInfoResult userInfo(UserInfo userInfo) {
|
|
log.trace("userInfo method called");
|
|
UserInfoResult result = new UserInfoResult();
|
|
UserInfoOut out = new UserInfoOut();
|
|
try {
|
|
String sessionID = userInfo.getUserInfo().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
User user = dsControler.userInfo(sessionID, userInfo.getUserInfo().getUserID().getTUserID().toString());
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token(user.getPartner().getPartnerID()));
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(user.getId());
|
|
TLeaseSeconds tLeaseSeconds = new TLeaseSeconds();
|
|
tLeaseSeconds.setTLeaseSeconds(Constants.SESSION_TIME_LEASE);
|
|
TRoleID tRoleID = new TRoleID();
|
|
tRoleID.setTRoleID(new Token("not_used")); // HACK
|
|
out.setRoleID(tRoleID);
|
|
out.setSessionLease(tLeaseSeconds);
|
|
out.setLoginMode(TLoginMode.value1);
|
|
out.setPartnerID(tPartnerID);
|
|
out.setUserID(userInfo.getUserInfo().getUserID());
|
|
out.setUserUID(tSmallUID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token("NULL"));
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(1);
|
|
TLeaseSeconds tLeaseSeconds = new TLeaseSeconds();
|
|
tLeaseSeconds.setTLeaseSeconds(Constants.SESSION_TIME_LEASE);
|
|
TRoleID tRoleID = new TRoleID();
|
|
tRoleID.setTRoleID(new Token("not_used")); // HACK
|
|
out.setRoleID(tRoleID);
|
|
out.setSessionLease(tLeaseSeconds);
|
|
out.setLoginMode(TLoginMode.value1);
|
|
out.setPartnerID(tPartnerID);
|
|
out.setUserID(userInfo.getUserInfo().getUserID());
|
|
out.setUserUID(tSmallUID);
|
|
}
|
|
result.setUserInfoResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userUpdate
|
|
*/
|
|
@Override
|
|
public UserUpdateResult userUpdate(UserUpdate userUpdate) {
|
|
log.trace("userUpdate method called");
|
|
UserUpdateResult result = new UserUpdateResult();
|
|
UserUpdateOut out = new UserUpdateOut();
|
|
try {
|
|
String sessionID = userUpdate.getUserUpdate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
dsControler.userUpdate(sessionID,
|
|
userUpdate.getUserUpdate().getPartnerID().getTPartnerID().toString(),
|
|
userUpdate.getUserUpdate().getUserUID().getTSmallUID(),
|
|
userUpdate.getUserUpdate().getUserID().getTUserID().toString(),
|
|
userUpdate.getUserUpdate().getPassword().getTPassword().toString());
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setUserUpdateResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userDelete
|
|
*/
|
|
@Override
|
|
public UserDeleteResult userDelete(UserDelete userDelete) {
|
|
log.trace("userDelete method called");
|
|
UserDeleteResult result = new UserDeleteResult();
|
|
UserDeleteOut out = new UserDeleteOut();
|
|
try {
|
|
String sessionID = userDelete.getUserDelete().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
dsControler.userDelete(sessionID, userDelete.getUserDelete().getUserID().getTUserID().toString());
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setUserDeleteResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userLogin
|
|
*/
|
|
@Override
|
|
public UserLoginResult userLogin(UserLogin userLogin) {
|
|
log.trace("userLogin method called");
|
|
UserLoginResult result = new UserLoginResult();
|
|
UserLoginOut out = new UserLoginOut();
|
|
try {
|
|
String sessionId = dsControler.userLogin(userLogin.getUserLogin().getUserID().toString(), userLogin.getUserLogin().getPassword().toString());
|
|
if (sessionId == null) {
|
|
throw new ProtocolException(2200, "Authentication failed!");
|
|
}
|
|
TLeaseSeconds tLeaseSeconds = new TLeaseSeconds();
|
|
tLeaseSeconds.setTLeaseSeconds(Constants.SESSION_TIME_LEASE);
|
|
out.setSessionLease(tLeaseSeconds);
|
|
TSessionID tSessionID = new TSessionID();
|
|
tSessionID.setTSessionID(new Token(sessionId));
|
|
out.setSid(tSessionID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
result.setUserLoginResult(out);
|
|
TLeaseSeconds tLeaseSeconds = new TLeaseSeconds();
|
|
tLeaseSeconds.setTLeaseSeconds(0);
|
|
out.setSessionLease(tLeaseSeconds);
|
|
TSessionID tSessionID = new TSessionID();
|
|
tSessionID.setTSessionID(new Token(Constants.SESSION_FAILED_ID));
|
|
out.setSid(tSessionID);
|
|
return result;
|
|
}
|
|
result.setUserLoginResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param userLogout
|
|
*/
|
|
@Override
|
|
public UserLogoutResult userLogout(UserLogout userLogout) {
|
|
log.trace("userLogout method called");
|
|
UserLogoutResult result = new UserLogoutResult();
|
|
UserLogoutOut out = new UserLogoutOut();
|
|
try {
|
|
String sessionID = userLogout.getUserLogout().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
dsControler.userLogout(sessionID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setUserLogoutResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param partnerLookup
|
|
*/
|
|
@Override
|
|
public PartnerLookupResult partnerLookup(PartnerLookup partnerLookup) {
|
|
log.trace("partnerLookup method called");
|
|
PartnerLookupResult result = new PartnerLookupResult();
|
|
PartnerLookupOut out = new PartnerLookupOut();
|
|
try {
|
|
String sessionID = partnerLookup.getPartnerLookup().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
List<Partner> partnerList = dsControler.partnerLookup(sessionID, partnerLookup.getPartnerLookup().getPartnerID().getTPartnerID().toString());
|
|
TPartnerItemList tPartnerItemList = new TPartnerItemList();
|
|
for (Partner partner : partnerList) {
|
|
TPartnerItem tPartnerItem = new TPartnerItem();
|
|
tPartnerItem.setAuthority(true);
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token(partner.getPartnerID()));
|
|
tPartnerItem.setId(tPartnerID);
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(partner.getId());
|
|
tPartnerItem.setUid(tSmallUID);
|
|
tPartnerItemList.addPartner(tPartnerItem);
|
|
|
|
}
|
|
out.setPartnerList(tPartnerItemList);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
TPartnerItemList tPartnerItemList = new TPartnerItemList();
|
|
out.setPartnerList(tPartnerItemList);
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setPartnerLookupResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param partnerCreate
|
|
*/
|
|
@Override
|
|
public PartnerCreateResult partnerCreate(PartnerCreate partnerCreate) {
|
|
log.trace("partnerCreate method called");
|
|
PartnerCreateResult result = new PartnerCreateResult();
|
|
PartnerCreateOut out = new PartnerCreateOut();
|
|
try {
|
|
String sessionID = partnerCreate.getPartnerCreate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
PartnerCreateIn partnerCreateIn = partnerCreate.getPartnerCreate();
|
|
TServiceItem tServiceItem = partnerCreateIn.getServiceList().getService()[0]; // HACK
|
|
int uid = dsControler.partnerCreate(sessionID, partnerCreateIn.getPartnerID().getTPartnerID().toString(),
|
|
tServiceItem.getType().getValue().toString(), tServiceItem.getUri().getTServiceURI().toString());
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(uid);
|
|
out.setPartnerUID(tSmallUID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
TSmallUID uid = new TSmallUID();
|
|
uid.setTSmallUID(0);
|
|
out.setPartnerUID(uid);
|
|
}
|
|
result.setPartnerCreateResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param partnerInfo
|
|
*/
|
|
@Override
|
|
public PartnerInfoResult partnerInfo(PartnerInfo partnerInfo) {
|
|
log.trace("partnerInfo method called");
|
|
PartnerInfoResult result = new PartnerInfoResult();
|
|
PartnerInfoOut out = new PartnerInfoOut();
|
|
try {
|
|
String sessionID = partnerInfo.getPartnerInfo().getSid().getTSessionID().toString();
|
|
out.setPartnerID(partnerInfo.getPartnerInfo().getPartnerID());
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
Partner partner = dsControler.partnerInfo(sessionID, partnerInfo.getPartnerInfo().getPartnerID().getTPartnerID().toString());
|
|
TServiceItem tServiceItem = new TServiceItem();
|
|
TServiceID tServiceID = new TServiceID();
|
|
tServiceID.setTServiceID(new Token(partner.getPartnerID()));
|
|
TServiceType tServiceType = convertServiceType(partner.getServiceType());
|
|
TServiceURI tServiceURI = new TServiceURI();
|
|
try {
|
|
tServiceURI.setTServiceURI(new URI(partner.getServiceAddress()));
|
|
} catch (MalformedURIException e) {
|
|
log.error(null, e);
|
|
}
|
|
tServiceItem.setId(tServiceID);
|
|
tServiceItem.setType(tServiceType);
|
|
tServiceItem.setUri(tServiceURI);
|
|
TSmallUID tSmallUID = new TSmallUID();
|
|
tSmallUID.setTSmallUID(partner.getId());
|
|
TServiceItemList tServiceItemList = new TServiceItemList();
|
|
tServiceItemList.addService(tServiceItem);
|
|
out.setPartnerUID(tSmallUID);
|
|
out.setServiceList(tServiceItemList);
|
|
out.setSupplyChainList(new TSupplyChainItemList());
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
out.setPartnerUID(new TSmallUID());
|
|
out.setServiceList(new TServiceItemList());
|
|
out.setSupplyChainList(new TSupplyChainItemList());
|
|
}
|
|
result.setPartnerInfoResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param partnerUpdate
|
|
*/
|
|
@Override
|
|
public PartnerUpdateResult partnerUpdate(PartnerUpdate partnerUpdate) {
|
|
log.trace("partnerUpdate method called");
|
|
PartnerUpdateResult result = new PartnerUpdateResult();
|
|
PartnerUpdateOut out = new PartnerUpdateOut();
|
|
try {
|
|
String sessionID = partnerUpdate.getPartnerUpdate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
PartnerUpdateIn in = partnerUpdate.getPartnerUpdate();
|
|
TServiceItem tServiceItem = in.getServiceList().getService()[0]; // HACK
|
|
dsControler.partnerUpdate(sessionID, in.getPartnerUID().getTSmallUID(),
|
|
in.getPartnerID().getTPartnerID().toString(),
|
|
tServiceItem.getType().getValue().toString(),
|
|
tServiceItem.getUri().getTServiceURI().toString());
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setPartnerUpdateResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param partnerDelete
|
|
*/
|
|
@Override
|
|
public PartnerDeleteResult partnerDelete(PartnerDelete partnerDelete) {
|
|
log.trace("partnerDelete method called");
|
|
PartnerDeleteResult result = new PartnerDeleteResult();
|
|
PartnerDeleteOut out = new PartnerDeleteOut();
|
|
try {
|
|
String sessionID = partnerDelete.getPartnerDelete().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
dsControler.partnerDelete(sessionID, partnerDelete.getPartnerDelete().getPartnerID().getTPartnerID().toString());
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
result.setPartnerDeleteResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param eventLookup
|
|
* @throws MalformedURIException
|
|
*/
|
|
@Override
|
|
public EventLookupResult eventLookup(EventLookup eventLookup) {
|
|
log.trace("eventLookup method called");
|
|
EventLookupResult result = new EventLookupResult();
|
|
EventLookupOut out = new EventLookupOut();
|
|
try {
|
|
String sessionID = eventLookup.getEventLookup().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
TEventItemList tEventItemList = new TEventItemList();
|
|
String epc = eventLookup.getEventLookup().getObjectID().getTObjectID().toString();
|
|
List<Event> eventList = dsControler.eventLookup(sessionID, epc);
|
|
for (fr.unicaen.iota.discovery.server.hibernate.Event event : eventList) {
|
|
TEventItem tEventItem = new TEventItem();
|
|
TEventClass tEventClass = new TEventClass();
|
|
tEventClass.setTEventClass(new Token(event.getEPCClass()));
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger(event.getId().toString()));
|
|
Calendar calendar = Calendar.getInstance();
|
|
calendar.setTime(event.getEventTimeStamp());
|
|
TLifeCycleStepID tLifeCycleStepID = new TLifeCycleStepID();
|
|
tLifeCycleStepID.setTLifeCycleStepID(new URI(event.getBizStep().equals("") ? "default" : event.getBizStep()));
|
|
TObjectID tObjectID = new TObjectID();
|
|
tObjectID.setTObjectID(new URI(event.getEpc()));
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token(event.getPartner().getPartnerID()));
|
|
TEventType tEventType;
|
|
if (event.getEventType().equals(TEventType.value1.toString())) {
|
|
tEventType = TEventType.value1;
|
|
} else {
|
|
tEventType = TEventType.value2;
|
|
}
|
|
TUserID tUserID = new TUserID();
|
|
tUserID.setTUserID(new Token(Session.getUser(sessionID).getUserID()));
|
|
TSupplyChainID tSupplyChainID = new TSupplyChainID();
|
|
tSupplyChainID.setTSupplyChainID(new Token("sc1")); // TODO :
|
|
tEventItem.setC(tEventClass);
|
|
tEventItem.setE(tEventID);
|
|
tEventItem.setEts(calendar);
|
|
tEventItem.setLcs(tLifeCycleStepID);
|
|
tEventItem.setO(tObjectID);
|
|
tEventItem.setP(tPartnerID);
|
|
tEventItem.setSc(tSupplyChainID);
|
|
TServiceItem tServiceItem = new TServiceItem();
|
|
TServiceID tServiceID = new TServiceID();
|
|
tServiceID.setTServiceID(new Token(event.getPartner().getPartnerID()));
|
|
TServiceType tServiceType = convertServiceType(event.getPartner().getServiceType());
|
|
TServiceURI tServiceURI = new TServiceURI();
|
|
tServiceURI.setTServiceURI(new URI(event.getPartner().getServiceAddress()));
|
|
tServiceItem.setId(tServiceID);
|
|
tServiceItem.setType(tServiceType);
|
|
tServiceItem.setUri(tServiceURI);
|
|
TServiceItemList tServiceItemList = new TServiceItemList();
|
|
tServiceItemList.addService(tServiceItem);
|
|
tEventItem.setServiceList(tServiceItemList);
|
|
Calendar calendar2 = Calendar.getInstance();
|
|
calendar2.setTime(event.getSourceTimeStamp());
|
|
tEventItem.setSts(calendar2);
|
|
tEventItem.setT(tEventType);
|
|
tEventItem.setU(tUserID);
|
|
tEventItemList.addEvent(tEventItem);
|
|
}
|
|
out.setEventList(tEventItemList);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
TEventItemList tEventItemList = new TEventItemList();
|
|
out.setEventList(tEventItemList);
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
} catch (MalformedURIException e) {
|
|
log.error(null, e);
|
|
}
|
|
result.setEventLookupResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param eventCreate
|
|
*/
|
|
@Override
|
|
public EventCreateResult eventCreate(EventCreate eventCreate) {
|
|
log.trace("[ " + eventCreate.getEventCreate().getEvent().getObjectEvent().getObjectID() + " ] " + "eventCreate method called");
|
|
EventCreateResult result = new EventCreateResult();
|
|
EventCreateOut out = new EventCreateOut();
|
|
try {
|
|
String sessionID = eventCreate.getEventCreate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
if (eventCreate.getEventCreate().getEvent().getVoidEvent() != null) {
|
|
return voidEvent(sessionID, eventCreate);
|
|
}
|
|
TPartnerID pID = eventCreate.getEventCreate().getProxyPartnerID();
|
|
Calendar sTS = eventCreate.getEventCreate().getEvent().getObjectEvent().getSourceTS();
|
|
TObjectID epc = eventCreate.getEventCreate().getEvent().getObjectEvent().getObjectID();
|
|
TEventClass eC = eventCreate.getEventCreate().getEvent().getObjectEvent().getEventClass();
|
|
String eLcs = eventCreate.getEventCreate().getEvent().getObjectEvent().getLifeCycleStepID().getTLifeCycleStepID().toString();
|
|
TEventType eT = TEventType.value2;
|
|
Calendar eTS = Calendar.getInstance();
|
|
int uid = dsControler.eventCreate(sessionID, pID.getTPartnerID().toString(), epc.getTObjectID().toString(), eC.getTEventClass().toString(), Util.convert(sTS), Util.convert(eTS), eT.getValue().toString(), eLcs);
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger(uid + ""));
|
|
out.setEventID(tEventID);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger("1"));
|
|
out.setEventID(tEventID);
|
|
result.setEventCreateResult(out);
|
|
return result;
|
|
}
|
|
result.setEventCreateResult(out);
|
|
return result;
|
|
}
|
|
|
|
private EventCreateResult voidEvent(String sessionId, EventCreate eventCreate) throws ProtocolException {
|
|
log.trace("eventCreate method called");
|
|
EventCreateResult result = new EventCreateResult();
|
|
EventCreateOut out = new EventCreateOut();
|
|
out.setResult(createCommandSuccessfull());
|
|
result.setEventCreateResult(out);
|
|
double eventId = eventCreate.getEventCreate().getEvent().getVoidEvent().getEventID().getTEventID().doubleValue();
|
|
int id = dsControler.voidEvent(sessionId, eventId);
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID((PositiveInteger) (PositiveInteger.valueOf(id)));
|
|
out.setEventID(tEventID);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param eventInfo
|
|
*/
|
|
@Override
|
|
public EventInfoResult eventInfo(EventInfo eventInfo) {
|
|
log.trace("eventInfo method called");
|
|
EventInfoResult result = new EventInfoResult();
|
|
EventInfoOut out = new EventInfoOut();
|
|
try {
|
|
try {
|
|
String sessionID = eventInfo.getEventInfo().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
Event event = dsControler.eventInfo(sessionID, Integer.parseInt(eventInfo.getEventInfo().getEventID().getTEventID().toString()));
|
|
if (event == null) {
|
|
throw new ProtocolException(2002, "event not found");
|
|
}
|
|
TInfoEvent tInfoEvent = new TInfoEvent();
|
|
TEventClass tEventClass = new TEventClass();
|
|
tEventClass.setTEventClass(new Token(event.getEPCClass()));
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger(event.getId().toString()));
|
|
Calendar calendar = Calendar.getInstance();
|
|
calendar.setTime(event.getEventTimeStamp());
|
|
TLifeCycleStepID tLifeCycleStepID = new TLifeCycleStepID();
|
|
tLifeCycleStepID.setTLifeCycleStepID(new URI(event.getBizStep()));
|
|
TObjectID tObjectID = new TObjectID();
|
|
tObjectID.setTObjectID(new URI(event.getEpc()));
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token(event.getPartner().getPartnerID()));
|
|
TEventType tEventType;
|
|
if (event.getEventType().equals(TEventType.value1.toString())) {
|
|
tEventType = TEventType.value1;
|
|
} else {
|
|
tEventType = TEventType.value2;
|
|
}
|
|
TUserID tUserID = new TUserID();
|
|
tUserID.setTUserID(new Token(Session.getUser(sessionID).getUserID()));
|
|
TSupplyChainID tSupplyChainID = new TSupplyChainID();
|
|
tSupplyChainID.setTSupplyChainID(new Token("not_defined")); // HACK
|
|
tInfoEvent.setEventClass(tEventClass);
|
|
tInfoEvent.setEventID(tEventID);
|
|
tInfoEvent.setEventTS(calendar);
|
|
tInfoEvent.setLifeCycleStepID(tLifeCycleStepID);
|
|
tInfoEvent.setObjectID(tObjectID);
|
|
tInfoEvent.setPartnerID(tPartnerID);
|
|
tInfoEvent.setSupplyChainID(tSupplyChainID);
|
|
tInfoEvent.setServiceList(new TServiceItemList());
|
|
TEventPriority tEventPriority = new TEventPriority();
|
|
tEventPriority.setTEventPriority(0); // HACK
|
|
tInfoEvent.setPriority(tEventPriority);
|
|
TEventTTL ttl = new TEventTTL();
|
|
ttl.setTEventTTL(new PositiveInteger(1 + "")); // HACK
|
|
tInfoEvent.setTtl(ttl);
|
|
Calendar calendar2 = Calendar.getInstance();
|
|
calendar2.setTime(event.getSourceTimeStamp());
|
|
tInfoEvent.setSourceTS(calendar2);
|
|
tInfoEvent.setEventType(tEventType);
|
|
tInfoEvent.setUserID(tUserID);
|
|
out.setEvent(tInfoEvent);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
TInfoEvent tInfoEvent = new TInfoEvent();
|
|
TEventClass tEventClass = new TEventClass();
|
|
tEventClass.setTEventClass(new Token("NULL"));
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger(1 + ""));
|
|
Calendar calendar = Calendar.getInstance();
|
|
TLifeCycleStepID tLifeCycleStepID = new TLifeCycleStepID();
|
|
tLifeCycleStepID.setTLifeCycleStepID(new URI("NULL"));
|
|
TObjectID tObjectID = new TObjectID();
|
|
tObjectID.setTObjectID(new URI("NULL"));
|
|
TPartnerID tPartnerID = new TPartnerID();
|
|
tPartnerID.setTPartnerID(new Token("NULL"));
|
|
TEventType tEventType;
|
|
tEventType = TEventType.value1;
|
|
TUserID tUserID = new TUserID();
|
|
tUserID.setTUserID(new Token("NULL"));
|
|
TSupplyChainID tSupplyChainID = new TSupplyChainID();
|
|
tSupplyChainID.setTSupplyChainID(new Token("not_used")); // TODO :
|
|
tInfoEvent.setEventClass(tEventClass);
|
|
tInfoEvent.setEventID(tEventID);
|
|
tInfoEvent.setEventTS(calendar);
|
|
tInfoEvent.setLifeCycleStepID(tLifeCycleStepID);
|
|
tInfoEvent.setObjectID(tObjectID);
|
|
tInfoEvent.setPartnerID(tPartnerID);
|
|
tInfoEvent.setSupplyChainID(tSupplyChainID);
|
|
tInfoEvent.setServiceList(new TServiceItemList());
|
|
Calendar calendar2 = Calendar.getInstance();
|
|
tInfoEvent.setSourceTS(calendar2);
|
|
tInfoEvent.setEventType(tEventType);
|
|
tInfoEvent.setUserID(tUserID);
|
|
out.setEvent(tInfoEvent);
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
}
|
|
} catch (MalformedURIException e) {
|
|
log.error(null, e);
|
|
}
|
|
result.setEventInfoResult(out);
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
* @param multipleEventCreate
|
|
*/
|
|
@Override
|
|
public MultipleEventCreateResult multipleEventCreate(MultipleEventCreate multipleEventCreate) {
|
|
log.trace("MultipleEventCreate method called");
|
|
MultipleEventCreateResult result = new MultipleEventCreateResult();
|
|
MultipleEventCreateOut out = new MultipleEventCreateOut();
|
|
try {
|
|
String sessionID = multipleEventCreate.getMultipleEventCreate().getSid().getTSessionID().toString();
|
|
if (!Session.isValidSession(sessionID)) {
|
|
throw new ProtocolException(2002, "not a valid session");
|
|
}
|
|
TEventIDList tEventIDList = new TEventIDList();
|
|
for (TObjectEvent tObjectEvent : multipleEventCreate.getMultipleEventCreate().getEvents().getObjectEvent()) {
|
|
Calendar sTS = tObjectEvent.getSourceTS();
|
|
TObjectID epc = tObjectEvent.getObjectID();
|
|
TEventClass eC = tObjectEvent.getEventClass();
|
|
TEventType eT = TEventType.value2;
|
|
TLifeCycleStepID tLifeCycleStepID = tObjectEvent.getLifeCycleStepID();
|
|
Calendar eTS = Calendar.getInstance();
|
|
Integer uid;
|
|
try {
|
|
uid = dsControler.eventCreate(sessionID, multipleEventCreate.getMultipleEventCreate().getProxyPartnerID().getTPartnerID().toString(),
|
|
epc.getTObjectID().toString(), eC.getTEventClass().toString(), Util.convert(sTS), Util.convert(eTS),
|
|
eT.getValue().toString(), tLifeCycleStepID.getTLifeCycleStepID().toString());
|
|
} catch (ProtocolException pe) {
|
|
continue;
|
|
}
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger(uid + ""));
|
|
tEventIDList.addEventID(tEventID);
|
|
}
|
|
out.setEventIDList(tEventIDList);
|
|
out.setResult(createCommandSuccessfull());
|
|
} catch (ProtocolException pe) {
|
|
out.setResult(createResultFailed(pe.getMessage(), pe.getResultCode()));
|
|
TEventIDList tEventIDList = new TEventIDList();
|
|
TEventID tEventID = new TEventID();
|
|
tEventID.setTEventID(new PositiveInteger("1"));
|
|
tEventIDList.addEventID(tEventID);
|
|
out.setEventIDList(tEventIDList);
|
|
}
|
|
result.setMultipleEventCreateResult(out);
|
|
return result;
|
|
}
|
|
|
|
private TResult createResultFailed(String message, int resultCode) {
|
|
TResult tResult = new TResult();
|
|
tResult.setCode(TResultCode.value6);
|
|
tResult.setDesc(message);
|
|
tResult.setValue(resultCode + "");
|
|
return tResult;
|
|
}
|
|
|
|
private TResult createCommandSuccessfull() {
|
|
TResult tResult = new TResult();
|
|
tResult.setCode(TResultCode.value1);
|
|
tResult.setDesc("command successfull");
|
|
tResult.setValue("1000");
|
|
return tResult;
|
|
}
|
|
|
|
private TServiceType convertServiceType(String type) {
|
|
if ("ds".equalsIgnoreCase(type)) {
|
|
return TServiceType.ds;
|
|
} else if ("epcis".equalsIgnoreCase(type)) {
|
|
return TServiceType.epcis;
|
|
} else if ("ws".equalsIgnoreCase(type)) {
|
|
return TServiceType.ws;
|
|
} else if ("html".equalsIgnoreCase(type)) {
|
|
return TServiceType.html;
|
|
} else if ("xmlrpc".equalsIgnoreCase(type)) {
|
|
return TServiceType.xmlrpc;
|
|
} else if ("ided_epcis".equalsIgnoreCase(type)) {
|
|
return TServiceType.ided_epcis;
|
|
} else if ("ided_ds".equalsIgnoreCase(type)) {
|
|
return TServiceType.ided_ds;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// ######################################################################### //
|
|
// //
|
|
// //
|
|
// NOT IMPLEMENTED //
|
|
// //
|
|
// //
|
|
// ######################################################################### //
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param supplyChainLookup
|
|
*/
|
|
@Override
|
|
public SupplyChainLookupResult supplyChainLookup(SupplyChainLookup supplyChainLookup) {
|
|
log.trace("supplyChainLookup method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#supplyChainLookup");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param supplyChainCreate
|
|
*/
|
|
@Override
|
|
public SupplyChainCreateResult supplyChainCreate(SupplyChainCreate supplyChainCreate) {
|
|
log.trace("supplayChainCreate method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#supplyChainCreate");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param supplyChainInfo
|
|
*/
|
|
@Override
|
|
public SupplyChainInfoResult supplyChainInfo(SupplyChainInfo supplyChainInfo) {
|
|
log.trace("supplyChainInfo method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#supplyChainInfo");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param supplyChainUpdate
|
|
*/
|
|
@Override
|
|
public SupplyChainUpdateResult supplyChainUpdate(SupplyChainUpdate supplyChainUpdate) {
|
|
log.trace("supplyChainUpdate method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#supplyChainUpdate");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param supplyChainDelete
|
|
*/
|
|
@Override
|
|
public SupplyChainDeleteResult supplyChainDelete(SupplyChainDelete supplyChainDelete) {
|
|
log.trace("supplyChainDelete method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#supplyChainDelete");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param lookup
|
|
*/
|
|
@Override
|
|
public LookupResult lookup(Lookup lookup) {
|
|
log.trace("lookup method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#lookup");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param roleLookup
|
|
*/
|
|
@Override
|
|
public RoleLookupResult roleLookup(RoleLookup roleLookup) {
|
|
log.trace("roleLookup method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#roleLookup");
|
|
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param roleCreate
|
|
*/
|
|
@Override
|
|
public RoleCreateResult roleCreate(RoleCreate roleCreate) {
|
|
log.trace("roleCreate method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#roleCreate");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param roleInfo
|
|
*/
|
|
@Override
|
|
public RoleInfoResult roleInfo(RoleInfo roleInfo) {
|
|
log.trace("roleInfo method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#roleInfo");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param roleUpdate
|
|
*/
|
|
@Override
|
|
public RoleUpdateResult roleUpdate(RoleUpdate roleUpdate) {
|
|
log.trace("roleUpdate method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#roleUpdate");
|
|
}
|
|
|
|
/**
|
|
* Auto generated method signature
|
|
*
|
|
*
|
|
* @param roleDelete
|
|
*/
|
|
@Override
|
|
public RoleDeleteResult roleDelete(RoleDelete roleDelete) {
|
|
log.trace("roleDelete method called");
|
|
throw new java.lang.UnsupportedOperationException("Please implement " + this.getClass().getName() + "#roleDelete");
|
|
}
|
|
}
|