KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > editor > hyperlink > DefaultHyperlinkProviderManager


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.lib.editor.hyperlink;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.Collections JavaDoc;
24 import java.util.HashMap JavaDoc;
25 import java.util.List JavaDoc;
26 import java.util.Map JavaDoc;
27 import org.netbeans.lib.editor.hyperlink.spi.HyperlinkProvider;
28
29 /**
30  * Default implementation of the provider manager.
31  * <br>
32  * The default empty list of hyperlink providers
33  * can be extended by registering new ones for each mimetype.
34  *
35  * @author Miloslav Metelka
36  */

37 public class DefaultHyperlinkProviderManager extends HyperlinkProviderManager {
38
39     private Map JavaDoc mimeType2providerList = new HashMap JavaDoc();
40     
41     /**
42      * Register a new HyperlinkProvider.
43      *
44      * @param mimeType mime-type for which the provider is being registered.
45      * @param provider provider to register.
46      */

47     public synchronized void addHyperlinkProvider(String JavaDoc mimeType, HyperlinkProvider provider) {
48         getProviderList(mimeType, true).add(provider);
49     }
50     
51     /**
52      * Unregister a HyperlinkProvider.
53      *
54      * @param mimeType mime-type for which the provider is being unregistered.
55      * @param provider provider to unregister.
56      */

57     public synchronized void removeHyperlinkProvider(String JavaDoc mimeType, HyperlinkProvider provider) {
58         List JavaDoc providerList = getProviderList(mimeType, false);
59         if (providerList != null) {
60             providerList.remove(provider);
61         }
62     }
63     
64     public synchronized List JavaDoc/*<HyperlinkProvider>*/ getHyperlinkProviders(String JavaDoc mimeType) {
65         List JavaDoc providers = getProviderList(mimeType, false);
66         return (providers != null) ? providers : Collections.EMPTY_LIST;
67     }
68     
69     private List JavaDoc getProviderList(String JavaDoc mimeType, boolean forceCreation) {
70         List JavaDoc providerList = (List JavaDoc)mimeType2providerList.get(mimeType);
71         if (providerList == null && forceCreation) {
72             providerList = new ArrayList JavaDoc();
73             mimeType2providerList.put(mimeType, providerList);
74         }
75         return providerList;
76     }
77     
78 }
79
Popular Tags