|
|
@@ -16,10 +16,27 @@ public final class AnsiStrings {
|
|
|
// utility class
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy oba obiekty reprezentują samo formatowanie uwzględniając
|
|
|
+ * kolor,tło,czcionkę oraz publiczne (reprezentowane graficznie) atrybuty -
|
|
|
+ * to znaczy używając maski {@link AnsiAttr#MASK_PUBLIC}
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static boolean equals(AnsiAttr left, AnsiAttr right) {
|
|
|
return equals(left, right, AnsiAttr.MASK_PUBLIC);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy oba obiekty reprezentują to samo formatowanie uwzględniając
|
|
|
+ * kolor,tło,czcionkę oraz podane atrybuty (np {@link AnsiAttr#BOLD}).
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @param flags
|
|
|
+ * @return
|
|
|
+ * @see AnsiAttr
|
|
|
+ */
|
|
|
public static boolean equals(AnsiAttr left, AnsiAttr right, int flags) {
|
|
|
if( left instanceof AnsiCharSequence && right instanceof AnsiCharSequence ) {
|
|
|
return equals( (AnsiCharSequence)left, (AnsiCharSequence)right );
|
|
|
@@ -31,10 +48,28 @@ public final class AnsiStrings {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy obie sekwencje znaków zawierają dokładnie ten sam tekst
|
|
|
+ * uwzględniając formatowanie: kolor,tło,czcionkę oraz publiczne
|
|
|
+ * (reprezentowane graficznie) atrybuty znaków - to znaczy używając maski
|
|
|
+ * {@link AnsiAttr#MASK_PUBLIC}
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static boolean equals(AnsiCharSequence left, AnsiCharSequence right) {
|
|
|
return equals(left, right, AnsiAttr.MASK_PUBLIC);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy obie sekwencje znaków zawierają dokładnie ten sam tekst
|
|
|
+ * uwzględniając formatowanie: kolor,tło,czcionkę oraz podane atrybuty
|
|
|
+ * (np {@link AnsiAttr#BOLD}).
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @param flags
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static boolean equals(AnsiCharSequence left, AnsiCharSequence right, int flags) {
|
|
|
if( left == right ) { // NOPMD
|
|
|
return true;
|
|
|
@@ -50,10 +85,30 @@ public final class AnsiStrings {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy podane sekwencje posiadają na podanej pozycji ten sam znak
|
|
|
+ * uwzględniając formatowanie: kolor,tło,czcionkę oraz publiczne
|
|
|
+ * (reprezentowane graficznie) atrybuty znaków - to znaczy używając maski
|
|
|
+ * {@link AnsiAttr#MASK_PUBLIC}
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @param index
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static boolean equalsAt(AnsiCharSequence left, AnsiCharSequence right, int index) {
|
|
|
return equalsAt(left, right, index, AnsiAttr.MASK_PUBLIC);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Sprawdza, czy podane sekwencje posiadają na podanej pozycji ten sam znak
|
|
|
+ * uwzględniając formatowanie: kolor,tło,czcionkę oraz podane atrybuty
|
|
|
+ * (np {@link AnsiAttr#BOLD}).
|
|
|
+ * @param left
|
|
|
+ * @param right
|
|
|
+ * @param index
|
|
|
+ * @param flags
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static boolean equalsAt(AnsiCharSequence left, AnsiCharSequence right, int index, int flags) {
|
|
|
if( left.charAt(index) != right.charAt(index) ) { return false; }
|
|
|
if( left.getForeAt(index) != right.getForeAt(index) ) { return false; }
|
|
|
@@ -63,6 +118,14 @@ public final class AnsiStrings {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Ustawia w sekwencji docelowej znak o podanym indeksie pobrany z sekwencji
|
|
|
+ * źródłowej - kopiując oprócz znaku również formatowanie (włącznie z wszystkimi,
|
|
|
+ * również niepublicznymi atrybutami).
|
|
|
+ * @param target
|
|
|
+ * @param source
|
|
|
+ * @param index
|
|
|
+ */
|
|
|
public static void copy(AnsiString target, AnsiCharSequence source, int index) {
|
|
|
target.setCharAt(index, source.charAt(index));
|
|
|
target.setForeAt(index, source.getForeAt(index));
|