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.EmailAddress;
024 import com.liferay.portal.model.Group;
025 import com.liferay.portal.service.EmailAddressLocalServiceUtil;
026 import com.liferay.portal.service.GroupLocalServiceUtil;
027 import com.liferay.portal.service.ServiceContext;
028
029
032 public class EmailAddressStagedModelDataHandler
033 extends BaseStagedModelDataHandler<EmailAddress> {
034
035 public static final String[] CLASS_NAMES = {EmailAddress.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 EmailAddress emailAddress =
045 EmailAddressLocalServiceUtil.fetchEmailAddressByUuidAndCompanyId(
046 uuid, group.getCompanyId());
047
048 EmailAddressLocalServiceUtil.deleteEmailAddress(emailAddress);
049 }
050
051 @Override
052 public String[] getClassNames() {
053 return CLASS_NAMES;
054 }
055
056 @Override
057 protected void doExportStagedModel(
058 PortletDataContext portletDataContext, EmailAddress emailAddress)
059 throws Exception {
060
061 Element emailAddressElement = portletDataContext.getExportDataElement(
062 emailAddress);
063
064 portletDataContext.addClassedModel(
065 emailAddressElement,
066 ExportImportPathUtil.getModelPath(emailAddress), emailAddress,
067 UsersAdminPortletDataHandler.NAMESPACE);
068 }
069
070 @Override
071 protected void doImportStagedModel(
072 PortletDataContext portletDataContext, EmailAddress emailAddress)
073 throws Exception {
074
075 long userId = portletDataContext.getUserId(emailAddress.getUserUuid());
076
077 ServiceContext serviceContext = portletDataContext.createServiceContext(
078 emailAddress, UsersAdminPortletDataHandler.NAMESPACE);
079
080 EmailAddress existingEmailAddress =
081 EmailAddressLocalServiceUtil.fetchEmailAddressByUuidAndCompanyId(
082 emailAddress.getUuid(), portletDataContext.getCompanyId());
083
084 EmailAddress importedEmailAddress = null;
085
086 if (existingEmailAddress == null) {
087 serviceContext.setUuid(emailAddress.getUuid());
088
089 importedEmailAddress = EmailAddressLocalServiceUtil.addEmailAddress(
090 userId, emailAddress.getClassName(), emailAddress.getClassPK(),
091 emailAddress.getAddress(), emailAddress.getTypeId(),
092 emailAddress.isPrimary(), serviceContext);
093 }
094 else {
095 importedEmailAddress =
096 EmailAddressLocalServiceUtil.updateEmailAddress(
097 existingEmailAddress.getEmailAddressId(),
098 emailAddress.getAddress(), emailAddress.getTypeId(),
099 emailAddress.isPrimary());
100 }
101
102 portletDataContext.importClassedModel(
103 emailAddress, importedEmailAddress,
104 UsersAdminPortletDataHandler.NAMESPACE);
105 }
106
107 }