public static TimeZoneKey getTimeZoneKey(String zoneId) { requireNonNull(zoneId, "Zone id is null"); checkArgument(!zoneId.isEmpty(), "Zone id is an empty string"); TimeZoneKey zoneKey = ZONE_ID_TO_KEY.get(zoneId.toLowerCase(ENGLISH)); if (zoneKey == null) { zoneKey = ZONE_ID_TO_KEY.get(normalizeZoneId(zoneId)); } if (zoneKey == null) { throw new TimeZoneNotSupportedException(zoneId); } return zoneKey; }
@Test public void testInvalidSessionError() { String invalidTimeZone = "this_is_an_invalid_time_zone"; Request request = preparePost().setHeader(PRESTO_USER, "user") .setUri(uriFor("/v1/statement")) .setBodyGenerator(createStaticBodyGenerator("show catalogs", UTF_8)) .setHeader(PRESTO_SOURCE, "source") .setHeader(PRESTO_CATALOG, "catalog") .setHeader(PRESTO_SCHEMA, "schema") .setHeader(PRESTO_PATH, "path") .setHeader(PRESTO_TIME_ZONE, invalidTimeZone) .build(); QueryResults queryResults = client.execute(request, createJsonResponseHandler(QUERY_RESULTS_CODEC)); while (queryResults.getNextUri() != null) { queryResults = client.execute(prepareGet().setUri(queryResults.getNextUri()).build(), createJsonResponseHandler(QUERY_RESULTS_CODEC)); } QueryError queryError = queryResults.getError(); assertNotNull(queryError); TimeZoneNotSupportedException expected = new TimeZoneNotSupportedException(invalidTimeZone); assertEquals(queryError.getErrorCode(), expected.getErrorCode().getCode()); assertEquals(queryError.getErrorName(), expected.getErrorCode().getName()); assertEquals(queryError.getErrorType(), expected.getErrorCode().getType().name()); assertEquals(queryError.getMessage(), expected.getMessage()); }
private static TimeZoneKey getTimeZoneKey(String timeZoneId) { try { return TimeZoneKey.getTimeZoneKey(timeZoneId); } catch (TimeZoneNotSupportedException e) { throw badRequest(e.getMessage()); } }
public static TimeZoneKey getTimeZoneKeyForOffset(long offsetMinutes) { if (offsetMinutes == 0) { return UTC_KEY; } if (!(offsetMinutes >= OFFSET_TIME_ZONE_MIN && offsetMinutes <= OFFSET_TIME_ZONE_MAX)) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, String.format("Invalid offset minutes %s", offsetMinutes)); } TimeZoneKey timeZoneKey = OFFSET_TIME_ZONE_KEYS[((int) offsetMinutes) - OFFSET_TIME_ZONE_MIN]; if (timeZoneKey == null) { throw new TimeZoneNotSupportedException(zoneIdForOffset(offsetMinutes)); } return timeZoneKey; }
public static TimeZoneKey getTimeZoneKey(String zoneId) { requireNonNull(zoneId, "Zone id is null"); checkArgument(!zoneId.isEmpty(), "Zone id is an empty string"); TimeZoneKey zoneKey = ZONE_ID_TO_KEY.get(zoneId.toLowerCase(ENGLISH)); if (zoneKey == null) { zoneKey = ZONE_ID_TO_KEY.get(normalizeZoneId(zoneId)); } if (zoneKey == null) { throw new TimeZoneNotSupportedException(zoneId); } return zoneKey; }
public static TimeZoneKey getTimeZoneKeyForOffset(long offsetMinutes) { if (offsetMinutes == 0) { return UTC_KEY; } if (!(offsetMinutes >= OFFSET_TIME_ZONE_MIN && offsetMinutes <= OFFSET_TIME_ZONE_MAX)) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, String.format("Invalid offset minutes %s", offsetMinutes)); } TimeZoneKey timeZoneKey = OFFSET_TIME_ZONE_KEYS[((int) offsetMinutes) - OFFSET_TIME_ZONE_MIN]; if (timeZoneKey == null) { throw new TimeZoneNotSupportedException(zoneIdForOffset(offsetMinutes)); } return timeZoneKey; }