UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

139 lines (122 loc) 3.74 kB
/* * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos * @license BSD-3-Clause (see LICENSE in the root directory of this source tree) */ import {DateTimeException} from '../errors'; import {DateTimeFormatter} from './DateTimeFormatter'; /** * @private */ export class DateTimePrintContext{ /** * * @param {TemporalAccessor} temporal * @param {DateTimeFormatter|Locale} localeOrFormatter * @param {DecimalStyle} symbols */ constructor(temporal, localeOrFormatter, symbols) { if(arguments.length === 2 && arguments[1] instanceof DateTimeFormatter){ this._temporal = DateTimePrintContext.adjust(temporal, localeOrFormatter); this._locale = localeOrFormatter.locale(); this._symbols = localeOrFormatter.decimalStyle(); } else { this._temporal = temporal; this._locale = localeOrFormatter; this._symbols = symbols; } this._optional = 0; } /** * * @param {TemporalAccessor} temporal * @param {DateTimeFormatter} formatter * @returns {TemporalAccessor} */ // eslint-disable-next-line no-unused-vars static adjust(temporal, formatter) { // TODO implement return temporal; } symbols(){ return this._symbols; } /** * Starts the printing of an optional segment of the input. */ startOptional() { this._optional++; } /** * Ends the printing of an optional segment of the input. */ endOptional() { this._optional--; } /** * Gets a value using a query. * * @param {TemporalQuery} query the query to use, not null * @return {*} the result, null if not found and optional is true * @throws DateTimeException if the type is not available and the section is not optional */ getValueQuery(query) { const result = this._temporal.query(query); if (result == null && this._optional === 0) { throw new DateTimeException('Unable to extract value: ' + this._temporal); } return result; } /** * Gets the value of the specified field. * * This will return the value for the specified field. * * @param field the field to find, not null * @return the value, null if not found and optional is true * @throws DateTimeException if the field is not available and the section is not optional */ getValue(field) { try { return this._temporal.getLong(field); } catch (ex) { if ((ex instanceof DateTimeException) && this._optional > 0) { return null; } throw ex; } } //----------------------------------------------------------------------- /** * Gets the temporal object being output. * * @return {TemporalAccessor} the temporal object, not null */ temporal() { return this._temporal; } /** * Gets the locale. * <p> * This locale is used to control localization in the print output except * where localization is controlled by the symbols. * * @return the locale, not null */ locale() { return this._locale; } //------------------------------------------------------------------------- // for testing /** * Sets the date-time being output. * * @param temporal the date-time object, not null */ setDateTime(temporal) { this._temporal = temporal; } setLocale(locale) { this._locale = locale; } }