All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.backendless.messaging.DeliveryOptions Maven / Gradle / Ivy

The newest version!
package com.backendless.messaging;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DeliveryOptions
{
  // the value is a mask
  private int pushBroadcast;
  private List pushSinglecast = new ArrayList();
  private String segmentQuery;
  private PublishPolicyEnum publishPolicy = PublishPolicyEnum.BOTH;

  // time values in GMT
  private Date publishAt;
  private long repeatEvery;
  private Date repeatExpiresAt;

  public DeliveryOptions()
  { }

  public DeliveryOptions( PublishMessageInfo info )
  {
    this.pushBroadcast = PushBroadcastMask.toIntMask( info.getPushBroadcast() );

    this.segmentQuery = info.getQuery();

    if ( info.getPublishAt() > 0 )
      this.publishAt = new Date( info.getPublishAt() );

    if ( info.getRepeatEvery() > 0 )
      this.repeatEvery = info.getRepeatEvery();

    if ( info.getRepeatExpiresAt() > 0 )
      this.repeatExpiresAt = new Date( info.getRepeatExpiresAt() );

    if ( info.getPushSinglecast() != null && info.getPushSinglecast().size() > 0 )
      this.pushSinglecast = info.getPushSinglecast();

    if ( info.getPublishPolicy() != null )
    {
      try
      {
        this.publishPolicy = PublishPolicyEnum.valueOf( info.getPublishPolicy().toUpperCase() );
      }
      catch( IllegalArgumentException e )
      {
        this.publishPolicy = PublishPolicyEnum.BOTH;
      }
    }
  }

  public int getPushBroadcast()
  {
    return pushBroadcast;
  }

  public DeliveryOptions setPushBroadcast( int pushBroadcast )
  {
    this.pushBroadcast = pushBroadcast;
    return this;
  }

  public List getPushSinglecast()
  {
    return pushSinglecast;
  }

  public DeliveryOptions setPushSinglecast( List pushSinglecast )
  {
    if( pushSinglecast != null )
      this.pushSinglecast = pushSinglecast;

    return this;
  }

  public PublishPolicyEnum getPublishPolicy()
  {
    return publishPolicy;
  }

  public DeliveryOptions setPublishPolicy( PublishPolicyEnum publishPolicy )
  {
    if( publishPolicy != null )
      this.publishPolicy = publishPolicy;

    return this;
  }

  public Date getPublishAt()
  {
    return publishAt;
  }

  public DeliveryOptions setPublishAt( Date publishAt )
  {
    this.publishAt = publishAt;
    return this;
  }

  public long getRepeatEvery()
  {
    return repeatEvery;
  }

  public DeliveryOptions setRepeatEvery( long repeatEvery )
  {
    this.repeatEvery = repeatEvery;
    return this;
  }

  public Date getRepeatExpiresAt()
  {
    return repeatExpiresAt;
  }

  public DeliveryOptions setRepeatExpiresAt( Date repeatExpiresAt )
  {
    this.repeatExpiresAt = repeatExpiresAt;
    return this;
  }

  public String getSegmentQuery()
  {
    return segmentQuery;
  }

  public DeliveryOptions setSegmentQuery( String segmentQuery )
  {
    this.segmentQuery = segmentQuery;
    return this;
  }

  @Override
  public String toString()
  {
    return "DeliveryOptions{" +
            "pushBroadcast=" + pushBroadcast +
            ", pushSinglecast=" + pushSinglecast +
            ", publishPolicy=" + publishPolicy +
            ", publishAt=" + publishAt +
            ", repeatEvery=" + repeatEvery +
            ", repeatExpiresAt=" + repeatExpiresAt +
            '}';
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy