/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2002 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.openide.loaders;
import org.openide.nodes.Node;
import org.openide.util.Lookup;
/** Provisional mechanism for displaying the Repository object.
* It will show all filesystems, possibly with a filter.
* @author Jesse Glick
* @since 3.14
*/
public abstract class RepositoryNodeFactory {
/** Get the default factory.
* @return the default instance from lookup
*/
public static RepositoryNodeFactory getDefault() {
return (RepositoryNodeFactory)Lookup.getDefault().lookup(RepositoryNodeFactory.class);
}
/** Subclass constructor. */
protected RepositoryNodeFactory() {}
/** Create a node representing a subset of the repository of filesystems.
* You may filter out certain data objects.
* If you do not wish to filter out anything, just use {@link DataFilter#ALL}.
* Nodes might be reused between calls, so if you plan to add this node to a
* parent, clone it first.
* @param f a filter
* @return a node showing part of the repository
*/
public abstract Node repository(DataFilter f);
}