pip-services3-commons-node
Version:
Portable abstractions and patterns for Pip.Services in Node.js
445 lines (444 loc) • 17.6 kB
TypeScript
import { TypeCode } from '../convert/TypeCode';
import { ICloneable } from './ICloneable';
import { AnyValue } from './AnyValue';
import { AnyValueMap } from './AnyValueMap';
/**
* Cross-language implementation of dynamic object array what can hold values of any type.
* The stored values can be converted to different types using variety of accessor methods.
*
* ### Example ###
*
* let value1 = new AnyValueArray([1, "123.456", "2018-01-01"]);
*
* value1.getAsBoolean(0); // Result: true
* value1.getAsInteger(1); // Result: 123
* value1.getAsFloat(1); // Result: 123.456
* value1.getAsDateTime(2); // Result: new Date(2018,0,1)
*
* @see [[StringConverter]]
* @see [[TypeConverter]]
* @see [[BooleanConverter]]
* @see [[IntegerConverter]]
* @see [[LongConverter]]
* @see [[DoubleConverter]]
* @see [[FloatConverter]]
* @see [[DateTimeConverter]]
* @see [[ICloneable]]
*/
export declare class AnyValueArray extends Array<any> implements ICloneable {
/**
* Creates a new instance of the array and assigns its value.
*
* @param value (optional) values to initialize this array.
*/
constructor(values?: any[]);
/**
* Gets an array element specified by its index.
*
* @param index an index of the element to get.
* @returns the value of the array element.
*/
get(index: number): any;
/**
* Puts a new value into array element specified by its index.
*
* @param index an index of the element to put.
* @param value a new value for array element.
*/
put(index: number, value: any): void;
/**
* Removes an array element specified by its index
*
* @param index an index of the element to remove.
*/
remove(index: number): void;
/**
* Appends new elements to this array.
*
* @param elements a list of elements to be added.
*/
append(elements: any[]): void;
/**
* Clears this array by removing all its elements.
*/
clear(): void;
/**
* Gets the value stored in array element without any conversions.
* When element index is not defined it returns the entire array value.
*
* @param index (optional) an index of the element to get
* @returns the element value or value of the array when index is not defined.
*/
getAsObject(index?: number): any;
/**
* Sets a new value to array element specified by its index.
* When the index is not defined, it resets the entire array value.
* This method has double purpose because method overrides are not supported in JavaScript.
*
* @param index (optional) an index of the element to set
* @param value a new element or array value.
*
* @see [[ArrayConverter.toArray]]
*/
setAsObject(index: any, value?: any): void;
/**
* Converts array element into a string or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns string value of the element or null if conversion is not supported.
*
* @see [[StringConverter.toNullableString]]
*/
getAsNullableString(index: number): string;
/**
* Converts array element into a string or returns "" if conversion is not possible.
*
* @param index an index of element to get.
* @returns string value ot the element or "" if conversion is not supported.
*
* @see [[getAsStringWithDefault]]
*/
getAsString(index: number): string;
/**
* Converts array element into a string or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns string value ot the element or default value if conversion is not supported.
*
* @see [[StringConverter.toStringWithDefault]]
*/
getAsStringWithDefault(index: number, defaultValue: string): string;
/**
* Converts array element into a boolean or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns boolean value of the element or null if conversion is not supported.
*
* @see [[BooleanConverter.toNullableBoolean]]
*/
getAsNullableBoolean(index: number): boolean;
/**
* Converts array element into a boolean or returns false if conversion is not possible.
*
* @param index an index of element to get.
* @returns boolean value ot the element or false if conversion is not supported.
*
* @see [[getAsBooleanWithDefault]]
*/
getAsBoolean(index: number): boolean;
/**
* Converts array element into a boolean or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns boolean value ot the element or default value if conversion is not supported.
*
* @see [[BooleanConverter.toBooleanWithDefault]]
*/
getAsBooleanWithDefault(index: number, defaultValue: boolean): boolean;
/**
* Converts array element into an integer or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns integer value of the element or null if conversion is not supported.
*
* @see [[IntegerConverter.toNullableInteger]]
*/
getAsNullableInteger(index: number): number;
/**
* Converts array element into an integer or returns 0 if conversion is not possible.
*
* @param index an index of element to get.
* @returns integer value ot the element or 0 if conversion is not supported.
*
* @see [[getAsIntegerWithDefault]]
*/
getAsInteger(index: number): number;
/**
* Converts array element into an integer or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns integer value ot the element or default value if conversion is not supported.
*
* @see [[IntegerConverter.toIntegerWithDefault]]
*/
getAsIntegerWithDefault(index: number, defaultValue: number): number;
/**
* Converts array element into a long or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns long value of the element or null if conversion is not supported.
*
* @see [[LongConverter.toNullableLong]]
*/
getAsNullableLong(index: number): number;
/**
* Converts array element into a long or returns 0 if conversion is not possible.
*
* @param index an index of element to get.
* @returns long value ot the element or 0 if conversion is not supported.
*
* @see [[getAsLongWithDefault]]
*/
getAsLong(index: number): number;
/**
* Converts array element into a long or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns long value ot the element or default value if conversion is not supported.
*
* @see [[LongConverter.toLongWithDefault]]
*/
getAsLongWithDefault(index: number, defaultValue: number): number;
/**
* Converts array element into a float or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns float value of the element or null if conversion is not supported.
*
* @see [[FloatConverter.toNullableFloat]]
*/
getAsNullableFloat(index: number): number;
/**
* Converts array element into a float or returns 0 if conversion is not possible.
*
* @param index an index of element to get.
* @returns float value ot the element or 0 if conversion is not supported.
*
* @see [[getAsFloatWithDefault]]
*/
getAsFloat(index: number): number;
/**
* Converts array element into a float or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns float value ot the element or default value if conversion is not supported.
*
* @see [[FloatConverter.toFloatWithDefault]]
*/
getAsFloatWithDefault(index: number, defaultValue: number): number;
/**
* Converts array element into a double or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns double value of the element or null if conversion is not supported.
*
* @see [[DoubleConverter.toNullableDouble]]
*/
getAsNullableDouble(index: number): number;
/**
* Converts array element into a double or returns 0 if conversion is not possible.
*
* @param index an index of element to get.
* @returns double value ot the element or 0 if conversion is not supported.
*
* @see [[getAsDoubleWithDefault]]
*/
getAsDouble(index: number): number;
/**
* Converts array element into a double or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns double value ot the element or default value if conversion is not supported.
*
* @see [[DoubleConverter.toDoubleWithDefault]]
*/
getAsDoubleWithDefault(index: number, defaultValue: number): number;
/**
* Converts array element into a Date or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns Date value of the element or null if conversion is not supported.
*
* @see [[DateTimeConverter.toNullableDateTime]]
*/
getAsNullableDateTime(index: number): Date;
/**
* Converts array element into a Date or returns the current date if conversion is not possible.
*
* @param index an index of element to get.
* @returns Date value ot the element or the current date if conversion is not supported.
*
* @see [[getAsDateTimeWithDefault]]
*/
getAsDateTime(index: number): Date;
/**
* Converts array element into a Date or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns Date value ot the element or default value if conversion is not supported.
*
* @see [[DateTimeConverter.toDateTimeWithDefault]]
*/
getAsDateTimeWithDefault(index: number, defaultValue: Date): Date;
/**
* Converts array element into a value defined by specied typecode.
* If conversion is not possible it returns null.
*
* @param type the TypeCode that defined the type of the result
* @param index an index of element to get.
* @returns element value defined by the typecode or null if conversion is not supported.
*
* @see [[TypeConverter.toNullableType]]
*/
getAsNullableType<T>(type: TypeCode, index: number): T;
/**
* Converts array element into a value defined by specied typecode.
* If conversion is not possible it returns default value for the specified type.
*
* @param type the TypeCode that defined the type of the result
* @param index an index of element to get.
* @returns element value defined by the typecode or default if conversion is not supported.
*
* @see [[getAsTypeWithDefault]]
*/
getAsType<T>(type: TypeCode, index: number): T;
/**
* Converts array element into a value defined by specied typecode.
* If conversion is not possible it returns default value.
*
* @param type the TypeCode that defined the type of the result
* @param index an index of element to get.
* @param defaultValue the default value
* @returns element value defined by the typecode or default value if conversion is not supported.
*
* @see [[TypeConverter.toTypeWithDefault]]
*/
getAsTypeWithDefault<T>(type: TypeCode, index: number, defaultValue: T): T;
/**
* Converts array element into an AnyValue or returns an empty AnyValue if conversion is not possible.
*
* @param index an index of element to get.
* @returns AnyValue value of the element or empty AnyValue if conversion is not supported.
*
* @see [[AnyValue]]
* @see [[AnyValue.constructor]]
*/
getAsValue(index: number): AnyValue;
/**
* Converts array element into an AnyValueArray or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns AnyValueArray value of the element or null if conversion is not supported.
*
* @see [[fromValue]]
*/
getAsNullableArray(index: number): AnyValueArray;
/**
* Converts array element into an AnyValueArray or returns empty AnyValueArray if conversion is not possible.
*
* @param index an index of element to get.
* @returns AnyValueArray value of the element or empty AnyValueArray if conversion is not supported.
*
* @see [[fromValue]]
*/
getAsArray(index: number): AnyValueArray;
/**
* Converts array element into an AnyValueArray or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns AnyValueArray value of the element or default value if conversion is not supported.
*
* @see [[getAsNullableArray]]
*/
getAsArrayWithDefault(index: number, defaultValue: AnyValueArray): AnyValueArray;
/**
* Converts array element into an AnyValueMap or returns null if conversion is not possible.
*
* @param index an index of element to get.
* @returns AnyValueMap value of the element or null if conversion is not supported.
*
* @see [[AnyValueMap]]
* @see [[AnyValueMap.fromValue]]
*/
getAsNullableMap(index: number): AnyValueMap;
/**
* Converts array element into an AnyValueMap or returns empty AnyValueMap if conversion is not possible.
*
* @param index an index of element to get.
* @returns AnyValueMap value of the element or empty AnyValueMap if conversion is not supported.
*
* @see [[AnyValueMap]]
* @see [[AnyValueMap.fromValue]]
*/
getAsMap(index: number): AnyValueMap;
/**
* Converts array element into an AnyValueMap or returns default value if conversion is not possible.
*
* @param index an index of element to get.
* @param defaultValue the default value
* @returns AnyValueMap value of the element or default value if conversion is not supported.
*
* @see [[getAsNullableMap]]
*/
getAsMapWithDefault(index: number, defaultValue: AnyValueMap): AnyValueMap;
/**
* Checks if this array contains a value.
* The check uses direct comparison between elements and the specified value.
*
* @param value a value to be checked
* @returns true if this array contains the value or false otherwise.
*/
contains(value: any): boolean;
/**
* Checks if this array contains a value.
* The check before comparison converts elements and the value to type specified by type code.
*
* @param typeCode a type code that defines a type to convert values before comparison
* @param value a value to be checked
* @returns true if this array contains the value or false otherwise.
*
* @see [[TypeConverter.toType]]
* @see [[TypeConverter.toNullableType]]
*/
containsAsType<T>(typeCode: TypeCode, value: any): boolean;
/**
* Creates a binary clone of this object.
*
* @returns a clone of this object.
*/
clone(): any;
/**
* Gets a string representation of the object.
* The result is a comma-separated list of string representations of individual elements as
* "value1,value2,value3"
*
* @returns a string representation of the object.
*
* @see [[StringConverter.toString]]
*/
toString(): string;
/**
* Creates a new AnyValueArray from a list of values
*
* @param values a list of values to initialize the created AnyValueArray
* @returns a newly created AnyValueArray.
*/
static fromValues(...values: any[]): AnyValueArray;
/**
* Converts specified value into AnyValueArray.
*
* @param value value to be converted
* @returns a newly created AnyValueArray.
*
* @see [[ArrayConverter.toNullableArray]]
*/
static fromValue(value: any): AnyValueArray;
/**
* Splits specified string into elements using a separator and assigns
* the elements to a newly created AnyValueArray.
*
* @param values a string value to be split and assigned to AnyValueArray
* @param separator a separator to split the string
* @param removeDuplicates (optional) true to remove duplicated elements
* @returns a newly created AnyValueArray.
*/
static fromString(values: string, separator: string, removeDuplicates?: boolean): AnyValueArray;
}