Class PyUser
- java.lang.Object
-
- com.inductiveautomation.ignition.common.user.PyUser
-
- All Implemented Interfaces:
Countable
,Extendable<PropertySet>
,Mergable<PropertySet>
,MutablePropertyValueSource
,PropertySet
,PropertyValueSource
,User
,java.io.Serializable
,java.lang.Iterable<PropertyValue>
public class PyUser extends java.lang.Object implements User
A User implementation that delegates to another user object, but has some methods that are more scripting friendly.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface com.inductiveautomation.ignition.common.config.PropertySet
EMPTY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addContactInfo(java.lang.String contactType, java.lang.String value)
Convenience method for scripting to add a new contactInfo easily.void
addContactInfo(org.python.core.PyDictionary contactDictionary)
void
addRole(java.lang.String role)
Convenience method for scripting to add a new role easily.void
addRoles(java.util.Collection<java.lang.String> roles)
void
addScheduleAdjustment(java.util.Date start, java.util.Date end, boolean available, java.lang.String note)
Convenience method for scripting to add a new schedule adjustment easily.void
addScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)
boolean
contains(Property<?> prop)
<T> T
get(Property<T> prop)
Retrieves the value of the property, or null if this set doesn't contain that property.java.lang.Object
get(java.lang.String propertyName)
java.util.List<ContactInfo>
getContactInfo()
Returns all of the contact information for the userint
getCount()
java.io.Serializable
getId()
An opaque identifier that can be used to identify this user.<T> T
getOrDefault(Property<T> prop)
<T> T
getOrElse(Property<T> property, T value)
Get the value for a givenProperty
, or else fall back to value if it's not present.QualifiedPath
getPath()
Generate an path that unambiguously references this userjava.lang.String
getProfileName()
The name of the user management profile this user was retrieved from.java.util.Collection<Property<?>>
getProperties()
java.util.Collection<java.lang.String>
getRoles()
Returns all of the roles this user is a has.java.util.List<ScheduleAdjustment>
getScheduleAdjustments()
Returns all of this user's upcoming schedule adjustmentsjava.util.List<PropertyValue>
getValues()
Returns the opaque PropertyValue objects.boolean
isExtended(Property<?> prop)
Returns whether this property set contains a value for the prop, and the prop was actually inherited.boolean
isInherited(Property<?> prop)
Indicates whether the property was inherited from a parent type.java.util.Iterator<PropertyValue>
iterator()
void
merge(PropertySet other, boolean localOnly)
Merges the values from other collection into this one.void
remove(Property<?> prop)
void
removeContactInfo(java.lang.String contactType, java.lang.String value)
void
removeRole(java.lang.String role)
void
removeScheduleAdjustment(java.util.Date start, java.util.Date end, boolean available, java.lang.String note)
<T> void
set(Property<T> prop, T value)
void
set(PropertyValue propValue)
void
set(java.lang.String propertyName, java.lang.Object propValue)
void
setContactInfo(java.util.List<ContactInfo> contactInfo)
void
setRoles(java.util.Collection<java.lang.String> roles)
void
setScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)
java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.inductiveautomation.ignition.common.config.PropertySet
extend, getExtension, newDefaultInstance, newExtension
-
Methods inherited from interface com.inductiveautomation.ignition.common.config.PropertyValueSource
getNonNull, getNonNull
-
-
-
-
Constructor Detail
-
PyUser
public PyUser(User user)
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
get
public java.lang.Object get(java.lang.String propertyName)
-
contains
public boolean contains(Property<?> prop)
- Specified by:
contains
in interfacePropertyValueSource
- Returns:
- True if the source contains a value for prop.
-
getOrDefault
public <T> T getOrDefault(Property<T> prop)
- Specified by:
getOrDefault
in interfacePropertyValueSource
- Returns:
- The value for prop or
Property.getDefaultValue()
if not present. Can return null if the value is null.
-
get
public <T> T get(Property<T> prop)
Description copied from interface:PropertyValueSource
Retrieves the value of the property, or null if this set doesn't contain that property.- Specified by:
get
in interfacePropertyValueSource
-
getOrElse
public <T> T getOrElse(Property<T> property, T value)
Description copied from interface:PropertyValueSource
Get the value for a givenProperty
, or else fall back to value if it's not present.- Specified by:
getOrElse
in interfacePropertyValueSource
- Parameters:
property
- TheProperty
for which a value is to be retrieved.value
- The value to default to if property isn't present.- Returns:
- The value of property if present, value if not. Can return null if the value is null.
-
iterator
public java.util.Iterator<PropertyValue> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<PropertyValue>
-
set
public <T> void set(Property<T> prop, T value)
- Specified by:
set
in interfaceMutablePropertyValueSource
-
set
public void set(PropertyValue propValue)
- Specified by:
set
in interfaceMutablePropertyValueSource
-
set
public void set(java.lang.String propertyName, java.lang.Object propValue)
-
remove
public void remove(Property<?> prop)
- Specified by:
remove
in interfaceMutablePropertyValueSource
-
getProperties
public java.util.Collection<Property<?>> getProperties()
- Specified by:
getProperties
in interfacePropertyValueSource
-
getValues
public java.util.List<PropertyValue> getValues()
Description copied from interface:PropertyValueSource
Returns the opaque PropertyValue objects. This can be useful when you want to avoid the strict type checking of the value, and it's important to note that if the property is bound, the value will be a BoundValue. Be very careful about overriding, and make sure to maintain the methodology of using getProperties to iterate and get (or getOrDefault), to get the value, because those are all handled differently by BoundPropertySets, ExtendedPropertySets, etc.- Specified by:
getValues
in interfacePropertyValueSource
-
isExtended
public boolean isExtended(Property<?> prop)
Description copied from interface:PropertySet
Returns whether this property set contains a value for the prop, and the prop was actually inherited. In other words, this is true if the property is inherited, and an override value is present.- Specified by:
isExtended
in interfacePropertySet
-
isInherited
public boolean isInherited(Property<?> prop)
Description copied from interface:PropertySet
Indicates whether the property was inherited from a parent type.- Specified by:
isInherited
in interfacePropertySet
-
merge
public void merge(PropertySet other, boolean localOnly)
Description copied from interface:Mergable
Merges the values from other collection into this one. Replaces any currently existing value with those from the other set.- Specified by:
merge
in interfaceMergable<PropertySet>
- Specified by:
merge
in interfaceMutablePropertyValueSource
-
getProfileName
public java.lang.String getProfileName()
Description copied from interface:User
The name of the user management profile this user was retrieved from.- Specified by:
getProfileName
in interfaceUser
-
getId
public java.io.Serializable getId()
Description copied from interface:User
An opaque identifier that can be used to identify this user. Only valid (unique) within the context of the originating user profile
-
getRoles
public java.util.Collection<java.lang.String> getRoles()
Description copied from interface:User
Returns all of the roles this user is a has. Not null.
-
addRole
public void addRole(java.lang.String role)
Convenience method for scripting to add a new role easily. Only works if user type supports roles.- Parameters:
role
- A new role to add. If empty or null, no effect.
-
addRoles
public void addRoles(java.util.Collection<java.lang.String> roles)
-
removeRole
public void removeRole(java.lang.String role)
-
setRoles
public void setRoles(java.util.Collection<java.lang.String> roles)
-
getContactInfo
public java.util.List<ContactInfo> getContactInfo()
Description copied from interface:User
Returns all of the contact information for the user- Specified by:
getContactInfo
in interfaceUser
-
addContactInfo
public void addContactInfo(java.lang.String contactType, java.lang.String value)
Convenience method for scripting to add a new contactInfo easily. Does not check for duplicates.- Parameters:
contactType
- The contact type. This string should match the "contactType" field of a known ContactTypevalue
- The actual contact information. For example, phone number or email address
-
addContactInfo
public void addContactInfo(org.python.core.PyDictionary contactDictionary)
-
setContactInfo
public void setContactInfo(java.util.List<ContactInfo> contactInfo)
-
removeContactInfo
public void removeContactInfo(java.lang.String contactType, java.lang.String value)
-
getScheduleAdjustments
public java.util.List<ScheduleAdjustment> getScheduleAdjustments()
Description copied from interface:User
Returns all of this user's upcoming schedule adjustments- Specified by:
getScheduleAdjustments
in interfaceUser
-
addScheduleAdjustment
public void addScheduleAdjustment(@Nonnull java.util.Date start, @Nonnull java.util.Date end, boolean available, @Nullable java.lang.String note)
Convenience method for scripting to add a new schedule adjustment easily. Does not check for duplicates.- Parameters:
start
- Date to start the schedule adjustment. Not null.end
- Date to end start the schedule adjustment. Not null.available
- True if the employee is available during this periodnote
- May be null or empty.
-
addScheduleAdjustments
public void addScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)
-
removeScheduleAdjustment
public void removeScheduleAdjustment(@Nonnull java.util.Date start, @Nonnull java.util.Date end, boolean available, @Nullable java.lang.String note)
-
setScheduleAdjustments
public void setScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)
-
getPath
public QualifiedPath getPath()
Description copied from interface:User
Generate an path that unambiguously references this user
-
-