private void populateCache(int index) { if (cache == null) { int size = CacheKey.values().length; cache = new Object[size]; cacheState = new byte[size]; } if (cacheState[index] == STATE_NOT_CACHED) { CacheKey key = CacheKey.values()[index]; if (getJSONObject().has(key.name())) { cache[index] = key.extractValue(this); cacheState[index] = STATE_CACHED_VALUE; } else { cacheState[index] = STATE_CACHED_NO_VALUE; } } }