Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.infinispan.commons.util;
  
  public enum MemoryUnit {
     BYTES("B") {
  
        @Override
        public long convert(long sourceSizeMemoryUnit sourceUnit) {
           return sourceUnit.toBytes(sourceSize);
        }
 
       @Override
       public long toBytes(long size) {
          return size;
       }
 
       @Override
       public long toKiloBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toKibiBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toMegaBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toMebiBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toGigaBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toGibiBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toTeraBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toTebiBytes(long size) {
          return size / ;
       }
    },
 
    KILOBYTES("K") {
 
       @Override
       public long convert(long sourceSizeMemoryUnit sourceUnit) {
          return sourceUnit.toKiloBytes(sourceSize);
       }
 
       @Override
       public long toBytes(long size) {
          return x(size / );
       }
 
       @Override
       public long toKiloBytes(long size) {
          return size;
       }
 
       @Override
       public long toKibiBytes(long size) {
          return f(size);
       }
 
       @Override
       public long toMegaBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toMebiBytes(long size) {
          return f(size);
       }
 
       @Override
       public long toGigaBytes(long size) {
          return size / ;
       }
 
       @Override
       public long toGibiBytes(long size) {
          return f(size);
       }
 
       @Override
      public long toTeraBytes(long size) {
         return size / ;
      }
      @Override
      public long toTebiBytes(long size) {
         return f(size);
      }
   },
   KIBIBYTES("Ki") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toKibiBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return f(size);
      }
      @Override
      public long toKibiBytes(long size) {
         return size;
      }
      @Override
      public long toMegaBytes(long size) {
         return f(size);
      }
      @Override
      public long toMebiBytes(long size) {
         return size / ;
      }
      @Override
      public long toGigaBytes(long size) {
         return f(size);
      }
      @Override
      public long toGibiBytes(long size) {
         return size / ;
      }
      @Override
      public long toTeraBytes(long size) {
         return f(size);
      }
      @Override
      public long toTebiBytes(long size) {
         return size / ;
      }
   },
   MEGABYTES("M") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toMegaBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toMegaBytes(long size) {
         return size;
      }
      @Override
      public long toMebiBytes(long size) {
         return f(size);
      }
      @Override
      public long toGigaBytes(long size) {
         return size / ;
      }
      @Override
      public long toGibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toTeraBytes(long size) {
         return size / ;
      }
      @Override
      public long toTebiBytes(long size) {
         return f(size);
      }
   },
   MEBIBYTES("Mi") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toMebiBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return f(size);
      }
      @Override
      public long toKibiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toMegaBytes(long size) {
         return f(size);
      }
      @Override
      public long toMebiBytes(long size) {
         return size;
      }
      @Override
      public long toGigaBytes(long size) {
         return f(size);
      }
      @Override
      public long toGibiBytes(long size) {
         return size / ;
      }
      @Override
      public long toTeraBytes(long size) {
         return f(size);
      }
      @Override
      public long toTebiBytes(long size) {
         return size / ;
      }
   },
   GIGABYTES("G") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toGigaBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toMegaBytes(long size) {
         return x(size / );
      }
      @Override
      public long toMebiBytes(long size) {
         return f(size);
      }
      @Override
      public long toGigaBytes(long size) {
         return size;
      }
      @Override
      public long toGibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toTeraBytes(long size) {
         return size / ;
      }
      @Override
      public long toTebiBytes(long size) {
         return f(size);
      }
   },
   GIBIBYTES("Gi") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toGibiBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return f(size);
      }
      @Override
      public long toKibiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toMegaBytes(long size) {
         return f(size);
      }
      @Override
      public long toMebiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toGigaBytes(long size) {
         return f(size);
      }
      @Override
      public long toGibiBytes(long size) {
         return size;
      }
      @Override
      public long toTeraBytes(long size) {
         return f(size);
      }
      @Override
      public long toTebiBytes(long size) {
         return size / ;
      }
   },
   TERABYTES("T") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toTeraBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toMegaBytes(long size) {
         return x(size / );
      }
      @Override
      public long toMebiBytes(long size) {
         return f(size);
      }
      @Override
      public long toGigaBytes(long size) {
         return x(size / );
      }
      @Override
      public long toGibiBytes(long size) {
         return f(size);
      }
      @Override
      public long toTeraBytes(long size) {
         return size;
      }
      @Override
      public long toTebiBytes(long size) {
         return f(size);
      }
   },
   TEBIBYTES("Ti") {
      @Override
      public long convert(long sourceSizeMemoryUnit sourceUnit) {
         return sourceUnit.toTebiBytes(sourceSize);
      }
      @Override
      public long toBytes(long size) {
         return x(size / );
      }
      @Override
      public long toKiloBytes(long size) {
         return f(size);
      }
      @Override
      public long toKibiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toMegaBytes(long size) {
         return f(size);
      }
      @Override
      public long toMebiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toGigaBytes(long size) {
         return f(size);
      }
      @Override
      public long toGibiBytes(long size) {
         return x(size / );
      }
      @Override
      public long toTeraBytes(long size) {
         return f(size);
      }
      @Override
      public long toTebiBytes(long size) {
         return size;
      }
   };
   private static final long KILO = 1000;
   private static final long KIBI = 1024;
   private static final long MEGA =  * ;
   private static final long MEBI =  * ;
   private static final long GIGA =  * ;
   private static final long GIBI =  * ;
   private static final long TERA =  * ;
   private static final long TEBI =  * ;
   static final long MAX = .;
   private final String suffix;
   MemoryUnit(String suffix) {
      this. = suffix;
   }
   public String getSuffix() {
      return ;
   }
   static long f(long dlong numeratorlong denominator) {
      return (long) (((float)d) * ((float)numerator) / (denominator));
   }
   static long x(long dlong mlong over) {
      if (d > over)
         return .;
      if (d < -over)
         return .;
      return d * m;
   }
   public long convert(long sourceSizeMemoryUnit sourceUnit) {
      throw new AbstractMethodError();
   }
   public long toBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toKiloBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toKibiBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toMegaBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toMebiBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toGigaBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toGibiBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toTeraBytes(long size) {
      throw new AbstractMethodError();
   }
   public long toTebiBytes(long size) {
      throw new AbstractMethodError();
   }
   public static long parseBytes(String s) {
      if (s == null)
         throw new NullPointerException();
      int us = s.length();
      while (us > 0 && !Character.isDigit(s.charAt(us - 1))) {
         us--;
      }
      if (us == s.length()) {
         return Long.parseLong(s);
      }
      String suffix = s.substring(us);
      for(MemoryUnit u : MemoryUnit.values()) {
         if (u.suffix.equals(suffix)) {
            long size = Long.parseLong(s.substring(0, us));
            return u.toBytes(size);
         }
      }
      throw new IllegalArgumentException(s);
   }
New to GrepCode? Check out our FAQ X