
com.adobe.cq.editor.model.StyleSelector Maven / Gradle / Ivy
/*************************************************************************
* ADOBE CONFIDENTIAL
* __________________
*
* Copyright 2017 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
**************************************************************************/
package com.adobe.cq.editor.model;
import java.util.List;
import javax.annotation.Nullable;
import aQute.bnd.annotation.ProviderType;
import com.adobe.cq.wcm.style.StyleInfo;
/**
* Defines a {@code StyleSelector} Sling Model for determining component allowed style group items. To be used with
* the authoring style selector component.
*
* The component resource is resolved from the request {@code path} parameter. If unavailable, the request suffix is used.
*
* Allowed style groups can be set via the {@code cq:styleGroups} property of the content policy related to the component resource.
*
*/
@ProviderType
public interface StyleSelector {
/**
* Retrieves the list of style group items.
*
* @return the list of style group items, an empty list otherwise
*/
List getStyleGroups();
/**
* Retrieves the list of applied styles.
*
* @return the list of applied styles, an empty list otherwise
*/
List getAppliedStyles();
/**
* Retrieves the path to the resource for which we are retrieving style information.
*
* @return the path to the resource if defined, {@code null} otherwise
*/
@Nullable
String getPath();
/**
* Retrieves a form action for persisting style information, configured with a context path.
* The action differs for {@code com.day.cq.wcm.api.Page} resources, whereby the content resource is used.
*
* @return the form action if defined, {@code null} otherwise
*/
@Nullable
String getAction();
}