code: @Override
  	public String getCacheKeyForTable(final Object table) {
  		String tableName;
  		TableWithNullOption nullOptionTable = null;
  		if (table instanceof TableWithNullOption) {
  			nullOptionTable = (TableWithNullOption) table;
  			tableName = nullOptionTable.getTableName();
  		} else {
  			tableName = (String) table;
  		}
  
  		// For the examples, we only cache the "icao" and "australian_state" sets.
  		if ("icao".equals(tableName) || "australian_state".equals(tableName) || "nodata".equals(
  				tableName)) {
  			StringBuffer key = new StringBuffer(tableName);
  			if (nullOptionTable != null) {
  				key.append("C");
  				key.append(Base64Util.encodeString(nullOptionTable.getNullCode()));
  				key.append("D");
  				key.append(Base64Util.encodeString(nullOptionTable.getNullDescription()));
  			}
  			key.append("##VERSION##");
  			CACHE_MAP.put(key.toString(), table);
  			return key.toString();
  		}
  
  		return null;
  	}
docs: {@inheritDoc}