   ValueType: Value
   $attributes: attributes
 
-  ###
-  @JSON_ENCODING:
-    name: 'json'
-    encode: JSON.stringify
-    decode: JSON.parse
-  @DEFAULT_ENCODING: @JSON_ENCODING
-  getEncoding: (encoding)-> #depreacted
-    if !encoding or encoding is Type.DEFAULT_ENCODING.name
-      if @parent
-        return @parent.getEncoding()
-      else
-        return Type.DEFAULT_ENCODING
-    if isString encoding
-      if Codec
-        encoding = Codec encoding
-      else
-        throw new TypeError '
-          Should install buffer-codec package first
-          to enable encoding name supports.
-        '
-    if !isFunction(encoding.encode) or
-       !isFunction(encoding.decode) or !encoding.name
-      throw new TypeError '
-        encoding should have name property, encode and decode functions.
-      '
-    encoding
-  ###
   constructor: (aTypeName, aOptions)->
     # create a new instance object if aOptions is not the original options of the type.
     if not (this instanceof Type) and not (aTypeName instanceof Type)

        vType = @createType aOptions
    else
      vType = @
    #Value(aValue, vType, aOptions)
    createObject vType.ValueType, aValue, vType, aOptions
  create: @::createValue
  createType: (aOptions)->

extend          = require('util-ex/lib/extend')
defineProperty  = require('util-ex/lib/defineProperty')
createObject    = require('inherits-ex/lib/createObject')
Attributes      = require('./attributes/abstract-type')
attributes      = createObject require('./attributes/type')
#try Codec       = require('buffer-codec')

