com.liferay.portal.kernel.service.CompanyLocalService.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portal.kernel.service.CompanyLocalService.java

Source

/**
 * 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 com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;
import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
import com.liferay.portal.kernel.dao.orm.Projection;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.messaging.async.Async;
import com.liferay.portal.kernel.model.Company;
import com.liferay.portal.kernel.model.PersistedModel;
import com.liferay.portal.kernel.search.Hits;
import com.liferay.portal.kernel.search.Indexable;
import com.liferay.portal.kernel.search.IndexableType;
import com.liferay.portal.kernel.transaction.Isolation;
import com.liferay.portal.kernel.transaction.Propagation;
import com.liferay.portal.kernel.transaction.Transactional;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.UnicodeProperties;

import java.io.File;
import java.io.InputStream;
import java.io.Serializable;

import java.util.List;

import org.osgi.annotation.versioning.ProviderType;

/**
 * Provides the local service interface for Company. Methods of this
 * service will not have security checks based on the propagated JAAS
 * credentials because this service can only be accessed from within the same
 * VM.
 *
 * @author Brian Wing Shun Chan
 * @see CompanyLocalServiceUtil
 * @generated
 */
@ProviderType
@Transactional(isolation = Isolation.PORTAL, rollbackFor = { PortalException.class, SystemException.class })
public interface CompanyLocalService extends BaseLocalService, PersistedModelLocalService {

    /**
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. Always use {@link CompanyLocalServiceUtil} to access the company local service. Add custom service methods to <code>com.liferay.portal.service.impl.CompanyLocalServiceImpl</code> and rerun ServiceBuilder to automatically copy the method declarations to this interface.
     */

    /**
     * Adds the company to the database. Also notifies the appropriate model listeners.
     *
     * @param company the company
     * @return the company that was added
     */
    @Indexable(type = IndexableType.REINDEX)
    public Company addCompany(Company company);

    /**
     * Adds a company.
     *
     * @param webId the the company's web domain
     * @param virtualHostname the company's virtual host name
     * @param mx the company's mail domain
     * @param system whether the company is the very first company (i.e., the
     super company)
     * @param maxUsers the max number of company users (optionally
     <code>0</code>)
     * @param active whether the company is active
     * @return the company
     */
    public Company addCompany(String webId, String virtualHostname, String mx, boolean system, int maxUsers,
            boolean active) throws PortalException;

    /**
     * Returns the company with the web domain.
     *
     * The method sets mail domain to the web domain to the default name set in
     * portal.properties
     *
     * @param webId the company's web domain
     * @return the company with the web domain
     */
    public Company checkCompany(String webId) throws PortalException;

    /**
     * Returns the company with the web domain and mail domain. If no such
     * company exits, the method will create a new company.
     *
     * The method goes through a series of checks to ensure that the company
     * contains default users, groups, etc.
     *
     * @param webId the company's web domain
     * @param mx the company's mail domain
     * @return the company with the web domain and mail domain
     */
    @Transactional(isolation = Isolation.PORTAL, rollbackFor = { PortalException.class, SystemException.class })
    public Company checkCompany(String webId, String mx) throws PortalException;

    /**
     * Checks if the company has an encryption key. It will create a key if one
     * does not exist.
     *
     * @param companyId the primary key of the company
     */
    public void checkCompanyKey(long companyId) throws PortalException;

    /**
     * Creates a new company with the primary key. Does not add the company to the database.
     *
     * @param companyId the primary key for the new company
     * @return the new company
     */
    @Transactional(enabled = false)
    public Company createCompany(long companyId);

    /**
     * Deletes the company from the database. Also notifies the appropriate model listeners.
     *
     * @param company the company
     * @return the company that was removed
     * @throws PortalException
     */
    @Indexable(type = IndexableType.DELETE)
    public Company deleteCompany(Company company) throws PortalException;

    /**
     * Deletes the company with the primary key from the database. Also notifies the appropriate model listeners.
     *
     * @param companyId the primary key of the company
     * @return the company that was removed
     * @throws PortalException if a company with the primary key could not be found
     */
    @Indexable(type = IndexableType.DELETE)
    public Company deleteCompany(long companyId) throws PortalException;

    /**
     * Deletes the company's logo.
     *
     * @param companyId the primary key of the company
     * @return the deleted logo's company
     */
    public Company deleteLogo(long companyId) throws PortalException;

    /**
     * @throws PortalException
     */
    @Override
    public PersistedModel deletePersistedModel(PersistedModel persistedModel) throws PortalException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public DynamicQuery dynamicQuery();

