Record Class ChannelShares

java.lang.Object
java.lang.Record
org.exoplatform.agenda.model.ChannelShares
Record Components:
shares - the access the channel's server holds that eXo does not record
meetingCopies - whether the channel writes copies of the owner's eXo meetings into that calendar, which a share would expose

public record ChannelShares(List<ExternalShare> shares, boolean meetingCopies) extends Record
Everything a delivery channel has to say about one calendar when the owner opens the Share drawer (EXO-90385), read in one ask.

Why the two travel together. Both answers come out of the same conversation with the channel's server — the same collection resolved, the same account asked — and a channel asked for them separately holds that conversation twice. On a calendar hosted on a remote CalDAV server that cost the drawer several seconds of pure latency, which is what this record removes: the channel reads once and answers both.

  • Constructor Details

    • ChannelShares

      public ChannelShares(List<ExternalShare> shares, boolean meetingCopies)
      Creates an instance of a ChannelShares record class.
      Parameters:
      shares - the value for the shares record component
      meetingCopies - the value for the meetingCopies record component
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • shares

      public List<ExternalShare> shares()
      Returns the value of the shares record component.
      Returns:
      the value of the shares record component
    • meetingCopies

      public boolean meetingCopies()
      Returns the value of the meetingCopies record component.
      Returns:
      the value of the meetingCopies record component