View Javadoc

1   /*
2    * This file is part of Domingo
3    * an Open Source Java-API to Lotus Notes/Domino
4    * hosted at http://domingo.sourceforge.net
5    *
6    * Copyright (c) 2003-2007 Beck et al. projects GmbH Munich, Germany (http://www.bea.de)
7    *
8    * This library is free software; you can redistribute it and/or
9    * modify it under the terms of the GNU Lesser General Public
10   * License as published by the Free Software Foundation; either
11   * version 2.1 of the License, or (at your option) any later version.
12   *
13   * This library is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   * Lesser General Public License for more details.
17   *
18   * You should have received a copy of the GNU Lesser General Public
19   * License along with this library; if not, write to the Free Software
20   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21   */
22  
23  package de.bea.domingo.map;
24  
25  import java.util.HashSet;
26  import java.util.Iterator;
27  import java.util.Set;
28  
29  import de.bea.domingo.DDocument;
30  
31  /***
32   * A set of mappers which itself is a mapper.
33   *
34   * @author <a href="mailto:kriede@users.sourceforge.net">Kurt Riede</a>
35   */
36  public abstract class MapperSet extends BaseDMapper {
37  
38      /*** Internal set of related mappers. */
39      private Set mappers = new HashSet();
40  
41      /***
42       * Adds the specified element to this set if it is not already present.
43       *
44       * @param mapper mapper to be added to the mapper set
45       * @return <tt>true</tt> if this mapper set did not already contain the
46       *         specified mapper.
47       *
48       * @see java.util.Set#add(java.lang.Object)
49       */
50      public final boolean add(final Mapper mapper) {
51          return mappers.add(mapper);
52      }
53  
54      /***
55       * {@inheritDoc}
56       * @see de.bea.domingo.map.Mapper#map(de.bea.domingo.DDocument,
57       *      java.lang.Object)
58       */
59      public final void map(final DDocument document, final Object object) throws MappingException {
60          Iterator iterator = mappers.iterator();
61          while (iterator.hasNext()) {
62              Mapper mapper = (Mapper) iterator.next();
63              mapper.map(document, object);
64          }
65      }
66  
67      /***
68       * {@inheritDoc}
69       * @see de.bea.domingo.map.Mapper#map(java.lang.Object,
70       *      de.bea.domingo.DDocument)
71       */
72      public final void map(final Object object, final DDocument document) throws MappingException {
73          Iterator iterator = mappers.iterator();
74          while (iterator.hasNext()) {
75              Mapper mapper = (Mapper) iterator.next();
76              mapper.map(object, document);
77          }
78      }
79  }