/**
 * Copyright 2016 The OpenTracing Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package io.opentracing;

/**
 * Represents an in-flight span in the opentracing system.
 *
 * <p>Spans are created by the {@link Tracer#buildSpan} interface.
 */
public interface Span extends AutoCloseable {
  SpanContext context();

  /**
   * Sets the end timestamp and records the span.
   *
   * <p>This should be the last call made to any span instance, and to do otherwise leads to
   * undefined behavior.
   */
  void finish();

  void close();

  /**
   * Set a key:value tag on the Span.
   */
  // overloaded 3x to support the BasicType concern
  Span setTag(String key, String value);

  /** Same as {@link #setTag(String, String)}, but for boolean values. */
  Span setTag(String key, boolean value);

  /** Same as {@link #setTag(String, String)}, but for numeric values. */
  Span setTag(String key, Number value);

  /**
   * Add a new log event to the Span, accepting an event name string and an optional structured payload argument.
   * If specified, the payload argument may be of any type and arbitrary size,
   * though implementations are not required to retain all payload arguments
   * (or even all parts of all payload arguments).
   *
   * The timestamp of this log event is the current time.
   **/
  Span log(String eventName, /* @Nullable */ Object payload);

  /**
   * Add a new log event to the Span, accepting an event name string and an optional structured payload argument.
   * If specified, the payload argument may be of any type and arbitrary size,
   * though implementations are not required to retain all payload arguments
   * (or even all parts of all payload arguments).
   *
   * The timestamp is specified manually here to represent a past log event.
   * The timestamp in microseconds in UTC time.
   **/
  Span log(long timestampMicroseconds, String eventName, /* @Nullable */ Object payload);
}

@@ -799,16 +799,194 @@
 eable %7B%0A
+    /**%0A     * Retrieve the associated SpanContext.%0A     *%0A     * @return the SpanContext that encapsulates Span state that should propagate across process boundaries.%0A     */%0A  
   SpanCo
@@ -999,30 +999,34 @@
 context();%0A%0A
+  
   /**%0A
+  
    * Sets th
@@ -1062,26 +1062,30 @@
 he span.%0A   
-*%0A
+  *%0A  
    * %3Cp%3EThis
@@ -1165,16 +1165,18 @@
 eads to%0A
+  
    * und
@@ -1195,19 +1195,23 @@
 ior.%0A   
+  
 */%0A
+  
   void f
@@ -1220,16 +1220,18 @@
 ish();%0A%0A
+  
   void c
@@ -1235,24 +1235,26 @@
 d close();%0A%0A
+  
   /**%0A   * S
@@ -1250,16 +1250,18 @@
  /**%0A   
+  
 * Set a 
@@ -1290,19 +1290,23 @@
 pan.%0A   
+  
 */%0A
+  
   // ove
@@ -1349,16 +1349,18 @@
 concern%0A
+  
   Span s
@@ -1385,32 +1385,34 @@
 String value);%0A%0A
+  
   /** Same as %7B@
@@ -1461,32 +1461,34 @@
 lean values. */%0A
+  
   Span setTag(St
@@ -1510,24 +1510,26 @@
 an value);%0A%0A
+  
   /** Same a
@@ -1590,16 +1590,18 @@
 ues. */%0A
+  
   Span s
@@ -1630,30 +1630,34 @@
 er value);%0A%0A
+  
   /**%0A
+  
    * Add a n
@@ -1753,32 +1753,34 @@
 ad argument.%0A   
+  
 * If specified, 
@@ -1834,32 +1834,34 @@
 itrary size,%0A   
+ 
+ 
 * though impleme
@@ -1913,32 +1913,34 @@
 ad arguments%0A   
+  
 * (or even all p
@@ -1966,34 +1966,38 @@
  arguments).%0A   
+ 
+ 
 *%0A
+  
    * The timesta
@@ -2033,36 +2033,40 @@
 urrent time.%0A   
+ 
+ 
 **/%0A
+  
   Span log(Strin
@@ -2112,22 +2112,26 @@
 load);%0A%0A
+  
   /**%0A
+  
    * Add
@@ -2239,16 +2239,18 @@
 ent.%0A   
+ 
+ 
 * If spe
@@ -2320,16 +2320,18 @@
 ize,%0A   
+  
 * though
@@ -2399,16 +2399,18 @@
 ents%0A   
+ 
+ 
 * (or ev
@@ -2452,21 +2452,25 @@
 ts).%0A   
+  
 *%0A   
+ 
+ 
 * The ti
@@ -2538,16 +2538,18 @@
 ent.%0A   
+  
 * The ti
@@ -2588,20 +2588,24 @@
 ime.%0A   
+  
 **/%0A
+  
   Span l

Add a trivial comment and fix indenting