/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* 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 the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>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.apereo.portal.layout.om;
import java.util.Collection;
import java.util.Map;
import javax.xml.transform.Transformer;
import org.apereo.portal.io.xml.IPortalData;
import org.apereo.portal.url.IUrlNodeSyntaxHelper;
import org.apereo.portal.url.IUrlNodeSyntaxHelperRegistry;
/**
* Describes a XSL Stylesheet used in the rendering pipeline
*
*/
public interface IStylesheetDescriptor extends IPortalData {
/** @return Unique ID of the descriptor */
public long getId();
/** Unique, human readable name of the stylesheet */
public String getName();
/** Optional description of the stylesheet */
public void setDescription(String description);
/** Optional description of the stylesheet */
public String getDescription();
/**
* Resource string used to locate the XSLT Stylesheet Must be a valid Spring Resource string
* http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/resources.html#resources-resource-strings
*/
public void setStylesheetResource(String stylesheetResource);
/** Resource string used to locate the XSLT Stylesheet */
public String getStylesheetResource();
/**
* The name of the {@link IUrlNodeSyntaxHelper} as it is registered in the {@link
* IUrlNodeSyntaxHelperRegistry}, can be null if no {@link IUrlNodeSyntaxHelper} is associated
* with this stylesheet.
*/
public void setUrlNodeSyntaxHelperName(String urlNodeSyntaxHelperName);
/**
* @return The name of the {@link IUrlNodeSyntaxHelper} as it is registered in the {@link
* IUrlNodeSyntaxHelperRegistry}, can be null if no {@link IUrlNodeSyntaxHelper} is
* associated with this stylesheet.
*/
public String getUrlNodeSyntaxHelperName();
/**
* Output properties to use on the {@link Transformer} for the stylesheet this defines The
* returned Map is read-only
*/
public Collection<IOutputPropertyDescriptor> getOutputPropertyDescriptors();
public void setOutputPropertyDescriptors(
Collection<IOutputPropertyDescriptor> outputPropertyDescriptors);
/** @see Map#get(Object) */
public IOutputPropertyDescriptor getOutputPropertyDescriptor(String name);
/**
* Parameters to use on the {@link Transformer} for the stylesheet this defines The returned Map
* is read-only
*/
public Collection<IStylesheetParameterDescriptor> getStylesheetParameterDescriptors();
public void setStylesheetParameterDescriptors(
Collection<IStylesheetParameterDescriptor> stylesheetParameterDescriptors);
/** @see Map#get(Object) */
public IStylesheetParameterDescriptor getStylesheetParameterDescriptor(String name);
/**
* Attributes to be added to layout elements prior to transformation by the stylesheet this
* defines The returned Map is read-only
*/
public Collection<ILayoutAttributeDescriptor> getLayoutAttributeDescriptors();
public void setLayoutAttributeDescriptors(
Collection<ILayoutAttributeDescriptor> layoutAttributeDescriptors);
/** @see Map#get(Object) */
public ILayoutAttributeDescriptor getLayoutAttributeDescriptor(String name);
}