package com.continuuity.api.stream;


// Specification for Stream
public class StreamSpecification {

  //Instantiate object using Builder
  private StreamSpecification(){}

  /*
  * {@code StreamSpecification} builder used to build specification of stream
  */
  public static final class Builder {

    public StreamSpecification create() {
      StreamSpecification specification = new StreamSpecification();
      return specification;
    }

  }  

}

@@ -31,16 +31,17 @@
 ream;%0A%0A%0A
+%0A
 // Speci
@@ -96,18 +96,298 @@
 tion %7B%0A%0A
-  
+%09private long ttl;%0A%09private long maxSize;%0A%09private String metaData;%0A%0A%09private void setTTL(long ttl) %7B%0A%09%09this.ttl = ttl;%0A%09%7D%0A%0A%0A%09private void setMaxSize (long maxSize) %7B%0A%09%09this.maxSize = maxSize;%0A%09%7D%0A%0A%0A%09private void setMetaData (String metaData ) %7B%0A    this.metaData = metaData;%0A %09%7D%0A%0A%0A%09
 //Instan
@@ -448,16 +448,17 @@
 on()%7B%7D%0A%0A
+%0A
   /*%0A  *
@@ -580,116 +580,1199 @@
  %7B%0A%0A
-    public StreamSpecification create() %7B%0A      StreamSpecification specification = new StreamSpecification(
+%09  private long ttl = -1 ;%0A%09  private long maxSize = -1 ;%0A%09  private String metaData;%0A%0A%09  /*%0A%09   * Adds ttl parameter to Streams%0A%09   * @param ttl: time for streams to live -1 (default parameter) will enable to stream to live for ever%0A%09   * @return Builder instance%0A%09   */%0A%09  public Builder setTTL(long ttl) %7B%0A%09%09  this.ttl = ttl;%0A%09%09%09return this;%0A%09  %7D%0A%0A%09  /*%0A%09   *  Add maxSize to streams%0A%09   *  @param maxSize: maxSize to read from the stream -1 indicates there is no maxSize%0A%09   *  @return Builder instance%0A%09   */%0A%0A%09  public Builder setMaxSize(long maxSize) %7B%0A%09%09  this.maxSize = maxSize;%0A%09%09  return this;%0A%09  %7D%0A%0A%09  /*%0A%09   * Annotate metaData to Stream%0A%09   * @param metaData: MetaData to annotate the Stream%0A%09   * @return Builder instance%0A%09   */%0A%09  public Builder setMetaData (String metaData) %7B%0A%09%09  this.metaData = metaData;%0A%09%09  return this;%0A%09  %7D%0A%0A%0A%09  /*%0A%09   * Create %7B@code StreamSpecification%7D%0A%09   * @return object of %7B@code StreamSpecification%7D%0A%09   */%0A    public StreamSpecification create() %7B%0A      StreamSpecification specification = new StreamSpecification();%0A%09    specification.setMaxSize(this.maxSize);%0A%09    specification.setMetaData(this.metaData);%0A%09    specification.setTTL(this.ttl
 );%0A 

Add more parameters to StreamSpecification and Builders