/**
 * <copyright>
 * </copyright>
 *
 * $Id: FaceletLibraryClassTagLib.java,v 1.1 2010/03/18 06:24:40 cbateman Exp $
 */
package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Facelet Library Class Tag Lib</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletLibraryClassTagLib#getLibraryClass <em>Library Class</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletTaglib_1_0Package#getFaceletLibraryClassTagLib()
 * @model
 * @generated
 */
public interface FaceletLibraryClassTagLib extends FaceletTaglibDefn
{
    /**
     * Returns the value of the '<em><b>Library Class</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Library Class</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Library Class</em>' attribute.
     * @see #setLibraryClass(String)
     * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletTaglib_1_0Package#getFaceletLibraryClassTagLib_LibraryClass()
     * @model
     * @generated
     */
    String getLibraryClass();

    /**
     * Sets the value of the '{@link org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib_1_0.FaceletLibraryClassTagLib#getLibraryClass <em>Library Class</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Library Class</em>' attribute.
     * @see #getLibraryClass()
     * @generated
     */
    void setLibraryClass(String value);

} // FaceletLibraryClassTagLib
