/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library 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 Lesser General Public License for more * details. */ package com.liferay.portal.kernel.service; import aQute.bnd.annotation.ProviderType; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.jsonwebservice.JSONWebService; import com.liferay.portal.kernel.model.Address; import com.liferay.portal.kernel.model.EmailAddress; import com.liferay.portal.kernel.model.OrgLabor; import com.liferay.portal.kernel.model.Organization; import com.liferay.portal.kernel.model.Phone; import com.liferay.portal.kernel.model.Website; import com.liferay.portal.kernel.security.access.control.AccessControlled; import com.liferay.portal.kernel.transaction.Isolation; import com.liferay.portal.kernel.transaction.Propagation; import com.liferay.portal.kernel.transaction.Transactional; import java.util.List; /** * Provides the remote service interface for Organization. Methods of this * service are expected to have security checks based on the propagated JAAS * credentials because this service can be accessed remotely. * * @author Brian Wing Shun Chan * @see OrganizationServiceUtil * @see com.liferay.portal.service.base.OrganizationServiceBaseImpl * @see com.liferay.portal.service.impl.OrganizationServiceImpl * @generated */ @AccessControlled @JSONWebService @ProviderType @Transactional(isolation = Isolation.PORTAL, rollbackFor = { PortalException.class, SystemException.class}) public interface OrganizationService extends BaseService { /* * NOTE FOR DEVELOPERS: * * Never modify or reference this interface directly. Always use {@link OrganizationServiceUtil} to access the organization remote service. Add custom service methods to {@link com.liferay.portal.service.impl.OrganizationServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface. */ /** * Adds an organization. * * <p> * This method handles the creation and bookkeeping of the organization * including its resources, metadata, and internal data structures. * </p> * * @param parentOrganizationId the primary key of the organization's parent organization * @param name the organization's name * @param type the organization's type * @param regionId the primary key of the organization's region * @param countryId the primary key of the organization's country * @param statusId the organization's workflow status * @param comments the comments about the organization * @param site whether the organization is to be associated with a main site * @param serviceContext the service context to be applied (optionally <code>null</code>). Can set asset category IDs, asset tag names, and expando bridge attributes for the organization. * @return the organization */ public Organization addOrganization(long parentOrganizationId, java.lang.String name, java.lang.String type, long regionId, long countryId, long statusId, java.lang.String comments, boolean site, ServiceContext serviceContext) throws PortalException; /** * Adds an organization with additional parameters. * * <p> * This method handles the creation and bookkeeping of the organization * including its resources, metadata, and internal data structures. * </p> * * @param parentOrganizationId the primary key of the organization's parent organization * @param name the organization's name * @param type the organization's type * @param regionId the primary key of the organization's region * @param countryId the primary key of the organization's country * @param statusId the organization's workflow status * @param comments the comments about the organization * @param site whether the organization is to be associated with a main site * @param addresses the organization's addresses * @param emailAddresses the organization's email addresses * @param orgLabors the organization's hours of operation * @param phones the organization's phone numbers * @param websites the organization's websites * @param serviceContext the service context to be applied (optionally <code>null</code>). Can set asset category IDs, asset tag names, and expando bridge attributes for the organization. * @return the organization */ public Organization addOrganization(long parentOrganizationId, java.lang.String name, java.lang.String type, long regionId, long countryId, long statusId, java.lang.String comments, boolean site, List<Address> addresses, List<EmailAddress> emailAddresses, List<OrgLabor> orgLabors, List<Phone> phones, List<Website> websites, ServiceContext serviceContext) throws PortalException; /** * Returns the organization with the primary key. * * @param organizationId the primary key of the organization * @return the organization with the primary key, or <code>null</code> if an organization with the primary key could not be found or if the user did not have permission to view the organization */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public Organization fetchOrganization(long organizationId) throws PortalException; /** * Returns the organization with the primary key. * * @param organizationId the primary key of the organization * @return the organization with the primary key */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public Organization getOrganization(long organizationId) throws PortalException; /** * Updates the organization with additional parameters. * * @param organizationId the primary key of the organization * @param parentOrganizationId the primary key of the organization's parent organization * @param name the organization's name * @param type the organization's type * @param regionId the primary key of the organization's region * @param countryId the primary key of the organization's country * @param statusId the organization's workflow status * @param comments the comments about the organization * @param logo whether to update the ogranization's logo * @param logoBytes the new logo image data * @param site whether the organization is to be associated with a main site * @param addresses the organization's addresses * @param emailAddresses the organization's email addresses * @param orgLabors the organization's hours of operation * @param phones the organization's phone numbers * @param websites the organization's websites * @param serviceContext the service context to be applied (optionally <code>null</code>). Can set asset category IDs and asset tag names for the organization, and merge expando bridge attributes for the organization. * @return the organization */ public Organization updateOrganization(long organizationId, long parentOrganizationId, java.lang.String name, java.lang.String type, long regionId, long countryId, long statusId, java.lang.String comments, boolean logo, byte[] logoBytes, boolean site, List<Address> addresses, List<EmailAddress> emailAddresses, List<OrgLabor> orgLabors, List<Phone> phones, List<Website> websites, ServiceContext serviceContext) throws PortalException; /** * Updates the organization. * * @param organizationId the primary key of the organization * @param parentOrganizationId the primary key of the organization's parent organization * @param name the organization's name * @param type the organization's type * @param regionId the primary key of the organization's region * @param countryId the primary key of the organization's country * @param statusId the organization's workflow status * @param comments the comments about the organization * @param site whether the organization is to be associated with a main site * @param serviceContext the service context to be applied (optionally <code>null</code>). Can set asset category IDs and asset tag names for the organization, and merge expando bridge attributes for the organization. * @return the organization */ public Organization updateOrganization(long organizationId, long parentOrganizationId, java.lang.String name, java.lang.String type, long regionId, long countryId, long statusId, java.lang.String comments, boolean site, ServiceContext serviceContext) throws PortalException; /** * Updates the organization with additional parameters. * * @param organizationId the primary key of the organization * @param parentOrganizationId the primary key of the organization's parent organization * @param name the organization's name * @param type the organization's type * @param regionId the primary key of the organization's region * @param countryId the primary key of the organization's country * @param statusId the organization's workflow status * @param comments the comments about the organization * @param site whether the organization is to be associated with a main site * @param addresses the organization's addresses * @param emailAddresses the organization's email addresses * @param orgLabors the organization's hours of operation * @param phones the organization's phone numbers * @param websites the organization's websites * @param serviceContext the service context to be applied (optionally <code>null</code>). Can set asset category IDs and asset tag names for the organization, and merge expando bridge attributes for the organization. * @return the organization * @deprecated As of 7.0.0, replaced by {@link #updateOrganization(long, long, String, String, long, long, long, String, boolean, byte[], boolean, List, List, List, List, List, ServiceContext)} */ @java.lang.Deprecated public Organization updateOrganization(long organizationId, long parentOrganizationId, java.lang.String name, java.lang.String type, long regionId, long countryId, long statusId, java.lang.String comments, boolean site, List<Address> addresses, List<EmailAddress> emailAddresses, List<OrgLabor> orgLabors, List<Phone> phones, List<Website> websites, ServiceContext serviceContext) throws PortalException; /** * Returns the number of organizations belonging to the parent organization. * * @param companyId the primary key of the organizations' company * @param parentOrganizationId the primary key of the organizations' parent organization * @return the number of organizations belonging to the parent organization */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public int getOrganizationsCount(long companyId, long parentOrganizationId); /** * Returns the OSGi service identifier. * * @return the OSGi service identifier */ public java.lang.String getOSGiServiceIdentifier(); /** * Returns all the organizations belonging to the parent organization. * * @param companyId the primary key of the organizations' company * @param parentOrganizationId the primary key of the organizations' parent organization * @return the organizations belonging to the parent organization */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public List<Organization> getOrganizations(long companyId, long parentOrganizationId); /** * Returns a range of all the organizations belonging to the parent * organization. * * <p> * Useful when paginating results. Returns a maximum of <code>end - * start</code> instances. <code>start</code> and <code>end</code> are not * primary keys, they are indexes in the result set. Thus, <code>0</code> * refers to the first result in the set. Setting both <code>start</code> * and <code>end</code> to {@link * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full * result set. * </p> * * @param companyId the primary key of the organizations' company * @param parentOrganizationId the primary key of the organizations' parent organization * @param start the lower bound of the range of organizations to return * @param end the upper bound of the range of organizations to return (not inclusive) * @return the range of organizations belonging to the parent organization */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public List<Organization> getOrganizations(long companyId, long parentOrganizationId, int start, int end); /** * Returns all the organizations with which the user is explicitly * associated. * * <p> * A user is considered to be <i>explicitly</i> associated with an * organization if his account is individually created within the * organization or if the user is later added as a member. * </p> * * @param userId the primary key of the user * @return the organizations with which the user is explicitly associated */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public List<Organization> getUserOrganizations(long userId) throws PortalException; /** * Returns the primary key of the organization with the name. * * @param companyId the primary key of the organization's company * @param name the organization's name * @return the primary key of the organization with the name, or <code>0</code> if the organization could not be found */ @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public long getOrganizationId(long companyId, java.lang.String name) throws PortalException; /** * Adds the organizations to the group. * * @param groupId the primary key of the group * @param organizationIds the primary keys of the organizations */ public void addGroupOrganizations(long groupId, long[] organizationIds) throws PortalException; /** * Assigns the password policy to the organizations, removing any other * currently assigned password policies. * * @param passwordPolicyId the primary key of the password policy * @param organizationIds the primary keys of the organizations */ public void addPasswordPolicyOrganizations(long passwordPolicyId, long[] organizationIds) throws PortalException; /** * Deletes the organization's logo. * * @param organizationId the primary key of the organization */ public void deleteLogo(long organizationId) throws PortalException; /** * Deletes the organization. The organization's associated resources and * assets are also deleted. * * @param organizationId the primary key of the organization */ public void deleteOrganization(long organizationId) throws PortalException; /** * Sets the organizations in the group, removing and adding organizations to * the group as necessary. * * @param groupId the primary key of the group * @param organizationIds the primary keys of the organizations */ public void setGroupOrganizations(long groupId, long[] organizationIds) throws PortalException; /** * Removes the organizations from the group. * * @param groupId the primary key of the group * @param organizationIds the primary keys of the organizations */ public void unsetGroupOrganizations(long groupId, long[] organizationIds) throws PortalException; /** * Removes the organizations from the password policy. * * @param passwordPolicyId the primary key of the password policy * @param organizationIds the primary keys of the organizations */ public void unsetPasswordPolicyOrganizations(long passwordPolicyId, long[] organizationIds) throws PortalException; }