WhoWhen = require('./whowhen').WhoWhen
class Spogi
  constructor: (@s, @p, @o, @g, @i) ->
  ww: () ->
    if not @_ww?
      @_ww = new WhoWhen().parse(@i.key())
    @_ww
  whn: () ->
    return @ww().whn()
  sess: () ->
    return @ww().sess()
  toString: ->
    [@s.repr(),@p.repr(),@o.repr(),@g.repr(),". #",@i.key()].join(" ")
  asLine: ->
    @toString() + "\n"
  asLineWithIdAsContext: ->
    [@s.repr(), @p.repr(), @o.repr(), "<#{@i.key()}>"].join(" ") + " .\n"
  asPenta: ->
    [@s.repr(), @p.repr(), @o.repr(), @g.repr(), @i.repr()]
  asTTL: ->
    [@s.asTTL(), @p.asTTL(), @o.asTTL(), @g.asTTL(), @i.asTTL()]
  asRaw: ->