001package net.filebot.format; 002 003public class BitRate extends AutoScaleInteger { 004 005 public BitRate(Number value) { 006 super(value.longValue(), Scale.AUTO); 007 } 008 009 public BitRate(long value, Scale scale) { 010 super(value, scale); 011 } 012 013 @Override 014 public BitRate scale(Scale scale) { 015 return new BitRate(value, scale); 016 } 017 018 public BitRate getGbps() { 019 return scale(Scale.G); 020 } 021 022 public BitRate getMbps() { 023 return scale(Scale.M); 024 } 025 026 public BitRate getKbps() { 027 return scale(Scale.K); 028 } 029 030 @Override 031 public String getUnit(Scale scale) { 032 switch (scale) { 033 case G: 034 return "Gbps"; 035 case M: 036 return "Mbps"; 037 case K: 038 return "kbps"; 039 default: 040 return "bps"; 041 } 042 } 043 044 public static BitRate parse(String s) { 045 long value = (long) Double.parseDouble(s); 046 return new BitRate(value, Scale.AUTO); 047 } 048 049}