001    package org.codehaus.groovy.runtime.typehandling;
002    
003    public class IntegerCache {
004        private IntegerCache(){}
005        
006        static final Integer cache[] = new Integer[-(-128) + 127 + 1];
007        
008        static {
009            for(int i = 0; i < cache.length; i++)
010                cache[i] = new Integer(i - 128);
011        }
012        
013        public static Integer integerValue(int i) {
014            final int offset = 128;
015            if (i >= -128 && i <= 127) { // must cache 
016                return cache[i + offset];
017            }
018            return new Integer(i);
019        }
020    }