01: /*
02: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/staticexport/CmsAfterPublishMultiLanguageStaticExportHandler.java,v $
03: * Date : $Date: 2008-02-27 12:05:46 $
04: * Version: $Revision: 1.2 $
05: *
06: * This library is part of OpenCms -
07: * the Open Source Content Management System
08: *
09: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
10: *
11: * This library is free software; you can redistribute it and/or
12: * modify it under the terms of the GNU Lesser General Public
13: * License as published by the Free Software Foundation; either
14: * version 2.1 of the License, or (at your option) any later version.
15: *
16: * This library is distributed in the hope that it will be useful,
17: * but WITHOUT ANY WARRANTY; without even the implied warranty of
18: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19: * Lesser General Public License for more details.
20: *
21: * For further information about Alkacon Software GmbH, please see the
22: * company website: http://www.alkacon.com
23: *
24: * For further information about OpenCms, please see the
25: * project website: http://www.opencms.org
26: *
27: * You should have received a copy of the GNU Lesser General Public
28: * License along with this library; if not, write to the Free Software
29: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30: */
31:
32: package org.opencms.staticexport;
33:
34: import org.opencms.i18n.CmsLocaleManager;
35: import org.opencms.main.OpenCms;
36:
37: import java.io.File;
38: import java.util.ArrayList;
39: import java.util.Iterator;
40: import java.util.List;
41: import java.util.Locale;
42:
43: /**
44: * Extended after publish static export handler, supporting multi-language exports.<p>
45: *
46: * @author Michael Moossen
47: *
48: * @version $Revision: 1.2 $
49: *
50: * @since 7.0.3
51: *
52: * @see CmsAfterPublishStaticExportHandler
53: * @see I_CmsStaticExportHandler
54: */
55: public class CmsAfterPublishMultiLanguageStaticExportHandler extends
56: CmsAfterPublishStaticExportHandler {
57:
58: /** Cached locale matching rules. */
59: private static List m_rules;
60:
61: /**
62: * @see org.opencms.staticexport.CmsAfterPublishStaticExportHandler#getRelatedFilesToPurge(java.lang.String, java.lang.String)
63: */
64: protected List getRelatedFilesToPurge(String exportFileName,
65: String vfsName) {
66:
67: CmsStaticExportManager manager = OpenCms
68: .getStaticExportManager();
69: List result = new ArrayList();
70: if (m_rules == null) {
71: // get the locale matching rules
72: CmsLocaleManager locManager = OpenCms.getLocaleManager();
73: m_rules = new ArrayList();
74: Iterator itRules = manager.getRfsRules().iterator();
75: while (itRules.hasNext()) {
76: CmsStaticExportRfsRule rule = (CmsStaticExportRfsRule) itRules
77: .next();
78: Locale locale = CmsLocaleManager.getLocale(rule
79: .getName());
80: if (locManager.getDefaultLocales().contains(locale)) {
81: m_rules.add(rule);
82: }
83: }
84: }
85: // add paths for all possible locales
86: Iterator it = m_rules.iterator();
87: while (it.hasNext()) {
88: CmsStaticExportRfsRule rule = (CmsStaticExportRfsRule) it
89: .next();
90: result.add(new File(rule.getLocalizedRfsName(
91: exportFileName, File.separator)));
92: }
93: return result;
94: }
95: }
|