001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.exportimport.lar;
016    
017    import com.liferay.portal.kernel.util.AutoResetThreadLocal;
018    
019    /**
020     * @author Michael C. Han
021     */
022    public class ExportImportThreadLocal {
023    
024            public static boolean isDataDeletionImportInProcess() {
025                    if (isLayoutDataDeletionImportInProcess() ||
026                            isPortletDataDeletionImportInProcess()) {
027    
028                            return true;
029                    }
030    
031                    return false;
032            }
033    
034            public static boolean isExportInProcess() {
035                    if (isLayoutExportInProcess() || isPortletExportInProcess()) {
036                            return true;
037                    }
038    
039                    return false;
040            }
041    
042            public static boolean isImportInProcess() {
043                    if (isDataDeletionImportInProcess() || isLayoutImportInProcess() ||
044                            isLayoutValidationInProcess() || isPortletImportInProcess() ||
045                            isPortletValidationInProcess()) {
046    
047                            return true;
048                    }
049    
050                    return false;
051            }
052    
053            public static boolean isLayoutDataDeletionImportInProcess() {
054                    return _layoutDataDeletionImportInProcess.get();
055            }
056    
057            public static boolean isLayoutExportInProcess() {
058                    return _layoutExportInProcess.get();
059            }
060    
061            public static boolean isLayoutImportInProcess() {
062                    return _layoutImportInProcess.get();
063            }
064    
065            public static boolean isLayoutStagingInProcess() {
066                    return _layoutStagingInProcess.get();
067            }
068    
069            public static boolean isLayoutValidationInProcess() {
070                    return _layoutValidationInProcess.get();
071            }
072    
073            public static boolean isPortletDataDeletionImportInProcess() {
074                    return _portletDataDeletionImportInProcess.get();
075            }
076    
077            public static boolean isPortletExportInProcess() {
078                    return _portletExportInProcess.get();
079            }
080    
081            public static boolean isPortletImportInProcess() {
082                    return _portletImportInProcess.get();
083            }
084    
085            public static boolean isPortletStagingInProcess() {
086                    return _portletStagingInProcess.get();
087            }
088    
089            public static boolean isPortletValidationInProcess() {
090                    return _portletValidationInProcess.get();
091            }
092    
093            public static boolean isStagingInProcess() {
094                    if (isLayoutStagingInProcess() || isPortletStagingInProcess()) {
095                            return true;
096                    }
097    
098                    return false;
099            }
100    
101            public static void setLayoutDataDeletionImportInProcess(
102                    boolean layoutDataDeletionImportInProcess) {
103    
104                    _layoutDataDeletionImportInProcess.set(
105                            layoutDataDeletionImportInProcess);
106            }
107    
108            public static void setLayoutExportInProcess(boolean layoutExportInProcess) {
109                    _layoutExportInProcess.set(layoutExportInProcess);
110            }
111    
112            public static void setLayoutImportInProcess(boolean layoutImportInProcess) {
113                    _layoutImportInProcess.set(layoutImportInProcess);
114            }
115    
116            public static void setLayoutStagingInProcess(
117                    boolean layoutStagingInProcess) {
118    
119                    _layoutStagingInProcess.set(layoutStagingInProcess);
120            }
121    
122            public static void setLayoutValidationInProcess(
123                    boolean layoutValidationInProcess) {
124    
125                    _layoutValidationInProcess.set(layoutValidationInProcess);
126            }
127    
128            public static void setPortletDataDeletionImportInProcess(
129                    boolean portletDataDeletionImportInProcess) {
130    
131                    _portletDataDeletionImportInProcess.set(
132                            portletDataDeletionImportInProcess);
133            }
134    
135            public static void setPortletExportInProcess(
136                    boolean portletExportInProcess) {
137    
138                    _portletExportInProcess.set(portletExportInProcess);
139            }
140    
141            public static void setPortletImportInProcess(
142                    boolean portletImportInProcess) {
143    
144                    _portletImportInProcess.set(portletImportInProcess);
145            }
146    
147            public static void setPortletStagingInProcess(
148                    boolean portletStagingInProcess) {
149    
150                    _portletStagingInProcess.set(portletStagingInProcess);
151            }
152    
153            public static void setPortletValidationInProcess(
154                    boolean portletValidationInProcess) {
155    
156                    _portletValidationInProcess.set(portletValidationInProcess);
157            }
158    
159            private static final ThreadLocal<Boolean>
160                    _layoutDataDeletionImportInProcess = new AutoResetThreadLocal<>(
161                            ExportImportThreadLocal.class +
162                                    "._layoutDataDeletionImportInProcess",
163                            false);
164            private static final ThreadLocal<Boolean> _layoutExportInProcess =
165                    new AutoResetThreadLocal<>(
166                            ExportImportThreadLocal.class + "._layoutExportInProcess", false);
167            private static final ThreadLocal<Boolean> _layoutImportInProcess =
168                    new AutoResetThreadLocal<>(
169                            ExportImportThreadLocal.class + "._layoutImportInProcess", false);
170            private static final ThreadLocal<Boolean> _layoutStagingInProcess =
171                    new AutoResetThreadLocal<>(
172                            ExportImportThreadLocal.class + "._layoutStagingInProcess", false);
173            private static final ThreadLocal<Boolean> _layoutValidationInProcess =
174                    new AutoResetThreadLocal<>(
175                            ExportImportThreadLocal.class + "._layoutValidationInProcess",
176                            false);
177            private static final ThreadLocal<Boolean>
178                    _portletDataDeletionImportInProcess = new AutoResetThreadLocal<>(
179                            ExportImportThreadLocal.class +
180                                    "._portletDataDeletionImportInProcess",
181                            false);
182            private static final ThreadLocal<Boolean> _portletExportInProcess =
183                    new AutoResetThreadLocal<>(
184                            ExportImportThreadLocal.class + "._portletExportInProcess", false);
185            private static final ThreadLocal<Boolean> _portletImportInProcess =
186                    new AutoResetThreadLocal<>(
187                            ExportImportThreadLocal.class + "._portletImportInProcess", false);
188            private static final ThreadLocal<Boolean> _portletStagingInProcess =
189                    new AutoResetThreadLocal<>(
190                            ExportImportThreadLocal.class + "._portletStagingInProcess", false);
191            private static final ThreadLocal<Boolean> _portletValidationInProcess =
192                    new AutoResetThreadLocal<>(
193                            ExportImportThreadLocal.class + "._portletValidationInProcess",
194                            false);
195    
196    }