Package com.unboundid.ldap.sdk.persist
Annotation Type LDAPField
-
@Documented @Retention(RUNTIME) @Target(FIELD) public @interface LDAPField
This annotation type may be used to mark fields whose values should be persisted in an LDAP directory server. It should only be used for fields in classes that contain theLDAPObject
annotation type. Fields marked with this annotation type must be non-final and non-static, but they may have any access modifier (includingpublic
,protected
,private
, or no access modifier at all indicating package-level access). The associated attribute must not be referenced by any otherLDAPField
annotation types.
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.String
attribute
The name of the attribute type in which the associated field will be stored in LDAP entries.java.lang.String[]
defaultDecodeValue
The string representations of the default values to assign to this field if there are no values for the associated attribute in the corresponding LDAP entry being used to initialize the object.java.lang.String[]
defaultEncodeValue
The string representations of the default values to use when adding an entry to the directory if this field has anull
value.java.lang.Class<? extends ObjectEncoder>
encoderClass
The class that provides the logic for encoding a field to an LDAP attribute, and for initializing a field from an LDAP attribute.boolean
failOnInvalidValue
Indicates whether attempts to initialize an object should fail if the LDAP attribute has a value that cannot be stored in the associated field.boolean
failOnTooManyValues
Indicates whether attempts to initialize an object should fail if the LDAP attribute has multiple values but the associated field can only hold a single value.FilterUsage
filterUsage
Indicates whether and under what circumstances the value of this field may be included in a search filter generated to search for entries that match the object.boolean
inAdd
Indicates whether this field should be included in the LDAP entry that is generated when adding a new instance of the associated object to the directory.boolean
inModify
Indicates whether this field should be examined and included in the set of LDAP modifications if it has been changed when modifying an existing instance of the associated object in the directory.boolean
inRDN
Indicates whether the value of this field should be included in the RDN of entries created from the associated object.boolean
lazilyLoad
Indicates whether this field should be lazily loaded, which means that the associated attribute will not be retrieved by default so this field will be uninitialized.java.lang.String[]
objectClass
The names of the object classes in which the associated attribute may be used.boolean
requiredForDecode
Indicates whether this field is required to be assigned a value in decode processing.boolean
requiredForEncode
Indicates whether this field is required to have a value for encode processing.
-
-
-
Element Detail
-
failOnInvalidValue
boolean failOnInvalidValue
Indicates whether attempts to initialize an object should fail if the LDAP attribute has a value that cannot be stored in the associated field. If this istrue
, then an exception will be thrown in such instances. If this isfalse
, then the field will remain uninitialized, and attempts to modify the corresponding entry in the directory may cause the existing values to be lost.- Returns:
true
if attempts to initialize an object should fail if the LDAP attribute has a value that cannot be stored in the associated field, orfalse
if not.
- Default:
- true
-
-
-
failOnTooManyValues
boolean failOnTooManyValues
Indicates whether attempts to initialize an object should fail if the LDAP attribute has multiple values but the associated field can only hold a single value. If this istrue
, then an exception will be thrown in such instances. If this isfalse
, then only the first value returned will be used, and attempts to modify the corresponding entry in the directory may cause those additional values to be lost.- Returns:
true
if attempts to initialize an object should fail if the LDAP attribute has multiple values but the associated field can only hold a single value, orfalse
if not.
- Default:
- true
-
-
-
inAdd
boolean inAdd
Indicates whether this field should be included in the LDAP entry that is generated when adding a new instance of the associated object to the directory. Note that any field which is to be included in entry RDNs will always be included in add operations regardless of the value of this element.- Returns:
true
if this field should be included in the LDAP entry that is generated when adding a new instance of the associated object to the directory, orfalse
if not.
- Default:
- true
-
-
-
inModify
boolean inModify
Indicates whether this field should be examined and included in the set of LDAP modifications if it has been changed when modifying an existing instance of the associated object in the directory. Note that any field which is to be included in entry RDNs will never be included in modify operations regardless of the value of this element.- Returns:
true
if this field should be examined and included in the set of LDAP modifications if it has been changed, orfalse
if not.
- Default:
- true
-
-
-
inRDN
boolean inRDN
Indicates whether the value of this field should be included in the RDN of entries created from the associated object. Any field which is to be included entry RDNs will be considered required for add operations regardless of the value of therequiredForEncode()
element of this annotation type, and will be included in add operations regardless of the value of theinAdd()
element.
When generating an entry DN, the persistence framework will construct an RDN using all fields marked withLDAPField
that haveinRDN=true
and all getter methods marked withLDAPGetter
that haveinRDN=true
. A class marked withLDAPObject
must either have at least oneLDAPField
orLDAPGetter
withinRDN=true
, or it must be a direct subclass of another class marked withLDAPObject
. If a class has one or more fields and/or getters withinRDN=true
, then only those fields/getters will be used to construct the RDN, even if that class is a direct subclass of another class marked withLDAPObject
.- Returns:
true
if the value of this field should be included in the RDN of entries created from the associated object, orfalse
if not.
- Default:
- false
-
-
-
lazilyLoad
boolean lazilyLoad
Indicates whether this field should be lazily loaded, which means that the associated attribute will not be retrieved by default so this field will be uninitialized. This may be useful for attributes which are not always needed and that may be expensive to retrieve or could require a lot of memory to hold. The contents of such fields may be loaded on demand if their values are needed. Fields marked for lazy loading will never be considered required for decoding, and they must not be given default values or marked for inclusion in entry RDNs.- Returns:
true
if this field should be lazily loaded, orfalse
if not.
- Default:
- false
-
-
-
requiredForDecode
boolean requiredForDecode
Indicates whether this field is required to be assigned a value in decode processing. If this istrue
, then attempts to initialize a Java object from an LDAP entry which does not contain a value for the associated attribute will result in an exception.- Returns:
true
if this field is required to be assigned a value in decode processing, orfalse
if not.
- Default:
- false
-
-
-
requiredForEncode
boolean requiredForEncode
Indicates whether this field is required to have a value for encode processing. If this istrue
, then attempts to construct an entry or set of modifications for an object that does not have a value for this field will result in an exception.- Returns:
true
if this field is required to have a value for encode processing, orfalse
if not.
- Default:
- false
-
-
-
encoderClass
java.lang.Class<? extends ObjectEncoder> encoderClass
The class that provides the logic for encoding a field to an LDAP attribute, and for initializing a field from an LDAP attribute.- Returns:
- The encoder class for the field.
- Default:
- com.unboundid.ldap.sdk.persist.DefaultObjectEncoder.class
-
-
-
filterUsage
FilterUsage filterUsage
Indicates whether and under what circumstances the value of this field may be included in a search filter generated to search for entries that match the object.- Returns:
- The filter usage value for this field.
- Default:
- com.unboundid.ldap.sdk.persist.FilterUsage.CONDITIONALLY_ALLOWED
-
-
-
attribute
java.lang.String attribute
The name of the attribute type in which the associated field will be stored in LDAP entries. If no value is provided, then it will be assumed that the LDAP attribute name matches the name of the associated field.- Returns:
- The name of the attribute type in which the associated field will be stored in LDAP entries, or an empty string if the attribute name should match the name of the associated field.
- Default:
- ""
-
-
-
defaultDecodeValue
java.lang.String[] defaultDecodeValue
The string representations of the default values to assign to this field if there are no values for the associated attribute in the corresponding LDAP entry being used to initialize the object. If no default values are defined, then an exception will be thrown if the field isrequiredForEncode()
, or the field will be set tonull
if it is not required.- Returns:
- The string representations of the default values to assign to this field if there are no values for the associated attribute in the corresponding LDAP entry, or an empty array if there should not be any default values.
- Default:
- {}
-
-
-
defaultEncodeValue
java.lang.String[] defaultEncodeValue
The string representations of the default values to use when adding an entry to the directory if this field has anull
value.- Returns:
- The string representations of the default values to use when
adding an entry to the directory if this field has a
null
value, or an empty array if there should not be any default values.
- Default:
- {}
-
-
-
objectClass
java.lang.String[] objectClass
The names of the object classes in which the associated attribute may be used. This is primarily intended for use in generating LDAP schema from Java object types.
Values may include any combination of the structural and/or auxiliary object classes named in theLDAPObject
annotation type for the associated class. If no values are provided, then it will be assumed to be only included in the structural object class.- Returns:
- The names of the object classes in which the associated attribute may be used, or an empty array if it should be assumed to only be included in the structural object class.
- Default:
- {}
-
-