@Override
  protected void putAttributes(AttributeGenerator generator) {
    super.putAttributes(generator);

    if (fileSize > 0) {
      generator.put("fileSize", fileSize);
    }

    generator.put("type", type);
    generator.put("medium", medium);
    if (isDefault) {
      generator.put("isDefault", isDefault);
    }
    generator.put(
        "expression", expression, new AttributeHelper.LowerCaseEnumToAttributeValue<Expression>());
    if (bitrate > 0) {
      generator.put("bitrate", bitrate);
    }
    if (framerate > 0) {
      generator.put("framerate", framerate);
    }
    if (samplingrate > 0) {
      generator.put("samplingrate", samplingrate);
    }
    if (channels > 0) {
      generator.put("channels", channels);
    }
    if (duration > 0) {
      generator.put("duration", duration);
    }
    generator.put("language", language);
  }
 @Override
 protected void consumeAttributes(AttributeHelper attrsHelper) throws ParseException {
   super.consumeAttributes(attrsHelper);
   fileSize = attrsHelper.consumeLong("fileSize", false);
   type = attrsHelper.consume("type", false);
   medium = attrsHelper.consume("medium", false);
   isDefault = attrsHelper.consumeBoolean("isDefault", false);
   expression = attrsHelper.consumeEnum("expression", false, Expression.class);
   bitrate = attrsHelper.consumeInteger("bitrate", false);
   framerate = attrsHelper.consumeInteger("framerate", false);
   samplingrate = attrsHelper.consumeInteger("samplingrate", false);
   channels = attrsHelper.consumeInteger("channels", false);
   duration = attrsHelper.consumeInteger("duration", false);
   language = attrsHelper.consume("language", false);
 }