novie-core/src/main/java/com/groupon/novie/utils/SchemaDefinitionImpl.java
@Override
    public DimensionTable getDimensionByName(String dimensionName, String tzNameAlias) {
        DimensionTable dimensionTable;
        if (StringUtils.isBlank(tzNameAlias) || (StringUtils.isNotBlank(tzNameAlias) && tzNameAlias.equals(getDefaultTimezone()))) {
            dimensionTable = dimensions.get(dimensionName.toUpperCase());
        } else {
            if (!isTimeZoneSupported(tzNameAlias)) {
                LOG.error(tzNameAlias + " TZ is not supported, do not consider it.");
                dimensionTable = dimensions.get(dimensionName.toUpperCase());
            } else {
                String tzName = tzNamesAliases.get(tzNameAlias);
                dimensionTable = alternateDimensions.get(Pair.of(dimensionName.toUpperCase(), tzName));
                if (dimensionTable == null) {
                    // No alternateTable for this dimension/tz pair
                    dimensionTable = dimensions.get(dimensionName.toUpperCase());
                }
            }

        }
        if (dimensionTable == null) {
            throw new IllegalArgumentException("Invalid SqlTable for the dimension: " + dimensionName);
        }
        return dimensionTable;
    }
@Override
    public DimensionTable getDimensionByName(String dimensionName, String tzNameAlias) {
        DimensionTable dimensionTable;
        if (StringUtils.isBlank(tzNameAlias) || (StringUtils.isNotBlank(tzNameAlias) && tzNameAlias.equals(getDefaultTimezone()))) {
            dimensionTable = dimensions.get(dimensionName.toUpperCase());
        } else {
            if (!isTimeZoneSupported(tzNameAlias)) {
                LOG.error(tzNameAlias + " TZ is not supported, do not consider it.");
                dimensionTable = dimensions.get(dimensionName.toUpperCase());
            } else {
                String tzName = tzNamesAliases.get(tzNameAlias);
                dimensionTable = alternateDimensions.get(Pair.of(dimensionName.toUpperCase(), tzName));
                if (dimensionTable == null) {
                    // No alternateTable for this dimension/tz pair
                    dimensionTable = dimensions.get(dimensionName.toUpperCase());
                }
            }

        }
        if (dimensionTable == null) {
            throw new IllegalArgumentException("Invalid SqlTable for the dimension: " + dimensionName);
        }
        return dimensionTable;
    }
/*
(non-Javadoc)

@see com.groupon.novie.SchemaConfig#getDimensionByName(java.lang.String,
java.lang.String)