Class AttributeBuilder
- java.lang.Object
-
- org.identityconnectors.framework.common.objects.AttributeBuilder
-
public final class AttributeBuilder extends Object
Simplifies constructing instances ofAttribute
. AConnector
developer does not need to implement theAttribute
interface. The builder returns an instance of an implementation ofAttribute
that overrides the methodsequals()
,hashcode()
andtoString()
to provide a uniform and robust class. This implementation is backed by anArrayList
that contains the values and preserves the order of those values (in case the order of values is significant to the target system or application).- Since:
- 1.0
- Author:
- Will Droste
-
-
Constructor Summary
Constructors Constructor Description AttributeBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeBuilder
addValue(Object... objs)
Add each of the specified objects as a values for the attribute that is being built.AttributeBuilder
addValue(Collection<?> obj)
Adds each object in the collection as a value for the attribute that is being built.Attribute
build()
static Attribute
build(String name)
Creates a attribute with the specified name and anull
value.static Attribute
build(String name, Object... args)
Creates anAttribute
with the name and the values provided.static Attribute
build(String name, Collection<?> obj)
Creates anAttribute
with the name and the values provided.static Attribute
buildCurrentPassword(char[] password)
Builds an operational attribute that represents the current password of an object on a target system or application.static Attribute
buildCurrentPassword(GuardedString password)
Builds an operational attribute that represents the current password of an object on a target system or application.static Attribute
buildDisableDate(long date)
Builds an operational attribute that represents the date and time to disable an object on a target system or application.static Attribute
buildDisableDate(Date date)
Builds an operational attribute that represents the date and time to disable an object on a target system or application.static Attribute
buildEnabled(boolean value)
Builds an operational attribute that represents whether object is enabled on a target system or application.static Attribute
buildEnableDate(long date)
Builds an operational attribute that represents the date and time to enable an object on a target system or application.static Attribute
buildEnableDate(Date date)
Builds an operational attribute that represents the date and time to enable an object on a target system or application.static Attribute
buildLastLoginDate(long date)
Builds an pre-defined attribute that represents the date and time of the most recent login for an object (such as an account) on a target system or application.static Attribute
buildLastLoginDate(Date date)
Builds an pre-defined attribute that represents the date and time of the most recent login for an object (such as an account) on a target system or application.static Attribute
buildLastPasswordChangeDate(long date)
Builds an pre-defined attribute that represents the date and time that the password was most recently changed for an object (such as an account) on a target system or application.static Attribute
buildLastPasswordChangeDate(Date date)
Builds an pre-defined attribute that represents the date and time that the password was most recently changed for an object (such as an account) on a target system or application.static Attribute
buildLockOut(boolean lock)
Builds an operational attribute that represents whether an object is locked out on a target system or application.static Attribute
buildPassword(char[] password)
Builds an operational attribute that represents the password of an object on a target system or application.static Attribute
buildPassword(GuardedString password)
Builds an operational attribute that represents the password of an object on a target system or application.static Attribute
buildPasswordChangeInterval(long value)
Builds an pre-defined attribute that represents how often the password must be changed for an object (such as an account) on a target system or application.static Attribute
buildPasswordExpirationDate(long dateTime)
Builds an operational attribute that represents the date/time that a password will expire on a target system or application.static Attribute
buildPasswordExpirationDate(Date dateTime)
Builds an operational attribute that represents the date and time that a password will expire on a target system or application.static Attribute
buildPasswordExpired(boolean value)
Builds an operational attribute that represents whether the password of an object is expired on a target system or application.AttributeValueCompleteness
getAttributeValueCompleteness()
String
getName()
Get the name of the attribute that is being built.List<Object>
getValue()
Return any current value of the attribute that is being built.void
setAttributeValueCompleteness(AttributeValueCompleteness attributeValueCompleteness)
AttributeBuilder
setName(String name)
Set the name of the attribute that is being built.
-
-
-
Method Detail
-
build
public static Attribute build(String name)
Creates a attribute with the specified name and anull
value.- Parameters:
name
- unique name of the attribute.- Returns:
- instance of
Attribute
with anull
value.
-
build
public static Attribute build(String name, Object... args)
Creates anAttribute
with the name and the values provided.- Parameters:
name
- unique name of the attribute.args
- variable number of arguments that are used as values for the attribute.- Returns:
- instance of
Attribute
with the specified name and a value that includes the arguments provided.
-
build
public static Attribute build(String name, Collection<?> obj)
Creates anAttribute
with the name and the values provided.- Parameters:
name
- unique name of the attribute.obj
- a collection of objects that are used as values for the attribute.- Returns:
- instance of
Attribute
with the specified name and a value that includes the arguments provided.
-
getName
public String getName()
Get the name of the attribute that is being built.- Returns:
- The name of the attribute.
-
setName
public AttributeBuilder setName(String name)
Set the name of the attribute that is being built.- Throws:
IllegalArgumentException
- if the name parameter is blank.
-
getValue
public List<Object> getValue()
Return any current value of the attribute that is being built.- Returns:
- any current value of the attribute that is being built.
-
addValue
public AttributeBuilder addValue(Object... objs)
Add each of the specified objects as a values for the attribute that is being built.- Parameters:
objs
- the values to add- Throws:
NullPointerException
- if any of the values is null.
-
addValue
public AttributeBuilder addValue(Collection<?> obj)
Adds each object in the collection as a value for the attribute that is being built.- Parameters:
obj
- the values to add- Throws:
NullPointerException
- if any of the values is null.
-
build
public Attribute build()
- Returns:
- a new attribute with the name and any values that have been provided to the builder.
- Throws:
IllegalArgumentException
- if no name has been provided.
-
getAttributeValueCompleteness
public AttributeValueCompleteness getAttributeValueCompleteness()
-
setAttributeValueCompleteness
public void setAttributeValueCompleteness(AttributeValueCompleteness attributeValueCompleteness)
-
buildPasswordExpirationDate
public static Attribute buildPasswordExpirationDate(Date dateTime)
Builds an operational attribute that represents the date and time that a password will expire on a target system or application.- Parameters:
dateTime
- UTC time in milliseconds.- Returns:
- an
Attribute
with the pre-defined name for password expiration date.
-
buildPasswordExpirationDate
public static Attribute buildPasswordExpirationDate(long dateTime)
Builds an operational attribute that represents the date/time that a password will expire on a target system or application.- Parameters:
dateTime
- UTC time in milliseconds.- Returns:
- an
Attribute
with the pre-defined name for password expiration date.
-
buildPassword
public static Attribute buildPassword(GuardedString password)
Builds an operational attribute that represents the password of an object on a target system or application.- Parameters:
password
- the string that represents a password.- Returns:
- an
Attribute
with the predefined name for password.
-
buildPassword
public static Attribute buildPassword(char[] password)
Builds an operational attribute that represents the password of an object on a target system or application.The caller is responsible for clearing out the array of characters.
- Parameters:
password
- the characters that represent a password.- Returns:
- an
Attribute
with the predefined name for password.
-
buildCurrentPassword
public static Attribute buildCurrentPassword(GuardedString password)
Builds an operational attribute that represents the current password of an object on a target system or application.Passing the current password indicates the account owner (and not an administrator) is changing the password. The use case is that an administrator password change may not keep history or validate against policy.
- Parameters:
password
- the string that represents a password.- Returns:
- an
Attribute
with the predefined name for current password.
-
buildCurrentPassword
public static Attribute buildCurrentPassword(char[] password)
Builds an operational attribute that represents the current password of an object on a target system or application.Passing the current password indicates the account owner (and not an administrator) is changing the password. The use case is that an administrator password change may not keep history or validate against policy.
The caller is responsible for clearing out the array of characters.
- Parameters:
password
- the characters that represent a password.- Returns:
- an
Attribute
with the predefined name for current password.
-
buildEnabled
public static Attribute buildEnabled(boolean value)
Builds an operational attribute that represents whether object is enabled on a target system or application.- Use this attribute with
CreateApiOp
orUpdateApiOp
to enable or disable an object. - Read this attribute from
GetApiOp
to determine whether an object currently is enabled or disabled. - Use this attribute with
SearchApiOp
to select objects that are enabled or to select objects that are disabled.
- Parameters:
value
- true indicates the object is enabled; otherwise false.- Returns:
- an
Attribute
with the predefined name for enabled.
- Use this attribute with
-
buildEnableDate
public static Attribute buildEnableDate(Date date)
Builds an operational attribute that represents the date and time to enable an object on a target system or application.- Use this attribute with
CreateApiOp
orUpdateApiOp
to set a date and time to enable an object. - Read this attribute from
GetApiOp
to determine when an object will be enabled. - Use this attribute with
SearchApiOp
to select objects that are scheduled to be enabled at a certain date and time.
- Parameters:
date
- The date and time to enable a particular object.- Returns:
- an
Attribute
with the predefined name for enable date.
- Use this attribute with
-
buildEnableDate
public static Attribute buildEnableDate(long date)
Builds an operational attribute that represents the date and time to enable an object on a target system or application. The date-and-time parameter is UTC in milliseconds.- Use this attribute with
CreateApiOp
orUpdateApiOp
to set a date and time to enable an object. - Read this attribute from
GetApiOp
to determine when an object will be enabled. - Use this attribute with
SearchApiOp
to select objects that are scheduled to be enabled at a certain date and time.
- Parameters:
date
- The date and time (UTC in milliseconds) to enable a particular object.- Returns:
- an
Attribute
with the predefined name for enable date.
- Use this attribute with
-
buildDisableDate
public static Attribute buildDisableDate(Date date)
Builds an operational attribute that represents the date and time to disable an object on a target system or application.- Use this attribute with
CreateApiOp
orUpdateApiOp
to set a date and time to disable an object. - Read this attribute from
GetApiOp
to determine when an object will be disabled. - Use this attribute with
SearchApiOp
to select objects that are scheduled to be disabled at a certain date and time.
- Parameters:
date
- The date and time to disable a particular object.- Returns:
- an
Attribute
with the predefined name for disable date.
- Use this attribute with
-
buildDisableDate
public static Attribute buildDisableDate(long date)
Builds an operational attribute that represents the date and time to disable an object on a target system or application. The date-and-time parameter is UTC in milliseconds.- Use this attribute with
CreateApiOp
orUpdateApiOp
to set a date and time to disable an object. - Read this attribute from
GetApiOp
to determine when an object will be disabled. - Use this attribute with
SearchApiOp
to select objects that are scheduled to be disabled at a certain date and time.
- Parameters:
date
- The date and time (UTC in milliseconds) to disable a particular object.- Returns:
- an
Attribute
with the predefined name for disable date.
- Use this attribute with
-
buildLockOut
public static Attribute buildLockOut(boolean lock)
Builds an operational attribute that represents whether an object is locked out on a target system or application.- Read this attribute from
GetApiOp
to determine whether an object is currently locked out. - Use this attribute with
UpdateApiOp
to clear the lock-out status of an object (or to set the lock-out status of an object). - Use this attribute with
SearchApiOp
to select objects that are currently locked out (or to select objects that are not currently locked out).
- Parameters:
lock
- true if the object is locked out; otherwise false.- Returns:
- an
Attribute
with the predefined name for lockout state.
- Read this attribute from
-
buildPasswordExpired
public static Attribute buildPasswordExpired(boolean value)
Builds an operational attribute that represents whether the password of an object is expired on a target system or application.- Read this attribute from
GetApiOp
to determine whether the password of an object is currently expired. - Use this attribute with
UpdateApiOp
to expire the password of an object (or to clear the expired status of the password of an object). - Use this attribute with
SearchApiOp
to select objects that have passwords that are currently expired (or to select objects that have passwords that are not currently expired).
- Parameters:
value
- from the API true expires and from the SPI its shows its either expired or not.- Returns:
- an
Attribute
with the predefined name for password expiration state.
- Read this attribute from
-
buildLastLoginDate
public static Attribute buildLastLoginDate(Date date)
Builds an pre-defined attribute that represents the date and time of the most recent login for an object (such as an account) on a target system or application.- Parameters:
date
- The date and time of the last login.- Returns:
- an
Attribute
with the predefined name for password expiration state.
-
buildLastLoginDate
public static Attribute buildLastLoginDate(long date)
Builds an pre-defined attribute that represents the date and time of the most recent login for an object (such as an account) on a target system or application.The time parameter is UTC in milliseconds.
- Parameters:
date
- The date and time (UTC in milliseconds) of the last login.- Returns:
- an
Attribute
with the predefined name for password expiration state.
-
buildLastPasswordChangeDate
public static Attribute buildLastPasswordChangeDate(Date date)
Builds an pre-defined attribute that represents the date and time that the password was most recently changed for an object (such as an account) on a target system or application.- Parameters:
date
- The date and time that the password was most recently changed.- Returns:
- an
Attribute
with the predefined name for password expiration state.
-
buildLastPasswordChangeDate
public static Attribute buildLastPasswordChangeDate(long date)
Builds an pre-defined attribute that represents the date and time that the password was most recently changed for an object (such as an account) on a target system or application.The time parameter is UTC in milliseconds.
- Parameters:
date
- The date and time that the password was most recently changed.- Returns:
- an
Attribute
with the predefined name for password expiration state.
-
buildPasswordChangeInterval
public static Attribute buildPasswordChangeInterval(long value)
Builds an pre-defined attribute that represents how often the password must be changed for an object (such as an account) on a target system or application.The value for this attribute is expressed in milliseconds.
- Parameters:
value
- The number of milliseconds between the time that the password was most recently changed and the time when the password must be changed again.- Returns:
- an
Attribute
with the predefined name for password expiration state.
-
-