    /**
     * Performs a dynamic query on the database and returns the matching rows.
     *
     * @param dynamicQuery the dynamic query
     * @return the matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery);

    /**
     * Performs a dynamic query on the database and returns a range of the matching rows.
     *
     * <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 <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.CompanyModelImpl</code>.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @return the range of matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, int end);

    /**
     * Performs a dynamic query on the database and returns an ordered range of the matching rows.
     *
     * <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 <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.CompanyModelImpl</code>.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
     * @return the ordered range of matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, int end,
            OrderByComparator<T> orderByComparator);

    /**
     * Returns the number of rows matching the dynamic query.
     *
     * @param dynamicQuery the dynamic query
     * @return the number of rows matching the dynamic query
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public long dynamicQueryCount(DynamicQuery dynamicQuery);

    /**
     * Returns the number of rows matching the dynamic query.
     *
     * @param dynamicQuery the dynamic query
     * @param projection the projection to apply to the query
     * @return the number of rows matching the dynamic query
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public long dynamicQueryCount(DynamicQuery dynamicQuery, Projection projection);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company fetchCompany(long companyId);

    /**
     * Returns the company with the primary key.
     *
     * @param companyId the primary key of the company
     * @return the company with the primary key, <code>null</code> if a company
     with the primary key could not be found
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company fetchCompanyById(long companyId);

    /**
     * Returns the company with the virtual host name.
     *
     * @param virtualHostname the virtual host name
     * @return the company with the virtual host name, <code>null</code> if a
     company with the virtual host could not be found
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company fetchCompanyByVirtualHost(String virtualHostname);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public ActionableDynamicQuery getActionableDynamicQuery();

    /**
     * Returns all the companies.
     *
     * @return the companies
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Company> getCompanies();

    /**
     * Returns all the companies used by WSRP.
     *
     * @param system whether the company is the very first company (i.e., the
     super company)
     * @return the companies used by WSRP
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Company> getCompanies(boolean system);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Company> getCompanies(boolean system, int start, int end);

    /**
     * Returns a range of all the companies.
     *
     * <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 <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.CompanyModelImpl</code>.
     * </p>
     *
     * @param start the lower bound of the range of companies
     * @param end the upper bound of the range of companies (not inclusive)
     * @return the range of companies
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Company> getCompanies(int start, int end);

    /**
     * Returns the number of companies.
     *
     * @return the number of companies
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public int getCompaniesCount();

    /**
     * Returns the number of companies used by WSRP.
     *
     * @param system whether the company is the very first company (i.e., the
     super company)
     * @return the number of companies used by WSRP
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public int getCompaniesCount(boolean system);

    /**
     * Returns the company with the primary key.
     *
     * @param companyId the primary key of the company
     * @return the company
     * @throws PortalException if a company with the primary key could not be found
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompany(long companyId) throws PortalException;

    /**
     * Returns the company with the primary key.
     *
     * @param companyId the primary key of the company
     * @return the company with the primary key
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompanyById(long companyId) throws PortalException;

    /**
     * Returns the company with the logo.
     *
     * @param logoId the ID of the company's logo
     * @return the company with the logo
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompanyByLogoId(long logoId) throws PortalException;

    /**
     * Returns the company with the mail domain.
     *
     * @param mx the company's mail domain
     * @return the company with the mail domain
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompanyByMx(String mx) throws PortalException;

    /**
     * Returns the company with the virtual host name.
     *
     * @param virtualHostname the company's virtual host name
     * @return the company with the virtual host name
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompanyByVirtualHost(String virtualHostname) throws PortalException;

    /**
     * Returns the company with the web domain.
     *
     * @param webId the company's web domain
     * @return the company with the web domain
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Company getCompanyByWebId(String webId) throws PortalException;

    /**
     * Returns the user's company.
     *
     * @param userId the primary key of the user
     * @return Returns the first company if there is only one company or the
     user's company if there are more than one company; <code>0</code>
     otherwise
     * @throws Exception if a user with the primary key could not be found
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public long getCompanyIdByUserId(long userId) throws Exception;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();

    /**
     * Returns the OSGi service identifier.
     *
     * @return the OSGi service identifier
     */
    public String getOSGiServiceIdentifier();

    @Override
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public PersistedModel getPersistedModel(Serializable primaryKeyObj) throws PortalException;

    /**
     * Removes the values that match the keys of the company's preferences.
     *
     * This method is called by {@link
     * com.liferay.portlet.portalsettings.action.EditLDAPServerAction} remotely
     * through {@link CompanyService}.
     *
     * @param companyId the primary key of the company
     * @param keys the company's preferences keys to be remove
     */
    public void removePreferences(long companyId, String[] keys);

