   @return {SketchItem[]/null} return.PromiseValue
     Array of generated items
   ###
-  setup: (sketch, item) ->
-    return Promise.reject(Error("Pure method"))
+  setup: null # pure virtual
 
   ###*
   @template

  @param {Object} obj
  ###
  constructor: (obj) ->
    @_id            = "#{obj.id || ""}"
    @_rubicVersion  = "#{obj.rubicVersion || ""}"
    @_friendlyName  = I18n.parseJSON(obj.friendlyName)
    @_beta          = !!obj.beta
    @_obsolete      = !!obj.obsolete
    @_firmwares     = (Firmware.parseJSON(f) for f in (obj.firmwares or []))
    return

  ###*

  ###*
  @template
  @static
  @property {string} languageName
    Name of programming language
  @readonly
  ###
  @classProperty("languageName", get: -> null)

  ###*
  @template
  @static
  @property {Object[]} fileTypes
    Array of file type definition
  ###
  @classProperty("fileTypes", get: -> [])

  #--------------------------------------------------------------------------------
  # Public methods
