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}