    /**
     * Returns an ordered range of all assets that match the keywords in the
     * company.
     *
     * The method is called in {@link
     * com.liferay.portal.search.PortalOpenSearchImpl} which is not longer used
     * by the Search portlet.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param keywords the keywords (space separated),which may occur in assets
     in the company (optionally <code>null</code>)
     * @param start the lower bound of the range of assets to return
     * @param end the upper bound of the range of assets to return (not
     inclusive)
     * @return the matching assets in the company
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Hits search(long companyId, long userId, String keywords, int start, int end);

    /**
     * Returns an ordered range of all assets that match the keywords in the
     * portlet within the company.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param portletId the primary key of the portlet (optionally
     <code>null</code>)
     * @param groupId the primary key of the group (optionally <code>0</code>)
     * @param type the mime type of assets to return(optionally
     <code>null</code>)
     * @param keywords the keywords (space separated), which may occur in any
     assets in the portlet (optionally <code>null</code>)
     * @param start the lower bound of the range of assets to return
     * @param end the upper bound of the range of assets to return (not
     inclusive)
     * @return the matching assets in the portlet within the company
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Hits search(long companyId, long userId, String portletId, long groupId, String type, String keywords,
            int start, int end);

    /**
     * Updates the company in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
     *
     * @param company the company
     * @return the company that was updated
     */
    @Indexable(type = IndexableType.REINDEX)
    public Company updateCompany(Company company);

    /**
     * Updates the company.
     *
     * @param companyId the primary key of the company
     * @param virtualHostname the company's virtual host name
     * @param mx the company's mail domain
     * @param maxUsers the max number of company users (optionally
     <code>0</code>)
     * @param active whether the company is active
     * @return the company with the primary key
     */
    public Company updateCompany(long companyId, String virtualHostname, String mx, int maxUsers, boolean active)
            throws PortalException;

    /**
     * Update the company with additional account information.
     *
     * @param companyId the primary key of the company
     * @param virtualHostname the company's virtual host name
     * @param mx the company's mail domain
     * @param homeURL the company's home URL (optionally <code>null</code>)
     * @param hasLogo if the company has a custom logo
     * @param logoBytes the new logo image data
     * @param name the company's account name(optionally <code>null</code>)
     * @param legalName the company's account legal name (optionally
     <code>null</code>)
     * @param legalId the company's account legal ID (optionally
     <code>null</code>)
     * @param legalType the company's account legal type (optionally
     <code>null</code>)
     * @param sicCode the company's account SIC code (optionally
     <code>null</code>)
     * @param tickerSymbol the company's account ticker symbol (optionally
     <code>null</code>)
     * @param industry the company's account industry (optionally
     <code>null</code>)
     * @param type the company's account type (optionally <code>null</code>)
     * @param size the company's account size (optionally <code>null</code>)
     * @return the company with the primary key
     */
    public Company updateCompany(long companyId, String virtualHostname, String mx, String homeURL, boolean hasLogo,
            byte[] logoBytes, String name, String legalName, String legalId, String legalType, String sicCode,
            String tickerSymbol, String industry, String type, String size) throws PortalException;

    /**
     * Update the company's display.
     *
     * @param companyId the primary key of the company
     * @param languageId the ID of the company's default user's language
     * @param timeZoneId the ID of the company's default user's time zone
     */
    public void updateDisplay(long companyId, String languageId, String timeZoneId) throws PortalException;

    @Async
    public void updateDisplayGroupNames(long companyId) throws PortalException;

    /**
     * Updates the company's logo.
     *
     * @param companyId the primary key of the company
     * @param bytes the bytes of the company's logo image
     * @return the company with the primary key
     */
    public Company updateLogo(long companyId, byte[] bytes) throws PortalException;

    /**
     * Updates the company's logo.
     *
     * @param companyId the primary key of the company
     * @param file the file of the company's logo image
     * @return the company with the primary key
     */
    public Company updateLogo(long companyId, File file) throws PortalException;

    /**
     * Update the company's logo.
     *
     * @param companyId the primary key of the company
     * @param is the input stream of the company's logo image
     * @return the company with the primary key
     */
    public Company updateLogo(long companyId, InputStream is) throws PortalException;

    /**
     * Updates the company's preferences. The company's default properties are
     * found in portal.properties.
     *
     * @param companyId the primary key of the company
     * @param properties the company's properties. See {@link UnicodeProperties}
     */
    public void updatePreferences(long companyId, UnicodeProperties properties) throws PortalException;

    /**
     * Updates the company's security properties.
     *
     * @param companyId the primary key of the company
     * @param authType the company's method of authenticating users
     * @param autoLogin whether to allow users to select the "remember me"
     feature
     * @param sendPassword whether to allow users to ask the company to send
     their password
     * @param strangers whether to allow strangers to create accounts register
     themselves in the company
     * @param strangersWithMx whether to allow strangers to create accounts with
     email addresses that match the company mail suffix
     * @param strangersVerify whether to require strangers who create accounts
     to be verified via email
     * @param siteLogo whether to allow site administrators to use their own
     logo instead of the enterprise logo
     */
    public void updateSecurity(long companyId, String authType, boolean autoLogin, boolean sendPassword,
            boolean strangers, boolean strangersWithMx, boolean strangersVerify, boolean siteLogo);

}