2
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4
* Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
6
* The contents of this file are subject to the terms of either the GNU
7
* General Public License Version 2 only ("GPL") or the Common
8
* Development and Distribution License("CDDL") (collectively, the
9
* "License"). You may not use this file except in compliance with the
10
* License. You can obtain a copy of the License at
11
* http://www.netbeans.org/cddl-gplv2.html
12
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
* specific language governing permissions and limitations under the
14
* License. When distributing the software, include this License Header
15
* Notice in each file and include the License file at
16
* nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
17
* particular file as subject to the "Classpath" exception as provided
18
* by Sun in the GPL Version 2 section of the License file that
19
* accompanied this code. If applicable, add the following below the
20
* License Header, with the fields enclosed by brackets [] replaced by
21
* your own identifying information:
22
* "Portions Copyrighted [year] [name of copyright owner]"
26
* The Original Software is NetBeans. The Initial Developer of the Original
27
* Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
28
* Microsystems, Inc. All Rights Reserved.
30
* If you wish your version of this file to be governed by only the CDDL
31
* or only the GPL Version 2, indicate your decision by adding
32
* "[Contributor] elects to include this software in this distribution
33
* under the [CDDL or GPL Version 2] license." If you do not indicate a
34
* single choice of license, a recipient has the option to distribute
35
* your version of this file under either the CDDL, the GPL Version 2 or
36
* to extend the choice of license to its licensees as provided above.
37
* However, if you add GPL Version 2 code and therefore, elected the GPL
38
* Version 2 license, then the option applies only if the new code is
39
* made subject to such option by the copyright holder.
41
package org.netbeans.modules.xml.catalog.spi;
46
* An interface to catalog content reader.
47
* An implementation is responsible for reading catalog content (mappings).
49
* Implementation class should provide its BeanInfo describing it.
50
* <p>Should also implement {@link CatalogDescriptor} and may also implement
51
* {@link CatalogWriter} and/or {@link org.xml.sax.EntityResolver} as needed.</p>
55
public interface CatalogReader {
58
* Get String iterator representing all public IDs registered in catalog.
59
* @return null if cannot proceed, try later.
61
public Iterator getPublicIDs();
64
* Refresh content according to content of mounted catalog.
66
public void refresh();
69
* Get registered systemid for given public Id or null if not registered.
70
* @return null if not registered
72
public String getSystemID(String publicId);
74
* Get registered URI for the given name or null if not registered.
75
* @return null if not registered
77
public String resolveURI(String name);
79
* Get registered URI for the given publicId or null if not registered.
80
* @return null if not registered
82
public String resolvePublic(String publicId);
84
* Optional operation allowing to listen at catalog for changes.
85
* @throws UnsupportedOpertaionException if not supported by the implementation.
87
public void addCatalogListener(CatalogListener l);
90
* Optional operation couled with addCatalogListener.
91
* @throws UnsupportedOpertaionException if not supported by the implementation.
93
public void removeCatalogListener(CatalogListener l);