001package org.dcm4che3.conf.core.api;
002
003import java.lang.annotation.ElementType;
004import java.lang.annotation.Retention;
005import java.lang.annotation.RetentionPolicy;
006import java.lang.annotation.Target;
007
008/**
009 * Created by aprvf on 13/10/2014.
010 */
011@Deprecated
012@Retention(RetentionPolicy.RUNTIME)
013@Target({ElementType.TYPE,ElementType.FIELD})
014public @interface LDAP {
015
016    public static final String DEFAULT_DISTINGUISHING_FIELD = "cn";
017
018    String distinguishingField() default DEFAULT_DISTINGUISHING_FIELD;
019
020    /**
021     * Can be used on classes and on fields
022     * @return
023     */
024    boolean noContainerNode() default false;
025
026
027    String[] objectClasses() default {};
028
029
030
031    // needed if map entry value is a primitive
032    String mapValueAttribute() default "";
033
034    // needed if map entry value is a primitive
035    String mapEntryObjectClass() default "";
036
037    /**
038     * Applicable to EnumSet<some enum>. Triggers an alternative representation of EnumSets, instead of
039     *  enumField : [0,2]
040     * recognizes
041     * enumfield:{
042     *  OPT1 : TRUE,
043     *  OPT2 : FALSE,
044     *  OPT3 : TRUE
045     * }
046     *
047     * The array must contain property names that correspond to enum values in the right order and the enum representation MUST be ordinal for this property.
048     */
049    String[] booleanBasedEnumStorageOptions() default {};
050
051    /**
052     * Alternative property name that overrides the ConfigurableProperty's name when this property is stored in LDAP.
053     * @return
054     */
055    String overriddenName() default "";
056
057}