KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > api > metadata > common > service > impl > hibernate > HibernateResourceDeleteListener


1 /*
2  * Copyright (C) 2006 JasperSoft http://www.jaspersoft.com
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed WITHOUT ANY WARRANTY; and without the
10  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
15  * or write to:
16  *
17  * Free Software Foundation, Inc.,
18  * 59 Temple Place - Suite 330,
19  * Boston, MA USA 02111-1307
20  */

21 package com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate;
22
23 import java.util.Iterator JavaDoc;
24 import java.util.List JavaDoc;
25
26 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryEventListener;
27 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryEventListenerRegistry;
28 import com.jaspersoft.jasperserver.api.metadata.common.service.ResourceFactory;
29 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateDeleteListener;
30 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoResource;
31
32 /**
33  * @author Lucian Chirita (lucianc@users.sourceforge.net)
34  * @version $Id: HibernateResourceDeleteListener.java 3804 2006-06-22 12:49:51Z lucian $
35  */

36 public class HibernateResourceDeleteListener implements HibernateDeleteListener, RepositoryEventListenerRegistry {
37     
38     private ResourceFactory persistentClassMappings;
39     private List JavaDoc listeners;
40
41     public List JavaDoc getListeners() {
42         return listeners;
43     }
44
45     public void setListeners(List JavaDoc listeners) {
46         this.listeners = listeners;
47     }
48     
49     public void registerListener(RepositoryEventListener listener) {
50         this.listeners.add(listener);
51     }
52     
53     public void deregisterListener(RepositoryEventListener listener) {
54         this.listeners.remove(listener);
55     }
56
57     public ResourceFactory getPersistentClassMappings() {
58         return persistentClassMappings;
59     }
60
61     public void setPersistentClassMappings(ResourceFactory persistentClassMappings) {
62         this.persistentClassMappings = persistentClassMappings;
63     }
64
65     public void onDelete(Object JavaDoc o) {
66         if (o instanceof RepoResource) {
67             fireListeners((RepoResource) o);
68         }
69     }
70
71     protected void fireListeners(RepoResource resource) {
72         if (listeners != null && !listeners.isEmpty()) {
73             Class JavaDoc resourceItf = persistentClassMappings.getInterface(resource.getClass());
74             String JavaDoc resourceURI = resource.getResourceURI();
75             for (Iterator JavaDoc it = listeners.iterator(); it.hasNext();) {
76                 RepositoryEventListener listener = (RepositoryEventListener) it.next();
77                 fireListener(listener, resourceItf, resourceURI);
78             }
79         }
80     }
81
82     protected void fireListener(RepositoryEventListener listener, Class JavaDoc resourceItf, String JavaDoc resourceURI) {
83         listener.onResourceDelete(resourceItf, resourceURI);
84     }
85
86 }
87
Popular Tags