using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Lskj.Push.Util; namespace Lskj.Push.Push.Audience { public class AudienceTarget { public AudienceType audienceType{get;private set;} public HashSet valueBuilder { get; private set; } private AudienceTarget(AudienceType audienceType, HashSet values) { this.audienceType = audienceType; this.valueBuilder = values; } public static AudienceTarget tag(HashSet values) { return new AudienceTarget(AudienceType.tag,values).Check(); } public static AudienceTarget tag_and(HashSet values) { return new AudienceTarget(AudienceType.tag_and, values).Check(); } public static AudienceTarget alias(HashSet values) { return new AudienceTarget(AudienceType.alias, values).Check(); } public static AudienceTarget segment(HashSet values) { return new AudienceTarget(AudienceType.segment, values).Check(); } public static AudienceTarget registrationId(HashSet values) { return new AudienceTarget(AudienceType.registration_id, values).Check(); } public AudienceTarget Check() { Preconditions.checkArgument(null != valueBuilder, "Target values should be set one at least."); return this; } } }