com.citytechinc.cq.component.annotations.widgets.AuthorizableAutocomplete Maven / Gradle / Ivy
package com.citytechinc.cq.component.annotations.widgets;
import com.citytechinc.cq.component.annotations.widgets.authorizable.AuthorizableSelector;
import com.citytechinc.cq.component.annotations.widgets.authorizable.AuthorizableUserFilter;
import com.citytechinc.cq.component.annotations.widgets.authorizable.AuthorizableValueType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* An autocomplete field that is designed to allow the user to pick the authorizable from suggested list.
*
* Represents widget of type granite/ui/components/coral/foundation/authorizable/autocomplete.
*/
@Retention(RetentionPolicy.CLASS)
@Target({ ElementType.FIELD, ElementType.METHOD })
public @interface AuthorizableAutocomplete {
/**
* A hint to the user of what can be entered in the field.
*/
String emptyText() default "";
/**
* The name of the validator to be applied. E.g. `foundation.jcr.name`.
*/
String[] validation() default {};
/**
* Indicates if the user is able to select multiple selections.
*/
boolean multiple() default false;
/**
* Indicates if the user must only select from the list of given options. If it is not forced, the user can enter
* arbitrary value.
*/
boolean forceSelection() default true;
/**
* The type of value to be submitted:
*
* - id Use authorizable ID
* - path Use authorizable home path
* - principalname Use principal name
*
*/
AuthorizableValueType valueType() default AuthorizableValueType.ID;
/**
* The selector of authorizable:
*
* - all Show all authorizables
* - user Show only users
* - group Show only groups
*
*/
AuthorizableSelector selector() default AuthorizableSelector.ALL;
/**
* Filter for service user:
*
* - off Turn off the filter to show all users
* - includeonly Include only the service users
* - exclude Exclude the service users
*
*/
AuthorizableUserFilter serviceUserFilter() default AuthorizableUserFilter.OFF;
/**
* Filter for impersonable user:
*
* - off Turn off the filter to show all users
* - includeonly Include only the users that can be impersonated by the current user
* - exclude Exclude the users that can be impersonated by the current user
*
*/
AuthorizableUserFilter impersonableUserFilter() default AuthorizableUserFilter.OFF;
}