001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/search/CmsSearchIndexUpdateData.java,v $
003: * Date : $Date: 2008-02-27 12:05:39 $
004: * Version: $Revision: 1.5 $
005: *
006: * This library is part of OpenCms -
007: * the Open Source Content Management System
008: *
009: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
010: *
011: * This library is free software; you can redistribute it and/or
012: * modify it under the terms of the GNU Lesser General Public
013: * License as published by the Free Software Foundation; either
014: * version 2.1 of the License, or (at your option) any later version.
015: *
016: * This library is distributed in the hope that it will be useful,
017: * but WITHOUT ANY WARRANTY; without even the implied warranty of
018: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: * Lesser General Public License for more details.
020: *
021: * For further information about Alkacon Software, please see the
022: * company website: http://www.alkacon.com
023: *
024: * For further information about OpenCms, please see the
025: * project website: http://www.opencms.org
026: *
027: * You should have received a copy of the GNU Lesser General Public
028: * License along with this library; if not, write to the Free Software
029: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
030: */
031:
032: package org.opencms.search;
033:
034: import org.opencms.db.CmsPublishedResource;
035:
036: import java.util.ArrayList;
037: import java.util.List;
038:
039: /**
040: * A collection of resources for the incremental update of a search index.<p>
041: *
042: * @author Alexander Kandzior
043: *
044: * @version $Revision: 1.5 $
045: *
046: * @since 6.0.1
047: */
048: public class CmsSearchIndexUpdateData {
049:
050: /** The indexer of this update collection. */
051: private I_CmsIndexer m_indexer;
052:
053: /** List of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be deleted. */
054: private List m_resourcesToDelete;
055:
056: /** List of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be updated. */
057: private List m_resourcesToUpdate;
058:
059: /** The search index source of this update collection. */
060: private CmsSearchIndexSource m_source;
061:
062: /**
063: * Creates a new instance of an update collection.<p>
064: *
065: * @param source the search index source of this update collection
066: * @param indexer the indexer of this update collection
067: */
068: public CmsSearchIndexUpdateData(CmsSearchIndexSource source,
069: I_CmsIndexer indexer) {
070:
071: m_source = source;
072: m_indexer = indexer;
073: m_resourcesToDelete = new ArrayList();
074: m_resourcesToUpdate = new ArrayList();
075: }
076:
077: /**
078: * Adds the given resource to the resources that must be deleted from the search index.<p>
079: *
080: * @param resource the resource to add
081: */
082: public void addResourceToDelete(CmsPublishedResource resource) {
083:
084: m_resourcesToDelete.add(resource);
085: }
086:
087: /**
088: * Adds the given resource to the resources that must be updated in the search index.<p>
089: *
090: * @param resource the resource to add
091: */
092: public void addResourceToUpdate(CmsPublishedResource resource) {
093:
094: m_resourcesToUpdate.add(resource);
095: }
096:
097: /**
098: * Returns the indexer of this update collection.<p>
099: *
100: * @return the indexer of this update collection
101: */
102: public I_CmsIndexer getIndexer() {
103:
104: return m_indexer;
105: }
106:
107: /**
108: * Returns the list of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be deleted.<p>
109: *
110: * @return the list of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be deleted
111: */
112: public List getResourcesToDelete() {
113:
114: return m_resourcesToDelete;
115: }
116:
117: /**
118: * Returns the list of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be updated.<p>
119: *
120: * @return the list of <code>{@link org.opencms.db.CmsPublishedResource}</code> instances that must be updated
121: */
122: public List getResourcesToUpdate() {
123:
124: return m_resourcesToUpdate;
125: }
126:
127: /**
128: * Returns the search index source of this update collection.<p>
129: *
130: * @return the search index source of this update collection
131: */
132: public CmsSearchIndexSource getSource() {
133:
134: return m_source;
135: }
136:
137: /**
138: * Returns <code>true</code> if this collections contains resources to delete.<p>
139: *
140: * @return <code>true</code> if this collections contains resources to delete
141: */
142: public boolean hasResourcesToDelete() {
143:
144: return !m_resourcesToDelete.isEmpty();
145: }
146:
147: /**
148: * Returns <code>true</code> if this collections contains resources to update.<p>
149: *
150: * @return <code>true</code> if this collections contains resources to update
151: */
152: public boolean hasResourceToUpdate() {
153:
154: return !m_resourcesToUpdate.isEmpty();
155: }
156:
157: /**
158: * Returns <code>true</code> if this collections contains no resources to update or delete.<p>
159: *
160: * @return <code>true</code> if this collections contains no resources to update or delete
161: */
162: public boolean isEmpty() {
163:
164: return m_resourcesToDelete.isEmpty()
165: && m_resourcesToUpdate.isEmpty();
166: }
167: }
|