Class TiebackReport

java.lang.Object
neqsim.process.fielddevelopment.tieback.TiebackReport
All Implemented Interfaces:
Serializable

public class TiebackReport extends Object implements Serializable
Report containing tieback analysis results for a discovery.

The TiebackReport aggregates all evaluated tieback options and provides methods for:

  • Accessing ranked options (best NPV first)
  • Filtering by feasibility
  • Comparing options
  • Generating summary text

Example Usage

TiebackAnalyzer analyzer = new TiebackAnalyzer();
TiebackReport report = analyzer.analyze(discovery, hosts, 61.5, 2.3);

// Get best option
TiebackOption best = report.getBestOption();

// Get all feasible options
List<TiebackOption> feasible = report.getFeasibleOptions();

// Print summary
System.out.println(report.getSummary());
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • discoveryName

      private String discoveryName
      Discovery name.
    • options

      private List<TiebackOption> options
      All evaluated options (sorted by NPV, best first).
    • discoveryLatitude

      private double discoveryLatitude
      Discovery latitude.
    • discoveryLongitude

      private double discoveryLongitude
      Discovery longitude.
  • Constructor Details

    • TiebackReport

      public TiebackReport(String discoveryName, List<TiebackOption> options, double discoveryLatitude, double discoveryLongitude)
      Creates a new tieback report.
      Parameters:
      discoveryName - name of the discovery
      options - list of evaluated options (will be sorted by NPV)
      discoveryLatitude - discovery latitude
      discoveryLongitude - discovery longitude
  • Method Details

    • getBestOption

      public TiebackOption getBestOption()
      Gets the best option by NPV.
      Returns:
      the option with highest NPV, or null if no options
    • getBestFeasibleOption

      public TiebackOption getBestFeasibleOption()
      Gets the best feasible option.
      Returns:
      the feasible option with highest NPV, or null if none feasible
    • getFeasibleOptions

      public List<TiebackOption> getFeasibleOptions()
      Gets all feasible options.
      Returns:
      list of feasible options, sorted by NPV
    • getProfitableOptions

      public List<TiebackOption> getProfitableOptions()
      Gets options with positive NPV.
      Returns:
      list of options with NPV > 0
    • getOptionCount

      public int getOptionCount()
      Gets the number of options.
      Returns:
      number of options evaluated
    • getFeasibleOptionCount

      public int getFeasibleOptionCount()
      Gets the number of feasible options.
      Returns:
      number of feasible options
    • getProfitableOptionCount

      public int getProfitableOptionCount()
      Gets the number of profitable options.
      Returns:
      number of options with NPV > 0
    • hasFeasibleOption

      public boolean hasFeasibleOption()
      Checks if any feasible option exists.
      Returns:
      true if at least one option is feasible
    • hasProfitableOption

      public boolean hasProfitableOption()
      Checks if any profitable option exists.
      Returns:
      true if at least one option has NPV > 0
    • getOptionByHost

      public TiebackOption getOptionByHost(String hostName)
      Gets an option by host name.
      Parameters:
      hostName - name of the host facility
      Returns:
      the option, or null if not found
    • getNpvRange

      public double[] getNpvRange()
      Gets the NPV range across all feasible options.
      Returns:
      array with [min NPV, max NPV] in MUSD
    • getCapexRange

      public double[] getCapexRange()
      Gets the CAPEX range across all feasible options.
      Returns:
      array with [min CAPEX, max CAPEX] in MUSD
    • compareOptions

      public String compareOptions(String host1, String host2)
      Compares two options.
      Parameters:
      host1 - first host name
      host2 - second host name
      Returns:
      comparison text
    • getSummary

      public String getSummary()
      Gets a summary of the tieback analysis.
      Returns:
      multi-line summary text
    • getShortSummary

      public String getShortSummary()
      Gets a short summary suitable for logging.
      Returns:
      single-line summary
    • getRecommendation

      public String getRecommendation()
      Gets a recommendation based on the analysis.
      Returns:
      recommendation text
    • toCsv

      public String toCsv()
      Gets a CSV representation of all options.
      Returns:
      CSV text with header row
    • toMarkdownTable

      public String toMarkdownTable()
      Gets a markdown table representation.
      Returns:
      markdown table text
    • getDiscoveryName

      public String getDiscoveryName()
      Gets the discovery name.
      Returns:
      discovery name
    • getOptions

      public List<TiebackOption> getOptions()
      Gets all options.
      Returns:
      list of all options (sorted by NPV)
    • getDiscoveryLatitude

      public double getDiscoveryLatitude()
      Gets the discovery latitude.
      Returns:
      latitude in degrees
    • getDiscoveryLongitude

      public double getDiscoveryLongitude()
      Gets the discovery longitude.
      Returns:
      longitude in degrees
    • truncate

      private static String truncate(String s, int maxLen)
      Truncates a string to the specified length.
      Parameters:
      s - string to truncate
      maxLen - maximum length
      Returns:
      truncated string
    • repeatChar

      private static String repeatChar(char c, int n)
      Repeats a character n times (Java 8 compatible).
      Parameters:
      c - character to repeat
      n - number of times
      Returns:
      string with character repeated n times
    • toString

      public String toString()
      Overrides:
      toString in class Object