j4ts
Version:
JavaScript part of j4ts library
1,036 lines • 1.35 MB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/* Generated from Java with JSweet 2.3.6-SNAPSHOT - http://www.jsweet.org */
var javaemul;
(function (javaemul) {
var internal;
(function (internal) {
/**
* Private implementation class for GWT. This API should not be
* considered public or stable.
* @class
*/
class Coercions {
/**
* Coerce js int to 32 bits.
* Trick related to JS and lack of integer rollover.
* {@see com.google.gwt.lang.Cast#narrow_int}
* @param {number} value
* @return {number}
*/
static ensureInt(value) {
return value | 0;
}
constructor() {
}
}
internal.Coercions = Coercions;
Coercions["__class"] = "javaemul.internal.Coercions";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
class JreHelper {
static LOG10E_$LI$() { if (JreHelper.LOG10E == null)
JreHelper.LOG10E = Math.LOG10E; return JreHelper.LOG10E; }
;
}
internal.JreHelper = JreHelper;
JreHelper["__class"] = "javaemul.internal.JreHelper";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
/**
* Wraps native <code>boolean</code> as an object.
* @param {boolean} value
* @class
*/
class BooleanHelper {
constructor() {
}
static TYPE_$LI$() { if (BooleanHelper.TYPE == null)
BooleanHelper.TYPE = Boolean; return BooleanHelper.TYPE; }
;
static compare(x, y) {
return (x === y) ? 0 : (x ? 1 : -1);
}
static hashCode(value) {
return value ? 1231 : 1237;
}
static logicalAnd(a, b) {
return a && b;
}
static logicalOr(a, b) {
return a || b;
}
static logicalXor(a, b) {
return (a) !== (b);
}
static parseBoolean(s) {
return /* equalsIgnoreCase */ ((o1, o2) => o1.toUpperCase() === (o2 === null ? o2 : o2.toUpperCase()))("true", s);
}
static toString(x) {
return /* valueOf */ new String(x).toString();
}
static valueOf$boolean(b) {
return b ? BooleanHelper.TRUE : BooleanHelper.FALSE;
}
static valueOf$java_lang_String(s) {
return BooleanHelper.valueOf$boolean(BooleanHelper.parseBoolean(s));
}
static valueOf(s) {
if (((typeof s === 'string') || s === null)) {
return javaemul.internal.BooleanHelper.valueOf$java_lang_String(s);
}
else if (((typeof s === 'boolean') || s === null)) {
return javaemul.internal.BooleanHelper.valueOf$boolean(s);
}
else
throw new Error('invalid overload');
}
booleanValue() {
return BooleanHelper.unsafeCast((javaemul.internal.InternalPreconditions.checkNotNull(this)));
}
/*private*/ static unsafeCast(value) {
return value;
}
compareTo$javaemul_internal_BooleanHelper(b) {
return BooleanHelper.compare(this.booleanValue(), b.booleanValue());
}
/**
*
* @param {javaemul.internal.BooleanHelper} b
* @return {number}
*/
compareTo(b) {
if (((b != null && b instanceof javaemul.internal.BooleanHelper) || b === null)) {
return this.compareTo$javaemul_internal_BooleanHelper(b);
}
else
throw new Error('invalid overload');
}
/**
*
* @param {*} o
* @return {boolean}
*/
equals(o) {
return javaemul.internal.InternalPreconditions.checkNotNull(this) === o;
}
/**
*
* @return {number}
*/
hashCode() {
return BooleanHelper.hashCode(this.booleanValue());
}
/**
*
* @return {string}
*/
toString() {
return BooleanHelper.toString(this.booleanValue());
}
}
BooleanHelper.FALSE = false;
BooleanHelper.TRUE = true;
internal.BooleanHelper = BooleanHelper;
BooleanHelper["__class"] = "javaemul.internal.BooleanHelper";
BooleanHelper["__interfaces"] = ["java.lang.Comparable", "java.io.Serializable"];
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
/**
* Hashcode caching for strings.
* @class
*/
class StringHashCache {
static back_$LI$() { if (StringHashCache.back == null)
StringHashCache.back = StringHashCache.createNativeObject(); return StringHashCache.back; }
;
static front_$LI$() { if (StringHashCache.front == null)
StringHashCache.front = StringHashCache.createNativeObject(); return StringHashCache.front; }
;
static getHashCode(str) {
let key = ":" + str;
let result = StringHashCache.getProperty(StringHashCache.front_$LI$(), key);
if (!javaemul.internal.JsUtils.isUndefined(result)) {
return StringHashCache.unsafeCastToInt(result);
}
result = StringHashCache.getProperty(StringHashCache.back_$LI$(), key);
let hashCode = javaemul.internal.JsUtils.isUndefined(result) ? StringHashCache.compute(str) : StringHashCache.unsafeCastToInt(result);
StringHashCache.increment();
javaemul.internal.JsUtils.setIntProperty(StringHashCache.front_$LI$(), key, hashCode);
return hashCode;
}
/*private*/ static compute(str) {
let hashCode = 0;
let n = str.length;
let nBatch = n - 4;
let i = 0;
while ((i < nBatch)) {
{
hashCode = (c => c.charCodeAt == null ? c : c.charCodeAt(0))(str.charAt(i + 3)) + 31 * ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(str.charAt(i + 2)) + 31 * ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(str.charAt(i + 1)) + 31 * ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(str.charAt(i)) + 31 * hashCode)));
hashCode = javaemul.internal.Coercions.ensureInt(hashCode);
i += 4;
}
}
;
while ((i < n)) {
{
hashCode = hashCode * 31 + (c => c.charCodeAt == null ? c : c.charCodeAt(0))(str.charAt(i++));
}
}
;
hashCode = javaemul.internal.Coercions.ensureInt(hashCode);
return hashCode;
}
/*private*/ static increment() {
if (StringHashCache.count === StringHashCache.MAX_CACHE) {
StringHashCache.back = StringHashCache.front;
StringHashCache.front = StringHashCache.createNativeObject();
StringHashCache.count = 0;
}
++StringHashCache.count;
}
/*private*/ static getProperty(map, key) {
return (map[key]);
}
/*private*/ static createNativeObject() {
return ({});
}
/*private*/ static unsafeCastToInt(o) {
return (o);
}
}
/**
* Tracks the number of entries in front.
*/
StringHashCache.count = 0;
/**
* Pulled this number out of thin air.
*/
StringHashCache.MAX_CACHE = 256;
internal.StringHashCache = StringHashCache;
StringHashCache["__class"] = "javaemul.internal.StringHashCache";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class ConsumingFunction {
constructor(consumer) {
if (this.consumer === undefined)
this.consumer = null;
this.consumer = (consumer);
}
/**
*
* @param {*} t
* @return {*}
*/
apply(t) {
(target => (typeof target === 'function') ? target(t) : target.accept(t))(this.consumer);
return t;
}
}
stream.ConsumingFunction = ConsumingFunction;
ConsumingFunction["__class"] = "javaemul.internal.stream.ConsumingFunction";
ConsumingFunction["__interfaces"] = ["java.util.function.Function"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class TerminalStreamRow {
chain(next) {
if (next.constructor === javaemul.internal.stream.StreamRowEnd) {
return;
}
throw new java.lang.IllegalStateException();
}
end() {
}
constructor() {
}
}
stream.TerminalStreamRow = TerminalStreamRow;
TerminalStreamRow["__class"] = "javaemul.internal.stream.TerminalStreamRow";
TerminalStreamRow["__interfaces"] = ["javaemul.internal.stream.StreamRow"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class RunnableChain {
constructor(run) {
if (this.run === undefined)
this.run = null;
if (this.next === undefined)
this.next = null;
this.run = (run);
}
chain(next) {
if (this.next == null) {
this.next = next;
return;
}
this.next.chain(next);
}
runChain() {
(target => (typeof target === 'function') ? target() : target.run())(this.run);
if (this.next == null) {
return;
}
this.next.runChain();
}
}
stream.RunnableChain = RunnableChain;
RunnableChain["__class"] = "javaemul.internal.stream.RunnableChain";
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class QuiteRunnable {
constructor(loudRunnable) {
if (this.loudRunnable === undefined)
this.loudRunnable = null;
this.loudRunnable = (loudRunnable);
}
/**
*
*/
run() {
try {
(target => (typeof target === 'function') ? target() : target.run())(this.loudRunnable);
}
catch (e) {
console.error(e.message, e);
}
;
}
}
stream.QuiteRunnable = QuiteRunnable;
QuiteRunnable["__class"] = "javaemul.internal.stream.QuiteRunnable";
QuiteRunnable["__interfaces"] = ["java.lang.Runnable"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class ChooseSmallest {
constructor(comparator) {
if (this.comparator === undefined)
this.comparator = null;
this.comparator = (comparator);
}
apply(t1, t2) {
if (this.comparator(t1, t2) <= 0) {
return t1;
}
return t2;
}
}
stream.ChooseSmallest = ChooseSmallest;
ChooseSmallest["__class"] = "javaemul.internal.stream.ChooseSmallest";
ChooseSmallest["__interfaces"] = ["java.util.function.BiFunction", "java.util.function.BinaryOperator"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class StreamHelper {
constructor(data) {
if (this.onCloseChain === undefined)
this.onCloseChain = null;
if (this.head === undefined)
this.head = null;
if (this.end === undefined)
this.end = null;
if (this.data === undefined)
this.data = null;
this.head = new javaemul.internal.stream.StreamRowMap((o) => o);
this.end = new javaemul.internal.stream.StreamRowEnd(this.head);
this.head.chain(this.end);
this.data = data;
}
/*private*/ chain(streamRow) {
this.end.chain(streamRow);
return this;
}
/*private*/ play() {
for (let index121 = this.data.iterator(); index121.hasNext();) {
let item = index121.next();
{
if (!this.head.item(item)) {
break;
}
}
}
this.head.end();
}
/*private*/ foldRight(identity, accumulator) {
let rowReduce = new javaemul.internal.stream.StreamRowReduce(identity, (accumulator));
this.chain(rowReduce);
this.play();
return rowReduce.getResult();
}
filter(predicate) {
return this.chain(new javaemul.internal.stream.StreamRowFilter((predicate)));
}
map(mapper) {
return this.chain(new javaemul.internal.stream.StreamRowMap((mapper)));
}
mapToObj(mapper) {
return this.chain(new javaemul.internal.stream.StreamRowMap((n) => (target => (typeof target === 'function') ? target(n) : target.apply(n))(mapper)));
}
flatMap(mapper) {
return this.chain(new javaemul.internal.stream.StreamRowFlatMap((mapper)));
}
distinct() {
return this.chain(new javaemul.internal.stream.StreamRowCollector((new java.util.LinkedHashSet())));
}
sorted$() {
return this.sorted$java_util_Comparator((a, b) => a.compareTo(b));
}
sorted$java_util_Comparator(comparator) {
return this.chain(new javaemul.internal.stream.StreamRowSortingCollector((new java.util.ArrayList()), (comparator)));
}
sorted(comparator) {
if (((typeof comparator === 'function' && comparator.length == 2) || comparator === null)) {
return this.sorted$java_util_Comparator(comparator);
}
else if (comparator === undefined) {
return this.sorted$();
}
else
throw new Error('invalid overload');
}
peek(action) {
return this.chain(new javaemul.internal.stream.StreamRowMap((arg0) => { return new javaemul.internal.stream.ConsumingFunction(action).apply(arg0); }));
}
limit(maxSize) {
return this.chain(new javaemul.internal.stream.StreamRowFilterFlop((arg0) => { return new javaemul.internal.stream.CountingPredicate(maxSize).test(arg0); }));
}
skip(n) {
let p = (new javaemul.internal.stream.CountingPredicate(n));
return this.chain(new javaemul.internal.stream.StreamRowFilter(((p) => {
return (v) => !p.test(v);
})(p)));
}
forEach(action) {
this.peek((action));
this.play();
}
forEachOrdered(action) {
this.forEach((action));
}
toArray$() {
let result = (new java.util.ArrayList());
this.chain(new javaemul.internal.stream.StreamRowCollector(result));
this.play();
return result.toArray();
}
toArray$java_util_function_IntFunction(generator) {
let result = (new java.util.ArrayList());
this.chain(new javaemul.internal.stream.StreamRowCollector(result));
this.play();
return result['toArray$java_lang_Object_A']((target => (typeof target === 'function') ? target(result.size()) : target.apply(result.size()))(generator));
}
toArray(generator) {
if (((typeof generator === 'function' && generator.length == 1) || generator === null)) {
return this.toArray$java_util_function_IntFunction(generator);
}
else if (generator === undefined) {
return this.toArray$();
}
else
throw new Error('invalid overload');
}
reduce$java_lang_Object$java_util_function_BinaryOperator(identity, accumulator) {
return this.foldRight(java.util.Optional.of(identity), (accumulator)).get();
}
reduce$java_util_function_BinaryOperator(accumulator) {
return this.foldRight(java.util.Optional.empty(), (accumulator));
}
collect$java_util_stream_Collector(collector) {
let container = (target => (typeof target === 'function') ? target() : target.get())(collector.supplier());
let accumulator = (collector.accumulator());
this.chain(new javaemul.internal.stream.StreamRowMap((arg0) => {
return new javaemul.internal.stream.ConsumingFunction(((container, accumulator) => {
return (item) => (target => (typeof target === 'function') ? target(container, item) : target.accept(container, item))(accumulator);
})(container, accumulator)).apply(arg0);
}));
this.play();
return container;
}
min(comparator) {
return this.foldRight(java.util.Optional.empty(), (a, b) => comparator(a, b) <= 0 ? a : b);
}
max(comparator) {
return this.foldRight(java.util.Optional.empty(), (a, b) => comparator(a, b) >= 0 ? a : b);
}
count() {
let counter = new javaemul.internal.stream.StreamRowCount();
this.chain(counter);
this.play();
return counter.getCount();
}
anyMatch(predicate) {
let streamRow = new javaemul.internal.stream.StreamRowOnceFilter((predicate));
this.chain(streamRow);
this.play();
return streamRow.getPredicateValue();
}
allMatch(predicate) {
let streamRow = new javaemul.internal.stream.StreamRowAllFilter((predicate));
this.chain(streamRow);
this.play();
return streamRow.getPredicateValue();
}
noneMatch(predicate) {
return this.allMatch((v) => !(target => (typeof target === 'function') ? target(v) : target.test(v))(predicate));
}
findFirst() {
let streamRow = new javaemul.internal.stream.StreamRowOnceFilter((o) => true);
this.chain(streamRow);
this.play();
return streamRow.getFirstMatch();
}
findAny() {
return this.findFirst();
}
iterator() {
let result = (new java.util.ArrayList());
this.chain(new javaemul.internal.stream.StreamRowCollector(result));
this.play();
return result.iterator();
}
isParallel() {
return false;
}
sequential() {
return this;
}
parallel() {
return this;
}
unordered() {
return this;
}
onClose(closeHandler) {
let chainItem = new javaemul.internal.stream.RunnableChain(() => { return new javaemul.internal.stream.QuiteRunnable(closeHandler).run(); });
if (this.onCloseChain == null) {
this.onCloseChain = chainItem;
}
else {
this.onCloseChain.chain(chainItem);
}
return this;
}
close() {
if (this.onCloseChain == null) {
return;
}
this.onCloseChain.runChain();
}
mapToInt(mapper) {
throw new java.lang.IllegalStateException();
}
mapToLong(mapper) {
throw new java.lang.IllegalStateException();
}
mapToDouble(mapper) {
throw new java.lang.IllegalStateException();
}
flatMapToInt(mapper) {
throw new java.lang.IllegalStateException();
}
flatMapToLong(mapper) {
throw new java.lang.IllegalStateException();
}
flatMapToDouble(mapper) {
throw new java.lang.IllegalStateException();
}
spliterator() {
throw new java.lang.IllegalStateException();
}
reduce$java_lang_Object$java_util_function_BiFunction$java_util_function_BinaryOperator(identity, accumulator, combiner) {
throw new java.lang.IllegalStateException();
}
reduce(identity, accumulator, combiner) {
if (((identity != null) || identity === null) && ((typeof accumulator === 'function' && accumulator.length == 2) || accumulator === null) && ((typeof combiner === 'function' && combiner.length == 2) || combiner === null)) {
return this.reduce$java_lang_Object$java_util_function_BiFunction$java_util_function_BinaryOperator(identity, accumulator, combiner);
}
else if (((identity != null) || identity === null) && ((typeof accumulator === 'function' && accumulator.length == 2) || accumulator === null) && combiner === undefined) {
return this.reduce$java_lang_Object$java_util_function_BinaryOperator(identity, accumulator);
}
else if (((typeof identity === 'function' && identity.length == 2) || identity === null) && accumulator === undefined && combiner === undefined) {
return this.reduce$java_util_function_BinaryOperator(identity);
}
else
throw new Error('invalid overload');
}
collect$java_util_function_Supplier$java_util_function_BiConsumer$java_util_function_BiConsumer(supplier, accumulator, combiner) {
throw new java.lang.IllegalStateException();
}
collect(supplier, accumulator, combiner) {
if (((typeof supplier === 'function' && supplier.length == 0) || supplier === null) && ((typeof accumulator === 'function' && accumulator.length == 2) || accumulator === null) && ((typeof combiner === 'function' && combiner.length == 2) || combiner === null)) {
return this.collect$java_util_function_Supplier$java_util_function_BiConsumer$java_util_function_BiConsumer(supplier, accumulator, combiner);
}
else if (((supplier != null && (supplier["__interfaces"] != null && supplier["__interfaces"].indexOf("java.util.stream.Collector") >= 0 || supplier.constructor != null && supplier.constructor["__interfaces"] != null && supplier.constructor["__interfaces"].indexOf("java.util.stream.Collector") >= 0)) || supplier === null) && accumulator === undefined && combiner === undefined) {
return this.collect$java_util_stream_Collector(supplier);
}
else
throw new Error('invalid overload');
}
}
stream.StreamHelper = StreamHelper;
StreamHelper["__class"] = "javaemul.internal.stream.StreamHelper";
StreamHelper["__interfaces"] = ["java.util.stream.Stream"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class CountingPredicate {
constructor(n) {
if (this.countDown === undefined)
this.countDown = 0;
this.countDown = n;
}
/**
*
* @param {*} t
* @return {boolean}
*/
test(t) {
if (this.countDown <= 0) {
return false;
}
--this.countDown;
return true;
}
}
stream.CountingPredicate = CountingPredicate;
CountingPredicate["__class"] = "javaemul.internal.stream.CountingPredicate";
CountingPredicate["__interfaces"] = ["java.util.function.Predicate"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class TransientStreamRow {
constructor() {
if (this.next === undefined)
this.next = null;
}
chain(next) {
this.next = next;
}
}
stream.TransientStreamRow = TransientStreamRow;
TransientStreamRow["__class"] = "javaemul.internal.stream.TransientStreamRow";
TransientStreamRow["__interfaces"] = ["javaemul.internal.stream.StreamRow"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
var stream;
(function (stream) {
class VoidRunnable {
constructor() {
}
static dryRun_$LI$() { if (VoidRunnable.dryRun == null)
VoidRunnable.dryRun = new VoidRunnable(); return VoidRunnable.dryRun; }
;
run() {
}
}
stream.VoidRunnable = VoidRunnable;
VoidRunnable["__class"] = "javaemul.internal.stream.VoidRunnable";
VoidRunnable["__interfaces"] = ["java.lang.Runnable"];
})(stream = internal.stream || (internal.stream = {}));
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
/**
* Provides an interface for simple JavaScript idioms that can not be expressed in Java.
* @class
*/
class JsUtils {
static getInfinity() {
return Infinity;
}
static isUndefined(value) {
return value == null;
}
static unsafeCastToString(string) {
return string;
}
static setPropertySafe(map, key, value) {
try {
(map)[key] = value;
}
catch (e) {
}
;
}
static getIntProperty(map, key) {
return ((map)[key]);
}
static setIntProperty(map, key, value) {
(map)[key] = value;
}
static typeOf(o) {
return typeof o;
}
}
internal.JsUtils = JsUtils;
JsUtils["__class"] = "javaemul.internal.JsUtils";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
/**
* A helper class for long comparison.
* @class
*/
class LongCompareHolder {
static getLongComparator() {
return (l1, l2) => l2 - l1;
}
}
internal.LongCompareHolder = LongCompareHolder;
LongCompareHolder["__class"] = "javaemul.internal.LongCompareHolder";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
class ObjectHelper {
static clone(obj) {
var copy;
if (null == obj || "object" != typeof obj)
return obj;
if (obj instanceof Date) {
copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
;
if (obj instanceof Array) {
copy = [];
for (var i = 0, len = obj.length; i < len; i++) {
copy[i] = javaemul.internal.ObjectHelper.clone(obj[i]);
}
return copy;
}
;
if (obj instanceof Object) {
copy = {};
for (var attr in obj) {
if (obj.hasOwnProperty(attr))
copy[attr] = javaemul.internal.ObjectHelper.clone(obj[attr]);
}
return copy;
}
;
throw new Error("Unable to copy obj! Its type isn\'t supported.");
}
}
internal.ObjectHelper = ObjectHelper;
ObjectHelper["__class"] = "javaemul.internal.ObjectHelper";
})(internal = javaemul.internal || (javaemul.internal = {}));
})(javaemul = exports.javaemul || (exports.javaemul = {}));
(function (javaemul) {
var internal;
(function (internal) {
/**
* Wraps a native <code>char</code> as an object.
*
* TODO(jat): many of the classification methods implemented here are not
* correct in that they only handle ASCII characters, and many other methods are
* not currently implemented. I think the proper approach is to introduce * a
* deferred binding parameter which substitutes an implementation using a
* fully-correct Unicode character database, at the expense of additional data
* being downloaded. That way developers that need the functionality can get it
* without those who don't need it paying for it.
*
* <pre>
* The following methods are still not implemented -- most would require Unicode
* character db to be useful:
* - digit / is* / to*(int codePoint)
* - isDefined(char)
* - isIdentifierIgnorable(char)
* - isJavaIdentifierPart(char)
* - isJavaIdentifierStart(char)
* - isJavaLetter(char) -- deprecated, so probably not
* - isJavaLetterOrDigit(char) -- deprecated, so probably not
* - isISOControl(char)
* - isMirrored(char)
* - isSpaceChar(char)
* - isTitleCase(char)
* - isUnicodeIdentifierPart(char)
* - isUnicodeIdentifierStart(char)
* - getDirectionality(*)
* - getNumericValue(*)
* - getType(*)
* - reverseBytes(char) -- any use for this at all in the browser?
* - toTitleCase(*)
* - all the category constants for classification
*
* The following do not properly handle characters outside of ASCII:
* - digit(char c, int radix)
* - isDigit(char c)
* - isLetter(char c)
* - isLetterOrDigit(char c)
* - isLowerCase(char c)
* - isUpperCase(char c)
* </pre>
* @param {string} value
* @class
*/
class CharacterHelper {
constructor(value) {
if (this.value === undefined)
this.value = null;
this.value = value;
}
static TYPE_$LI$() { if (CharacterHelper.TYPE == null)
CharacterHelper.TYPE = String; return CharacterHelper.TYPE; }
;
static charCount(codePoint) {
return codePoint >= CharacterHelper.MIN_SUPPLEMENTARY_CODE_POINT ? 2 : 1;
}
static codePointAt$char_A$int(a, index) {
return CharacterHelper.codePointAt$java_lang_CharSequence$int$int(new String(a), index, a.length);
}
static codePointAt$char_A$int$int(a, index, limit) {
return CharacterHelper.codePointAt$java_lang_CharSequence$int$int(new String(a), index, limit);
}
static codePointAt(a, index, limit) {
if (((a != null && a instanceof Array && (a.length == 0 || a[0] == null || (typeof a[0] === 'string'))) || a === null) && ((typeof index === 'number') || index === null) && ((typeof limit === 'number') || limit === null)) {
return javaemul.internal.CharacterHelper.codePointAt$char_A$int$int(a, index, limit);
}
else if (((a != null && (a["__interfaces"] != null && a["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || a.constructor != null && a.constructor["__interfaces"] != null && a.constructor["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || typeof a === "string")) || a === null) && ((typeof index === 'number') || index === null) && ((typeof limit === 'number') || limit === null)) {
return javaemul.internal.CharacterHelper.codePointAt$java_lang_CharSequence$int$int(a, index, limit);
}
else if (((a != null && a instanceof Array && (a.length == 0 || a[0] == null || (typeof a[0] === 'string'))) || a === null) && ((typeof index === 'number') || index === null) && limit === undefined) {
return javaemul.internal.CharacterHelper.codePointAt$char_A$int(a, index);
}
else if (((a != null && (a["__interfaces"] != null && a["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || a.constructor != null && a.constructor["__interfaces"] != null && a.constructor["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || typeof a === "string")) || a === null) && ((typeof index === 'number') || index === null) && limit === undefined) {
return javaemul.internal.CharacterHelper.codePointAt$java_lang_CharSequence$int(a, index);
}
else
throw new Error('invalid overload');
}
static codePointAt$java_lang_CharSequence$int(seq, index) {
return CharacterHelper.codePointAt$java_lang_CharSequence$int$int(seq, index, seq.length);
}
static codePointBefore$char_A$int(a, index) {
return CharacterHelper.codePointBefore$java_lang_CharSequence$int$int(new String(a), index, 0);
}
static codePointBefore$char_A$int$int(a, index, start) {
return CharacterHelper.codePointBefore$java_lang_CharSequence$int$int(new String(a), index, start);
}
static codePointBefore(a, index, start) {
if (((a != null && a instanceof Array && (a.length == 0 || a[0] == null || (typeof a[0] === 'string'))) || a === null) && ((typeof index === 'number') || index === null) && ((typeof start === 'number') || start === null)) {
return javaemul.internal.CharacterHelper.codePointBefore$char_A$int$int(a, index, start);
}
else if (((a != null && (a["__interfaces"] != null && a["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || a.constructor != null && a.constructor["__interfaces"] != null && a.constructor["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || typeof a === "string")) || a === null) && ((typeof index === 'number') || index === null) && ((typeof start === 'number') || start === null)) {
return javaemul.internal.CharacterHelper.codePointBefore$java_lang_CharSequence$int$int(a, index, start);
}
else if (((a != null && a instanceof Array && (a.length == 0 || a[0] == null || (typeof a[0] === 'string'))) || a === null) && ((typeof index === 'number') || index === null) && start === undefined) {
return javaemul.internal.CharacterHelper.codePointBefore$char_A$int(a, index);
}
else if (((a != null && (a["__interfaces"] != null && a["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || a.constructor != null && a.constructor["__interfaces"] != null && a.constructor["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || typeof a === "string")) || a === null) && ((typeof index === 'number') || index === null) && start === undefined) {
return javaemul.internal.CharacterHelper.codePointBefore$java_lang_CharSequence$int(a, index);
}
else
throw new Error('invalid overload');
}
static codePointBefore$java_lang_CharSequence$int(cs, index) {
return CharacterHelper.codePointBefore$java_lang_CharSequence$int$int(cs, index, 0);
}
static codePointCount$char_A$int$int(a, offset, count) {
return CharacterHelper.codePointCount$java_lang_CharSequence$int$int(new String(a), offset, offset + count);
}
static codePointCount(a, offset, count) {
if (((a != null && a instanceof Array && (a.length == 0 || a[0] == null || (typeof a[0] === 'string'))) || a === null) && ((typeof offset === 'number') || offset === null) && ((typeof count === 'number') || count === null)) {
return javaemul.internal.CharacterHelper.codePointCount$char_A$int$int(a, offset, count);
}
else if (((a != null && (a["__interfaces"] != null && a["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || a.constructor != null && a.constructor["__interfaces"] != null && a.constructor["__interfaces"].indexOf("java.lang.CharSequence") >= 0 || typeof a === "string")) || a === null) && ((typeof offset === 'number') || offset === null) && ((typeof count === 'number') || count === null)) {
return javaemul.internal.CharacterHelper.codePointCount$java_lang_CharSequence$int$int(a, offset, count);
}
else
throw new Error('invalid overload');
}
static codePointCount$java_lang_CharSequence$int$int(seq, beginIndex, endIndex) {
let count = 0;
for (let idx = beginIndex; idx < endIndex;) {
{
let ch = seq.charAt(idx++);
if (CharacterHelper.isHighSurrogate(ch) && idx < endIndex && (CharacterHelper.isLowSurrogate(seq.charAt(idx)))) {
++idx;
}
++count;
}
;
}
return count;
}
static compare(x, y) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(x) - (c => c.charCodeAt == null ? c : c.charCodeAt(0))(y);
}
static digit(c, radix) {
if (radix < CharacterHelper.MIN_RADIX || radix > CharacterHelper.MAX_RADIX) {
return -1;
}
if ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) >= '0'.charCodeAt(0) && (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) < '0'.charCodeAt(0) + Math.min(radix, 10)) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) - '0'.charCodeAt(0);
}
if ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) >= 'a'.charCodeAt(0) && (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) < (radix + 'a'.charCodeAt(0) - 10)) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) - 'a'.charCodeAt(0) + 10;
}
if ((c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) >= 'A'.charCodeAt(0) && (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) < (radix + 'A'.charCodeAt(0) - 10)) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) - 'A'.charCodeAt(0) + 10;
}
return -1;
}
static getNumericValue(ch) {
return (ch.charCodeAt(0) | 0);
}
static forDigit$int$int(digit, radix) {
if (radix < CharacterHelper.MIN_RADIX || radix > CharacterHelper.MAX_RADIX) {
return String.fromCharCode(0);
}
if (digit < 0 || digit >= radix) {
return String.fromCharCode(0);
}
return CharacterHelper.forDigit$int(digit);
}
static forDigit(digit, radix) {
if (((typeof digit === 'number') || digit === null) && ((typeof radix === 'number') || radix === null)) {
return javaemul.internal.CharacterHelper.forDigit$int$int(digit, radix);
}
else if (((typeof digit === 'number') || digit === null) && radix === undefined) {
return javaemul.internal.CharacterHelper.forDigit$int(digit);
}
else
throw new Error('invalid overload');
}
/**
* @skip
*
* public for shared implementation with Arrays.hashCode
* @param {string} c
* @return {number}
*/
static hashCode(c) {
return (c).charCodeAt(0);
}
static isDigit(c) {
let result = ( /* valueOf */new String(c).toString()).match(CharacterHelper.digitRegex());
return result != null && result.length > 0;
}
static digitRegex() {
return new RegExp("\\d");
}
static isHighSurrogate(ch) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(ch) >= (c => c.charCodeAt == null ? c : c.charCodeAt(0))(CharacterHelper.MIN_HIGH_SURROGATE) && (c => c.charCodeAt == null ? c : c.charCodeAt(0))(ch) <= (c => c.charCodeAt == null ? c : c.charCodeAt(0))(CharacterHelper.MAX_HIGH_SURROGATE);
}
static isLetter(c) {
return ( /* valueOf */new String(c).toString()).match(CharacterHelper.leterRegex()).length > 0;
}
static leterRegex() {
return new RegExp("[A-Z]", "i");
}
static isLetterOrDigit(c) {
let array = ( /* valueOf */new String(c).toString()).match(CharacterHelper.leterOrDigitRegex());
if (array != null)
return ( /* valueOf */new String(c).toString()).match(CharacterHelper.leterOrDigitRegex()).length > 0;
return false;
}
static leterOrDigitRegex() {
return new RegExp("[A-Z\\d]", "i");
}
static isLowerCase(c) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(CharacterHelper.toLowerCase$char(c)) == (c => c.charCodeAt == null ? c : c.charCodeAt(0))(c) && CharacterHelper.isLetter(c);
}
static isLowSurrogate(ch) {
return (c => c.charCodeAt == null ? c : c.charCodeAt(0))(ch) >= (c => c.charCodeAt == null ? c : c.charCodeAt(0))(CharacterHelper.MIN_LOW_SURROGATE) && (c => c.charCodeAt == null ? c : c.charCodeAt(0))(ch) <= (c => c.charCodeAt == null ? c : c.charCodeAt(0))(CharacterHelper.MAX_LOW_SURROGATE);
}
/**
* Deprecated - see isWhitespace(char).
* @param {string} c
* @return {boolean}
*/
static isSpace(c) {
switch ((c).charCodeAt(0)) {
case 32 /* ' ' */:
return true;
case 10 /* '\n' */:
return true;
case 9 /* '\t' */:
return true;
case 12 /* '\f' */:
return true;
case 13 /* '\r' */:
return true;
default:
return false;
}
}
static isWhitespace$char(ch) {
return ( /* valueOf */new String(ch).toString()).match(CharacterHelper.whitespaceRegex()).length > 0;
}
static isWhitespace(ch) {
if (((typeof ch === 'string') || ch === null)) {
return javaemul.internal.CharacterHelper.isWhitespace$char(ch);
}
else if (((typeof ch === 'number') || ch === null)) {
return javaemul.internal.CharacterHelper.isWhitespace$int(ch);
}
else
throw new Error('invalid overload');
}
static isWhitespace$int(codePoint) {
return String.fromCharCode(codePoint).match(CharacterHelper.whitespaceRegex()).length > 0;
}
static whitespaceRegex() {
return new RegExp("[\\t-\\r \\u1680\\u180E\\u2000-\\u2006\\u2008-\\u200A\\u2028\\u2029\\u205F\\u