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 voidaddContactInfo(java.lang.String contactType, java.lang.String value)Convenience method for scripting to add a new contactInfo easily.voidaddContactInfo(org.python.core.PyDictionary contactDictionary)voidaddRole(java.lang.String role)Convenience method for scripting to add a new role easily.voidaddRoles(java.util.Collection<java.lang.String> roles)voidaddScheduleAdjustment(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.voidaddScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)booleancontains(Property<?> prop)<T> Tget(Property<T> prop)Retrieves the value of the property, or null if this set doesn't contain that property.java.lang.Objectget(java.lang.String propertyName)java.util.List<ContactInfo>getContactInfo()Returns all of the contact information for the userintgetCount()java.io.SerializablegetId()An opaque identifier that can be used to identify this user.<T> TgetOrDefault(Property<T> prop)<T> TgetOrElse(Property<T> property, T value)Get the value for a givenProperty, or else fall back to value if it's not present.QualifiedPathgetPath()Generate an path that unambiguously references this userjava.lang.StringgetProfileName()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.booleanisExtended(Property<?> prop)Returns whether this property set contains a value for the prop, and the prop was actually inherited.booleanisInherited(Property<?> prop)Indicates whether the property was inherited from a parent type.java.util.Iterator<PropertyValue>iterator()voidmerge(PropertySet other, boolean localOnly)Merges the values from other collection into this one.voidremove(Property<?> prop)voidremoveContactInfo(java.lang.String contactType, java.lang.String value)voidremoveRole(java.lang.String role)voidremoveScheduleAdjustment(java.util.Date start, java.util.Date end, boolean available, java.lang.String note)<T> voidset(Property<T> prop, T value)voidset(PropertyValue propValue)voidset(java.lang.String propertyName, java.lang.Object propValue)voidsetContactInfo(java.util.List<ContactInfo> contactInfo)voidsetRoles(java.util.Collection<java.lang.String> roles)voidsetScheduleAdjustments(java.util.List<ScheduleAdjustment> scheduleAdjustments)java.lang.StringtoString()-
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:
toStringin classjava.lang.Object
-
get
public java.lang.Object get(java.lang.String propertyName)
-
contains
public boolean contains(Property<?> prop)
- Specified by:
containsin interfacePropertyValueSource- Returns:
- True if the source contains a value for prop.
-
getOrDefault
public <T> T getOrDefault(Property<T> prop)
- Specified by:
getOrDefaultin 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:PropertyValueSourceRetrieves the value of the property, or null if this set doesn't contain that property.- Specified by:
getin interfacePropertyValueSource
-
getOrElse
public <T> T getOrElse(Property<T> property, T value)
Description copied from interface:PropertyValueSourceGet the value for a givenProperty, or else fall back to value if it's not present.- Specified by:
getOrElsein interfacePropertyValueSource- Parameters:
property- ThePropertyfor 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
@Nonnull public java.util.Iterator<PropertyValue> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<PropertyValue>
-
set
public <T> void set(Property<T> prop, T value)
- Specified by:
setin interfaceMutablePropertyValueSource
-
set
public void set(PropertyValue propValue)
- Specified by:
setin interfaceMutablePropertyValueSource
-
set
public void set(java.lang.String propertyName, java.lang.Object propValue)
-
remove
public void remove(Property<?> prop)
- Specified by:
removein interfaceMutablePropertyValueSource
-
getProperties
public java.util.Collection<Property<?>> getProperties()
- Specified by:
getPropertiesin interfacePropertyValueSource
-
getValues
public java.util.List<PropertyValue> getValues()
Description copied from interface:PropertyValueSourceReturns 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:
getValuesin interfacePropertyValueSource
-
isExtended
public boolean isExtended(Property<?> prop)
Description copied from interface:PropertySetReturns 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:
isExtendedin interfacePropertySet
-
isInherited
public boolean isInherited(Property<?> prop)
Description copied from interface:PropertySetIndicates whether the property was inherited from a parent type.- Specified by:
isInheritedin interfacePropertySet
-
merge
public void merge(PropertySet other, boolean localOnly)
Description copied from interface:MergableMerges the values from other collection into this one. Replaces any currently existing value with those from the other set.- Specified by:
mergein interfaceMergable<PropertySet>- Specified by:
mergein interfaceMutablePropertyValueSource
-
getProfileName
public java.lang.String getProfileName()
Description copied from interface:UserThe name of the user management profile this user was retrieved from.- Specified by:
getProfileNamein interfaceUser
-
getId
public java.io.Serializable getId()
Description copied from interface:UserAn 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:UserReturns 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:UserReturns all of the contact information for the user- Specified by:
getContactInfoin 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:UserReturns all of this user's upcoming schedule adjustments- Specified by:
getScheduleAdjustmentsin 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:UserGenerate an path that unambiguously references this user
-
-