com.tibbo.aggregate.common.structure

## Class Pinpoint

- java.lang.Object
- - com.tibbo.aggregate.common.structure.Pinpoint

-     public class Pinpoint
      extends java.lang.Object

  Pinpoint is a place within Unified Data Model that precisely describes the outgoing coordinates of inter-context communication. Think of it as a descriptor used to identify where a traceable object (like expression or reference) comes from.

  The pinpoint may be created with just a rough "coordinates" initially (like only context and variable) but then be supplemented with details (like particular field and column of the variable).

  To create Pinpoint instances, corresponding factory methods should be used.

  Note that all the `with…` methods return new instances rather than modify the current one. This is to enable having different versions of the same initial pinpoint in different places of a context.
  Since:
    AGG-10879

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `asString()`
    `Pinpoint` | `copy()`
    `boolean` | `equals(java.lang.Object o)`
    `Reference` | `getOrigin()`
    `java.lang.String` | `getScope()`
    `int` | `hashCode()`
    `void` | `popLocation()`
    `void` | `pushLocation(CallLocation location)`
    `java.lang.String` | `toString()`
    `Pinpoint` | `withNestedCell(java.lang.String nestedField, int nestedRow, OriginKind kind)`
    `Pinpoint` | `withOriginField(java.lang.String field)`
    `Pinpoint` | `withOriginField(java.lang.String field, OriginKind kind)`
    `Pinpoint` | `withOriginRow(java.lang.Integer row)`
    `Pinpoint` | `withScope(java.lang.String scope)`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### copy

          public Pinpoint copy()

    - #### withOriginRow

          public Pinpoint withOriginRow(java.lang.Integer row)

    - #### withOriginField

          public Pinpoint withOriginField(java.lang.String field)

    - #### withOriginField

          public Pinpoint withOriginField(java.lang.String field,
                                          @Nullable
                                          OriginKind kind)

    - #### withScope

          public Pinpoint withScope(java.lang.String scope)

    - #### withNestedCell

          public Pinpoint withNestedCell(java.lang.String nestedField,
                                         int nestedRow,
                                         OriginKind kind)

    - #### pushLocation

          public void pushLocation(CallLocation location)

    - #### popLocation

          public void popLocation()

    - #### getOrigin

          public Reference getOrigin()

    - #### getScope

          @Nullable
          public java.lang.String getScope()

    - #### asString

          public java.lang.String asString()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`