001
014
015 package com.liferay.portlet.usersadmin.lar;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.lar.BaseStagedModelDataHandler;
020 import com.liferay.portal.kernel.lar.ExportImportPathUtil;
021 import com.liferay.portal.kernel.lar.PortletDataContext;
022 import com.liferay.portal.kernel.xml.Element;
023 import com.liferay.portal.model.Group;
024 import com.liferay.portal.model.Phone;
025 import com.liferay.portal.service.GroupLocalServiceUtil;
026 import com.liferay.portal.service.PhoneLocalServiceUtil;
027 import com.liferay.portal.service.ServiceContext;
028
029
032 public class PhoneStagedModelDataHandler
033 extends BaseStagedModelDataHandler<Phone> {
034
035 public static final String[] CLASS_NAMES = {Phone.class.getName()};
036
037 @Override
038 public void deleteStagedModel(
039 String uuid, long groupId, String className, String extraData)
040 throws PortalException, SystemException {
041
042 Group group = GroupLocalServiceUtil.getGroup(groupId);
043
044 Phone phone = PhoneLocalServiceUtil.fetchPhoneByUuidAndCompanyId(
045 uuid, group.getCompanyId());
046
047 if (phone != null) {
048 PhoneLocalServiceUtil.deletePhone(phone);
049 }
050 }
051
052 @Override
053 public String[] getClassNames() {
054 return CLASS_NAMES;
055 }
056
057 @Override
058 protected void doExportStagedModel(
059 PortletDataContext portletDataContext, Phone phone)
060 throws Exception {
061
062 Element phoneElement = portletDataContext.getExportDataElement(phone);
063
064 portletDataContext.addClassedModel(
065 phoneElement, ExportImportPathUtil.getModelPath(phone), phone,
066 UsersAdminPortletDataHandler.NAMESPACE);
067 }
068
069 @Override
070 protected void doImportStagedModel(
071 PortletDataContext portletDataContext, Phone phone)
072 throws Exception {
073
074 long userId = portletDataContext.getUserId(phone.getUserUuid());
075
076 ServiceContext serviceContext = portletDataContext.createServiceContext(
077 phone, UsersAdminPortletDataHandler.NAMESPACE);
078
079 Phone existingPhone =
080 PhoneLocalServiceUtil.fetchPhoneByUuidAndCompanyId(
081 phone.getUuid(), portletDataContext.getCompanyId());
082
083 Phone importedPhone = null;
084
085 if (existingPhone == null) {
086 serviceContext.setUuid(phone.getUuid());
087
088 importedPhone = PhoneLocalServiceUtil.addPhone(
089 userId, phone.getClassName(), phone.getClassPK(),
090 phone.getNumber(), phone.getExtension(), phone.getTypeId(),
091 phone.isPrimary(), serviceContext);
092 }
093 else {
094 importedPhone = PhoneLocalServiceUtil.updatePhone(
095 existingPhone.getPhoneId(), phone.getNumber(),
096 phone.getExtension(), phone.getTypeId(), phone.isPrimary());
097 }
098
099 portletDataContext.importClassedModel(
100 phone, importedPhone, UsersAdminPortletDataHandler.NAMESPACE);
101 }
102
103 }