package com.zhan_dui.utils.m3u8;
import java.net.URI;
/**
* @author dkuffner
*/
class ElementBuilder {
private double duration;
private URI uri;
private PlaylistInfo playlistInfo;
private EncryptionInfo encryptionInfo;
private String title;
private long programDate = -1;
private boolean discontinuity = false;
public ElementBuilder() {
}
public long programDate() {
return programDate;
}
public ElementBuilder programDate(long programDate) {
this.programDate = programDate;
return this;
}
public String getTitle() {
return title;
}
public ElementBuilder title(String title) {
this.title = title;
return this;
}
public double getDuration() {
return duration;
}
public ElementBuilder duration(double duration) {
this.duration = duration;
return this;
}
public ElementBuilder discontinuity(boolean d) {
this.discontinuity=d;
return this;
}
public URI getUri() {
return uri;
}
public ElementBuilder uri(URI uri) {
this.uri = uri;
return this;
}
public ElementBuilder playList(final int programId, final int bandWidth, final String codec) {
this.playlistInfo = new ElementImpl.PlaylistInfoImpl(programId, bandWidth, codec);
return this;
}
public ElementBuilder resetPlatListInfo() {
playlistInfo = null;
return this;
}
public ElementBuilder resetEncryptedInfo() {
encryptionInfo = null;
return this;
}
public ElementBuilder reset() {
duration = 0;
uri = null;
title = null;
programDate = -1;
discontinuity = false;
resetEncryptedInfo();
resetPlatListInfo();
return this;
}
public ElementBuilder encrypted(EncryptionInfo info) {
this.encryptionInfo = info;
return this;
}
public ElementBuilder encrypted(final URI uri, final String method) {
encryptionInfo = new ElementImpl.EncryptionInfoImpl(uri, method);
return this;
}
public Element create() {
return new ElementImpl(playlistInfo, encryptionInfo, duration, uri, title, programDate,discontinuity);
}
}