001package org.andromda.core.namespace;
002
003import java.net.URL;
004
005/**
006 * This represents a component that can be discovered/registered within a namespace.
007 *
008 * @author Chad Brandon
009 */
010public interface NamespaceComponent
011{
012    /**
013     * Sets the namespace to which this component belongs.
014     *
015     * @param namespace the name of the namespace to which this component belongs.
016     */
017    public void setNamespace(String namespace);
018
019    /**
020     * Gets the namespace to which this component belongs.
021     *
022     * @return the name of the namespace.
023     */
024    public String getNamespace();
025
026    /**
027     * The entire path to the resource this namespace component instance
028     * is configured from.
029     *
030     * @return URL the path to the resource from which this namespace
031     *         component was configured.
032     */
033    public URL getResource();
034
035    /**
036     * Sets the path of the resource from which this namespace component is configured.
037     *
038     * @param resource the resource URL.
039     */
040    public void setResource(URL resource);
041}