|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Objectshohaku.core.lang.Eval
値を評価する式のヘルパーメソッド群を提供します。
| コンストラクタの概要 | |
Eval()
|
|
| メソッドの概要 | |
static boolean |
isAndInstanceOf(java.lang.Object o,
java.lang.Class[] classes)
指定されたオブジェクトが全てのクラス型に割り当て可能か評価します。 |
static boolean |
isArray(java.lang.Object o)
配列型であるか評価します。 |
static boolean |
isArrayIndex(java.lang.Object a,
int index)
指定された配列の範囲内のインデックスか評価します。 |
static boolean |
isArrayIndex(java.lang.Object a,
int fromIndex,
int toIndex)
指定された配列の範囲内のインデックスか評価します。 |
static boolean |
isArrayLength(java.lang.Object a,
int length)
指定された配列の長さが指定の配列長と同一か評価します。 |
static boolean |
isBlank(java.lang.CharSequence cs)
引数が null または空の文字シーケンスであるか評価します。 |
static boolean |
isComponentTypeOf(java.lang.Object a,
java.lang.Class c)
配列のコンポーネント型が指定のクラスと同一であるか評価します。 |
static boolean |
isContains(java.lang.CharSequence cs,
char c)
指定の文字シーケンスに指定の文字が含まれているか評価します。 |
static boolean |
isContains(java.lang.CharSequence cs,
java.lang.String str)
指定の文字シーケンスに指定の文字列が含まれているか評価します。 |
static boolean |
isContains(java.util.Collection c,
java.lang.Object o)
引数 o がコレクション c に含まれているか評価します。 |
static boolean |
isContains(java.lang.Object[] a,
java.lang.Object o)
引数 o が配列 a に含まれているか評価します。 |
static boolean |
isDate(java.lang.CharSequence date,
java.lang.String pattern)
日付文字列として認識できるか評価します。 |
static boolean |
isDate(java.lang.CharSequence date,
java.lang.String[] patterns)
一つ以上の書式パターンで日付文字列として認識できるか評価します。 |
static boolean |
isDate(java.lang.CharSequence date,
java.lang.String[] patterns,
java.util.Locale locale)
一つ以上の書式パターンで日付文字列として認識できるか評価します。 |
static boolean |
isDate(java.lang.CharSequence date,
java.lang.String pattern,
java.util.Locale locale)
日付文字列として認識できるか評価します。 |
static boolean |
isDecimal(java.lang.CharSequence num,
java.lang.String pattern)
数値文字列として認識できるか評価します。 |
static boolean |
isDecimal(java.lang.CharSequence num,
java.lang.String[] patterns)
一つ以上の書式パターンで数値文字列として認識できるか評価します。 |
static boolean |
isDecimal(java.lang.CharSequence num,
java.lang.String[] patterns,
java.util.Locale locale)
一つ以上の書式パターンで数値文字列として認識できるか評価します。 |
static boolean |
isDecimal(java.lang.CharSequence num,
java.lang.String pattern,
java.util.Locale locale)
数値文字列として認識できるか評価します。 |
static boolean |
isEmpty(java.util.Collection c)
引数が null または空の状態であるか評価します。 |
static boolean |
isEmpty(Group g)
引数が null または空の状態であるか評価します。 |
static boolean |
isEmpty(java.util.Map m)
引数が null または空の状態であるか評価します。 |
static boolean |
isEmpty(java.lang.Object[] os)
引数が null または空の状態であるか評価します。 |
static boolean |
isEncode(char c,
java.nio.charset.Charset charset)
指定の文字セットで指定された文字をエンコードできるかどうかを評価します。 |
static boolean |
isEncode(java.lang.CharSequence cs,
java.nio.charset.Charset charset)
指定の文字セットで指定された文字シーケンスをエンコードできるかどうかを評価します。 |
static boolean |
isEncode(java.lang.CharSequence cs,
java.lang.String charsetName)
指定の文字セットで指定された文字シーケンスをエンコードできるかどうかを評価します。 |
static boolean |
isEncode(char c,
java.lang.String charsetName)
指定の文字セットで指定された文字をエンコードできるかどうかを評価します。 |
static boolean |
isEndBlank(java.lang.CharSequence[] css)
全ての配列の要素が null または空の文字シーケンスであるか評価します。 |
static boolean |
isEndBlank(java.lang.CharSequence cs1,
java.lang.CharSequence cs2)
引数が全て null または空の文字シーケンスであるか評価します。 |
static boolean |
isEndEquals(java.lang.Object o,
java.lang.Object[] os)
指定の値と配列の要素が全て同一値であるか評価します。 |
static boolean |
isEndNull(java.lang.Object[] os)
全ての配列の要素が null 値であるか評価します。 |
static boolean |
isEndNull(java.lang.Object o1,
java.lang.Object o2)
引数が全て null 値であるか評価します。 |
static boolean |
isEquals(boolean[] a,
boolean[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(byte[] a,
byte[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(char[] a,
char[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(double[] a,
double[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(float[] a,
float[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(int[] a,
int[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(long[] a,
long[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(java.lang.Object[] a,
java.lang.Object[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEquals(java.lang.Object o,
java.lang.Object o2)
指定の値が同値であるか評価します。 |
static boolean |
isEquals(short[] a,
short[] a2)
配列の全要素が一致するか評価します。 |
static boolean |
isEqualsLength(java.lang.Object[] as)
指定された全ての配列の長さが同一か評価します。 |
static boolean |
isLength(java.lang.CharSequence a,
int length)
指定された文字シーケンスの長さが指定の長さと同一か評価します。 |
static boolean |
isLength(java.lang.CharSequence a,
int min,
int max)
指定された文字シーケンスの長さが指定の長さの範囲内か評価します。 |
static boolean |
isOrBlank(java.lang.CharSequence[] css)
全ての配列の要素が null または空の文字シーケンスが含まれるか評価します。 |
static boolean |
isOrBlank(java.lang.CharSequence cs1,
java.lang.CharSequence cs2)
引数に null または空の文字シーケンスが含まれるか評価します。 |
static boolean |
isOrEquals(java.lang.Object o,
java.lang.Object[] os)
指定の値と配列の要素に同一値が含まれるか評価します。 |
static boolean |
isOrInstanceOf(java.lang.Object o,
java.lang.Class[] classes)
指定されたオブジェクトがいずれかのクラス型に割り当て可能か評価します。 |
static boolean |
isOrNull(java.lang.Object[] os)
配列の要素に null 値が含まれるか評価します。 |
static boolean |
isOrNull(java.lang.Object o1,
java.lang.Object o2)
引数に null 値が含まれるか評価します。 |
static boolean |
isOrNull(java.lang.Object o1,
java.lang.Object o2,
java.lang.Object o3)
引数に null 値が含まれるか評価します。 |
static boolean |
isOrNull(java.lang.Object o1,
java.lang.Object o2,
java.lang.Object o3,
java.lang.Object o4)
引数に null 値が含まれるか評価します。 |
static boolean |
isOrPrefix(java.lang.CharSequence cs,
char[] prefixs)
指定の文字シーケンスに接頭辞の内いずれかが含まれるか評価します。 |
static boolean |
isOrPrefix(java.lang.CharSequence cs,
java.lang.CharSequence[] prefixs)
指定の文字シーケンスに接頭辞の内いずれかが含まれるか評価します。 |
static boolean |
isOrSuffix(java.lang.CharSequence cs,
char[] suffixs)
指定の文字シーケンスに接尾辞の内いずれかが含まれるか評価します。 |
static boolean |
isOrSuffix(java.lang.CharSequence cs,
java.lang.CharSequence[] suffixs)
指定の文字シーケンスに接尾辞の内いずれかが含まれるか評価します。 |
static boolean |
isRange(byte[] a,
byte from,
byte to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(char c,
char from,
char to)
指定された文字が指定の範囲内か評価します。 |
static boolean |
isRange(java.lang.CharSequence cs,
char from,
char to)
指定された文字シーケンスが指定の範囲内か評価します。 |
static boolean |
isRange(java.lang.CharSequence cs,
int length,
char from,
char to)
指定された文字シーケンスが指定の文字列数と同一であると同時に文字の範囲内か評価します。 |
static boolean |
isRange(java.lang.CharSequence cs,
int min,
int max,
char from,
char to)
指定された文字シーケンスが指定の文字列数と指定の文字の範囲内か評価します。 |
static boolean |
isRange(double[] a,
double from,
double to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(double i,
double from,
double to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(float[] a,
float from,
float to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(int[] a,
int from,
int to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(int i,
int from,
int to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(java.util.List list,
int index)
指定されたインデックスがリストの範囲内か評価します。 |
static boolean |
isRange(long[] a,
long from,
long to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(long i,
long from,
long to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isRange(java.lang.Object array,
int index)
指定されたインデックスが配列の範囲内か評価します。 |
static boolean |
isRange(short[] a,
short from,
short to)
指定された数値が指定の範囲内か評価します。 |
static boolean |
isStartsWith(java.lang.CharSequence cs,
java.lang.CharSequence prefix,
int offset)
指定の文字シーケンスの位置から前方一致するか評価します。 |
static boolean |
isTypeOf(java.lang.Object o,
java.lang.Class c)
クラスが同一であるか評価します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public Eval()
| メソッドの詳細 |
public static boolean isBlank(java.lang.CharSequence cs)
null または空の文字シーケンスであるか評価します。
cs - 評価する文字シーケンス
null または空の文字シーケンスの場合のみ true
public static boolean isEndBlank(java.lang.CharSequence cs1,
java.lang.CharSequence cs2)
null または空の文字シーケンスであるか評価します。
cs1 - 評価する一番目の文字シーケンスcs2 - 評価する二番目の文字シーケンス
null または空の文字シーケンスの場合のみ truepublic static boolean isEndBlank(java.lang.CharSequence[] css)
null または空の文字シーケンスであるか評価します。
css - 評価する文字シーケンスの配列
null または空の文字シーケンスの場合のみ true
java.lang.NullPointerException - 引数の配列が null の場合
public static boolean isOrBlank(java.lang.CharSequence cs1,
java.lang.CharSequence cs2)
null または空の文字シーケンスが含まれるか評価します。
cs1 - 評価する一番目の文字シーケンスcs2 - 評価する二番目の文字シーケンス
null または空の文字シーケンスが含まれる場合のみ truepublic static boolean isOrBlank(java.lang.CharSequence[] css)
null または空の文字シーケンスが含まれるか評価します。
css - 評価する文字シーケンスの配列
null または空の文字シーケンスが含まれる場合のみ true
java.lang.NullPointerException - 引数の配列が null の場合public static boolean isEmpty(java.lang.Object[] os)
null または空の状態であるか評価します。
os - 評価する配列
null または空の状態の場合のみ truepublic static boolean isEmpty(java.util.Map m)
null または空の状態であるか評価します。
m - 評価するマップ
null または空の状態の場合のみ truepublic static boolean isEmpty(java.util.Collection c)
null または空の状態であるか評価します。
c - 評価するコレクション
null または空の状態の場合のみ truepublic static boolean isEmpty(Group g)
null または空の状態であるか評価します。
g - 評価するグループ
null または空の状態の場合のみ true
public static boolean isEndNull(java.lang.Object o1,
java.lang.Object o2)
null 値であるか評価します。
o1 - 評価する一番目の値o2 - 評価する二番目の値
null 値の場合のみ truepublic static boolean isEndNull(java.lang.Object[] os)
null 値であるか評価します。
os - 評価する配列
null 値の場合のみ true
java.lang.NullPointerException - 引数の配列が null の場合
public static boolean isOrNull(java.lang.Object o1,
java.lang.Object o2)
null 値が含まれるか評価します。
o1 - 評価する一番目の値o2 - 評価する二番目の値
null 値が含まれる場合のみ true
public static boolean isOrNull(java.lang.Object o1,
java.lang.Object o2,
java.lang.Object o3)
null 値が含まれるか評価します。
o1 - 評価する一番目の値o2 - 評価する二番目の値o3 - 評価する三番目の値
null 値が含まれる場合のみ true
public static boolean isOrNull(java.lang.Object o1,
java.lang.Object o2,
java.lang.Object o3,
java.lang.Object o4)
null 値が含まれるか評価します。
o1 - 評価する一番目の値o2 - 評価する二番目の値o3 - 評価する三番目の値o4 - 評価する四番目の値
null 値が含まれる場合のみ truepublic static boolean isOrNull(java.lang.Object[] os)
null 値が含まれるか評価します。
os - 評価する配列
null 値が含まれる場合のみ true
java.lang.NullPointerException - 引数の配列が null の場合
public static boolean isLength(java.lang.CharSequence a,
int length)
a - 評価する文字シーケンスlength - 文字シーケンスの長さ
true
public static boolean isLength(java.lang.CharSequence a,
int min,
int max)
a - 評価する文字シーケンスmin - 文字数の最小値max - 文字数の最大値
true
public static boolean isArrayLength(java.lang.Object a,
int length)
a - 評価する配列length - 配列長
true
java.lang.IllegalArgumentException - 引数が配列でない場合
public static boolean isArrayIndex(java.lang.Object a,
int index)
a - 評価する配列index - インデックス
true
java.lang.IllegalArgumentException - 引数が配列でない場合
public static boolean isArrayIndex(java.lang.Object a,
int fromIndex,
int toIndex)
a - 評価する配列fromIndex - 開始インデックスtoIndex - 終了インデックス
true
java.lang.IllegalArgumentException - 引数が配列でない場合public static boolean isEqualsLength(java.lang.Object[] as)
as - 評価するの配列を格納とする配列
true
java.lang.IllegalArgumentException - 引数が配列でないまたは引数が空配列の場合
public static boolean isEquals(char[] a,
char[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(boolean[] a,
boolean[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(byte[] a,
byte[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(short[] a,
short[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(int[] a,
int[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(long[] a,
long[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(float[] a,
float[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(double[] a,
double[] a2)
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(java.lang.Object[] a,
java.lang.Object[] a2)
null の場合 true と評価します。
a - 評価基の配列a2 - 評価先の配列
true
public static boolean isEquals(java.lang.Object o,
java.lang.Object o2)
null の場合 true と評価します。
o - 評価基の配列o2 - 評価先の配列
null の場合 true
public static boolean isEndEquals(java.lang.Object o,
java.lang.Object[] os)
o - 評価基のオブジェクトos - 評価先のオブジェクト配列
true
java.lang.NullPointerException - 引数の配列が null の場合
public static boolean isOrEquals(java.lang.Object o,
java.lang.Object[] os)
o - 評価基のオブジェクトos - 評価先のオブジェクト配列
true
java.lang.NullPointerException - 引数の配列が null の場合
public static boolean isOrSuffix(java.lang.CharSequence cs,
char[] suffixs)
cs - 評価基の文字シーケンスsuffixs - 評価先の接尾辞の配列
true
public static boolean isOrSuffix(java.lang.CharSequence cs,
java.lang.CharSequence[] suffixs)
cs - 評価基の文字シーケンスsuffixs - 評価先の接尾辞の配列
true
public static boolean isStartsWith(java.lang.CharSequence cs,
java.lang.CharSequence prefix,
int offset)
cs - 評価基の文字シーケンスprefix - 評価先の接頭辞offset - 評価を開始する相対インデックス
true
public static boolean isOrPrefix(java.lang.CharSequence cs,
char[] prefixs)
cs - 評価基の文字シーケンスprefixs - 評価先の接頭辞の配列
true
public static boolean isOrPrefix(java.lang.CharSequence cs,
java.lang.CharSequence[] prefixs)
cs - 評価基の文字シーケンスprefixs - 評価先の接頭辞の配列
true
public static boolean isRange(char c,
char from,
char to)
c - 評価する文字from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(java.lang.CharSequence cs,
char from,
char to)
cs - 評価する文字シーケンスfrom - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(java.lang.CharSequence cs,
int length,
char from,
char to)
cs - 評価する文字シーケンスlength - 文字列数from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(java.lang.CharSequence cs,
int min,
int max,
char from,
char to)
cs - 評価する文字シーケンスmin - 文字数の最小値max - 文字数の最大値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(java.util.List list,
int index)
list - 範囲を示すリストindex - 評価するインデックス
true
public static boolean isRange(java.lang.Object array,
int index)
array - 範囲を示す配列index - 評価するインデックス
true
public static boolean isRange(int i,
int from,
int to)
i - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(long i,
long from,
long to)
i - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(double i,
double from,
double to)
i - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(byte[] a,
byte from,
byte to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(short[] a,
short from,
short to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(int[] a,
int from,
int to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(long[] a,
long from,
long to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(float[] a,
float from,
float to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isRange(double[] a,
double from,
double to)
a - 評価する数値from - 範囲の最小値to - 範囲の最大値
true
public static boolean isAndInstanceOf(java.lang.Object o,
java.lang.Class[] classes)
o - 評価するオブジェクトclasses - 割り当て可能か評価先するクラスの配列
true
public static boolean isOrInstanceOf(java.lang.Object o,
java.lang.Class[] classes)
o - 評価するオブジェクトclasses - 割り当て可能か評価先するクラスの配列
true
public static boolean isTypeOf(java.lang.Object o,
java.lang.Class c)
o - 評価するオブジェクトc - 比較するクラス
true
public static boolean isComponentTypeOf(java.lang.Object a,
java.lang.Class c)
a - 評価する配列c - 評価先のクラス
true
public static boolean isContains(java.lang.Object[] a,
java.lang.Object o)
o が配列 a に含まれているか評価します。
a - 評価基の配列o - 検索するオブジェクト
o が配列 a に含まれている場合のみ true
public static boolean isContains(java.util.Collection c,
java.lang.Object o)
o がコレクション c に含まれているか評価します。
c - 評価基のコレクションo - 検索するオブジェクト
o がコレクション c に含まれている場合のみ true
public static boolean isContains(java.lang.CharSequence cs,
char c)
cs - 評価する文字シーケンスc - 検索する文字
true
public static boolean isContains(java.lang.CharSequence cs,
java.lang.String str)
cs - 評価する文字シーケンスstr - 検索する文字列
truepublic static boolean isArray(java.lang.Object o)
o - 評価するオブジェクト
true
public static boolean isDate(java.lang.CharSequence date,
java.lang.String pattern)
date - 評価する日付文字列pattern - 文字列の書式パターン
true
public static boolean isDate(java.lang.CharSequence date,
java.lang.String pattern,
java.util.Locale locale)
date - 評価する日付文字列pattern - 文字列の書式パターンlocale - ロケール
true
public static boolean isDate(java.lang.CharSequence date,
java.lang.String[] patterns)
date - 評価する日付文字列patterns - 文字列の書式パターンの配列
true
public static boolean isDate(java.lang.CharSequence date,
java.lang.String[] patterns,
java.util.Locale locale)
date - 評価する日付文字列patterns - 文字列の書式パターンの配列locale - ロケール
true
public static boolean isDecimal(java.lang.CharSequence num,
java.lang.String pattern)
num - 評価する数値文字列pattern - 文字列の書式パターン
true
public static boolean isDecimal(java.lang.CharSequence num,
java.lang.String pattern,
java.util.Locale locale)
num - 評価する数値文字列pattern - 文字列の書式パターンlocale - ロケール
true
public static boolean isDecimal(java.lang.CharSequence num,
java.lang.String[] patterns)
num - 評価する数値文字列patterns - 文字列の書式パターンの配列
true
public static boolean isDecimal(java.lang.CharSequence num,
java.lang.String[] patterns,
java.util.Locale locale)
num - 評価する数値文字列patterns - 文字列の書式パターンの配列locale - ロケール
true
public static boolean isEncode(char c,
java.lang.String charsetName)
throws java.nio.charset.UnsupportedCharsetException,
java.nio.charset.IllegalCharsetNameException,
java.lang.UnsupportedOperationException
c - エンコードできるかどうかを評価する文字charsetName - 要求された文字セットの名前 (標準名または別名)
true
java.nio.charset.UnsupportedCharsetException - 指定された文字セット名が不当である場合
java.nio.charset.IllegalCharsetNameException - 指定された文字セットを現在の Java 仮想マシンでは利用できない場合
java.lang.UnsupportedOperationException - この文字セットがエンコードをサポートしない場合
public static boolean isEncode(char c,
java.nio.charset.Charset charset)
throws java.lang.UnsupportedOperationException
c - エンコードできるかどうかを評価する文字charset - 文字セット
true
java.lang.UnsupportedOperationException - この文字セットがエンコードをサポートしない場合
public static boolean isEncode(java.lang.CharSequence cs,
java.lang.String charsetName)
throws java.nio.charset.UnsupportedCharsetException,
java.nio.charset.IllegalCharsetNameException,
java.lang.UnsupportedOperationException
cs - エンコードできるかどうかを評価する文字シーケンスcharsetName - 要求された文字セットの名前 (標準名または別名)
true
java.nio.charset.UnsupportedCharsetException - 指定された文字セット名が不当である場合
java.nio.charset.IllegalCharsetNameException - 指定された文字セットを現在の Java 仮想マシンでは利用できない場合
java.lang.UnsupportedOperationException - この文字セットがエンコードをサポートしない場合
public static boolean isEncode(java.lang.CharSequence cs,
java.nio.charset.Charset charset)
throws java.lang.UnsupportedOperationException
cs - エンコードできるかどうかを評価する文字シーケンスcharset - 文字セット
true
java.lang.UnsupportedOperationException - この文字セットがエンコードをサポートしない場合
|
|||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||