Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.yammer.dropwizard.util;
  
  
  
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class Size {
     private static final Pattern PATTERN = Pattern.compile("[\\d]+[\\s]*(B|byte(s)?|" +
                                                                    "KB|KiB|kilobyte(s)?|" +
                                                                    "MB|MiB|megabyte(s)?|" +
                                                                    "GB|GiB|gigabyte(s)?|" +
                                                                    "TB|TiB|terabyte(s)?)");
 
     private static final ImmutableMap<StringSizeUnitSUFFIXES;
 
     static {
         final ImmutableMap.Builder<StringSizeUnitsuffixes = ImmutableMap.builder();
         suffixes.put("B".);
         suffixes.put("byte".);
         suffixes.put("bytes".);
 
         suffixes.put("KB".);
         suffixes.put("KiB".);
         suffixes.put("kilobyte".);
         suffixes.put("kilobytes".);
 
         suffixes.put("MB".);
         suffixes.put("MiB".);
         suffixes.put("megabyte".);
         suffixes.put("megabytes".);
 
         suffixes.put("GB".);
         suffixes.put("GiB".);
         suffixes.put("gigabyte".);
         suffixes.put("gigabytes".);
 
         suffixes.put("TB".);
         suffixes.put("TiB".);
         suffixes.put("terabyte".);
         suffixes.put("terabytes".);
 
          = suffixes.build();
     }
     
     public static Size bytes(long count) {
         return new Size(count.);
     }
 
     public static Size kilobytes(long count) {
         return new Size(count.);
     }
 
     public static Size megabytes(long count) {
         return new Size(count.);
     }
 
     public static Size gigabytes(long count) {
         return new Size(count.);
     }
 
     public static Size terabytes(long count) {
         return new Size(count.);
     }
 
     private static long parseCount(String s) {
         checkArgument(.matcher(s).matches(), "Invalid size: %s"s);
         final String value = ..removeFrom(s);
         return Long.parseLong(..trimTrailingFrom(value));
     }
 
     private static SizeUnit parseUnit(String s) {
         final String value = ..removeFrom(s);
         final String suffix = ..trimLeadingFrom(value).trim();
         return .get(suffix);
     }
 
     @JsonCreator
     public static Size parse(String size) {
         return new Size(parseCount(size), parseUnit(size));
     }
 
     private final long count;
     private final SizeUnit unit;
 
     private Size(long countSizeUnit unit) {
         this. = count;
         this. = checkNotNull(unit);
     }
 
     public long getQuantity() {
         return ;
     }
 
    public SizeUnit getUnit() {
        return ;
    }
    public long toBytes() {
        return ..convert();
    }
    public long toKilobytes() {
        return ..convert();
    }
    public long toMegabytes() {
        return ..convert();
    }
    public long toGigabytes() {
        return ..convert();
    }
    public long toTerabytes() {
        return ..convert();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj) { return true; }
        if ((obj == null) || (getClass() != obj.getClass())) { return false; }
        final Size size = (Sizeobj;
        return ( == size.count) && ( == size.unit);
    }
    @Override
    public int hashCode() {
        return (31 * (int) ( ^ ( >>> 32))) + .hashCode();
    }
    @Override
    @JsonValue
    public String toString() {
        String units = .toString().toLowerCase();
        if ( == 1) {
            units = units.substring(0, units.length() - 1);
        }
        return Long.toString() + ' ' + units;
    }
New to GrepCode? Check out our FAQ X