blob: ec11459e96bee92165e93aef342169a6e60660cf [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.netbeans.modules.xml.retriever;
import java.net.URI;
import org.openide.filesystems.FileObject;
/**
* The XMLCatalogProvider allows a {@link org.netbeans.api.project.Project} to
* convey information about the XML catalog file usage within the project.
* @see org.netbeans.api.project.Project#getLookup
* @author Chris Webster
* @author Girish
*/
public interface XMLCatalogProvider {
/**
* This constant identifies source roots which can be used to store
* retrieved XML artifacts.
*/
public static final String TYPE_RETRIEVED = "retrieved"; //NOI18N
/**
* Provide the project root relative reference to the catalog file
* for the specified XML artifact.
* @param targetFile represents the XML artifact which may require use of
* a catalog for resolution. The common case, a single project wide catalog
* file, would delegate to #getProjectWideCatalog().
* @return a URI representing the relative path from the project root to the
* catalog file (i.e. ./catalog.xml which is the default)
*/
URI getCatalog(FileObject targetFile);
/**
* Provide the project root relative reference to the catalog file
* @return a URI representing the relative path from the project root to the
* catalog file (i.e. ./catalog.xml which is the default)
*/
URI getProjectWideCatalog();
}