java.lang.Object
com.inductiveautomation.ignition.gateway.tags.evaluation.subscriptions.AbstractNodePropertyManager
Direct Known Subclasses:
PropertySetNodeManager

public abstract class AbstractNodePropertyManager extends Object
  • Field Details

  • Constructor Details

    • AbstractNodePropertyManager

      public AbstractNodePropertyManager()
  • Method Details

    • getLogger

      protected abstract LoggerEx getLogger()
    • getPropertyNode

      public Node getPropertyNode(Property<?> prop)
      This will generate a new node each time it's called.
    • getSubscriptionMonitor

      public SubscriptionMonitor getSubscriptionMonitor(@Nullable Property<?> prop)
    • browse

      public QualityCode browse(List<NodeDescription> results, BrowseFilter filter, int startingOffset, AtomicInteger currentOffset)
    • getPublishedProperties

      protected abstract Collection<? extends Property<?>> getPublishedProperties()
      These are the properties that are published for browsing.
    • createDescriptionFor

      protected NodeDescription createDescriptionFor(Property<?> p)
    • getDefaultSubscriptionProp

      protected abstract Property<?> getDefaultSubscriptionProp()
    • getPropertyValue

      protected abstract <T> T getPropertyValue(Property<T> prop) throws PropertyNotFoundException
      Throws:
      PropertyNotFoundException - if the property is not a well known property and is not defined on the object.
    • getPropertyQualifiedValue

      protected QualifiedValue getPropertyQualifiedValue(Property<?> prop)
    • getSubscribedSet

      protected Set<Property<?>> getSubscribedSet()
      Returns threadsafe copy of the subscribed props.
    • readProperty

      public void readProperty(Property<?> prop, CompletableFuture<QualifiedValue> cf, SecurityContext security)
    • writeProperty

      public <T> void writeProperty(Property<T> prop, CompletableFuture<QualityCode> cf, SecurityContext security, Object value)
    • fireAllSubscriptions

      public void fireAllSubscriptions()
      Fires a subscription change for each subscribed property
    • fireSubscription

      public void fireSubscription(Property<?> property)
      Fires a subscription change for the specified property.
    • fireSubscriptionOnly

      public void fireSubscriptionOnly(Property<?> property)
      Fires a subscription change for specified property only. Will not fire extra events if property is null or default.
    • addDescriptionModifier

      public void addDescriptionModifier(AbstractNodePropertyManager.DescriptionModifier modifier)
    • getTarget

      protected NodeSubscription getTarget(Property<?> property)
    • hasTarget

      protected boolean hasTarget(Property<?> prop)
      Returns whether there is a valid listener for this property.
    • clearSubscriptions

      public void clearSubscriptions()
      Disconnects all subscriptions.
    • subscribe

      public void subscribe(Property<?> prop, NodeSubscription sub)
      Subscribes to the specified property. If prop == null, it will be the default property of the node. Important point: we track "default null" separately from an actual property value for default. This is because the subscription system doesn't know what our default is. This also means that if the default prop is "Value", subscribing to "Tag.Value" is heavier than just "Tag".
    • unsubscribe

      public void unsubscribe(Property<?> prop)
    • fireSubscription

      public void fireSubscription(Property<?> prop, Supplier<QualifiedValue> valueSupplier)
    • fireSubscription

      public void fireSubscription(Property<?> prop, Supplier<QualifiedValue> valueSupplier, boolean fireToDefault)
      Fires a subscription for the given property. If prop is null or is the default prop, events will be fired symmetrically for both "null" and "default" targets.
    • fireSubscriptionToTarget

      protected void fireSubscriptionToTarget(NodeSubscription target, QualifiedValue value)