/** * Creates char sub-sequence from the input. */ protected final CharSequence charSequence(final int from, final int to) { if (from == to) { return CharArraySequence.EMPTY; } return CharArraySequence.of(input, from, to - from); }
@Override public CharSequence subSequence(final int start, final int end) { return new CharArraySequence(buffer, start, end - start); }
/** * Throws {@link jodd.json.JsonException} indicating a syntax error. */ protected void syntaxError(final String message) { String left = "..."; String right = "..."; int offset = 10; int from = ndx - offset; if (from < 0) { from = 0; left = StringPool.EMPTY; } int to = ndx + offset; if (to > input.length) { to = input.length; right = StringPool.EMPTY; } final CharSequence str = CharArraySequence.of(input, from, to - from); throw new JsonException( "Syntax error! " + message + "\n" + "offset: " + ndx + " near: \"" + left + str + right + "\""); }
/** * Static constructor that creates a char sequence using provided char array. */ public static CharArraySequence of(final char... value) { return new CharArraySequence(value); }
@Test void testEqualsChars() { assertTrue(CharSequenceUtil.equals(of('a', 'b'), of('a', 'b'))); assertFalse(CharSequenceUtil.equals(of('A', 'B'), of('a', 'b'))); assertTrue(CharSequenceUtil.equals(of(), of())); assertFalse(CharSequenceUtil.equals(of('a'), of('a', 'b'))); assertFalse(CharSequenceUtil.equals(of('a', 'b'), of('a'))); }
public static CharArraySequence of(final char[] value, final int offset, final int len) { return new CharArraySequence(value, offset, len); }
@Test void testEqualsCharsToLowercase() { assertTrue(CharSequenceUtil.equalsToLowercase("ab", of('a', 'b'))); assertTrue(CharSequenceUtil.equalsToLowercase("AB", of('a', 'b'))); assertTrue(CharSequenceUtil.equalsToLowercase("", of())); assertFalse(CharSequenceUtil.equalsToLowercase("a", of('a', 'b'))); assertFalse(CharSequenceUtil.equalsToLowercase("ab", of('a'))); }
/** * Static constructor that creates a char sequence by making a copy of provided char array. */ public static CharArraySequence from(final char[] value, final int offset, final int len) { final char[] buffer = new char[value.length]; System.arraycopy(value, offset, buffer, 0, len); return new CharArraySequence(buffer); }
@Test void testStartsWithLowercase() { assertTrue(CharSequenceUtil.startsWithLowercase("ab", of('a', 'b'))); assertTrue(CharSequenceUtil.startsWithLowercase("AB", of('a', 'b'))); assertTrue(CharSequenceUtil.startsWithLowercase("", of())); assertFalse(CharSequenceUtil.startsWithLowercase("a", of('a', 'b'))); assertTrue(CharSequenceUtil.startsWithLowercase("ab", of('a'))); }
@Override public CharSequence subSequence(final int start, final int end) { final int count = end - start; final int rem = len - end; if ((start | end | count | rem) < 0) { throw new IndexOutOfBoundsException(); } if ((start | rem) == 0) { return this; } return new CharArraySequence(off + start, count, buffer); }
@Test void testEqualsSeqCharsIgnoreCase() { assertTrue(CharSequenceUtil.equalsIgnoreCase("ab", of('a', 'b'))); assertTrue(CharSequenceUtil.equalsIgnoreCase("AB", of('a', 'b'))); assertTrue(CharSequenceUtil.equalsIgnoreCase("", of())); assertFalse(CharSequenceUtil.equalsIgnoreCase("a", of('a', 'b'))); assertFalse(CharSequenceUtil.equalsIgnoreCase("ab", of('a'))); }
/** * Static constructor that creates a char sequence using provided char array. */ public static CharArraySequence of(final char... value) { return new CharArraySequence(value); }
@Test void testEqualsSeqChars() { assertTrue(CharSequenceUtil.equals("ab", of('a', 'b'))); assertFalse(CharSequenceUtil.equals("AB", of('a', 'b'))); assertTrue(CharSequenceUtil.equals("", of())); assertFalse(CharSequenceUtil.equals("a", of('a', 'b'))); assertFalse(CharSequenceUtil.equals("ab", of('a'))); }
@Override public CharSequence subSequence(final int start, final int end) { return new CharArraySequence(buffer, start, end - start); }
/** * Creates char sub-sequence from the input. */ protected final CharSequence charSequence(final int from, final int to) { if (from == to) { return CharArraySequence.EMPTY; } return CharArraySequence.of(input, from, to - from); }
public static CharArraySequence of(final char[] value, final int offset, final int len) { return new CharArraySequence(value, offset, len); }
@Override public CharSequence subSequence(final int start, final int end) { final int count = end - start; final int rem = len - end; if ((start | end | count | rem) < 0) { throw new IndexOutOfBoundsException(); } if ((start | rem) == 0) { return this; } return new CharArraySequence(off + start, count, buffer); }
/** * Static constructor that creates a char sequence by making a copy of provided char array. */ public static CharArraySequence from(final char[] value, final int offset, final int len) { final char[] buffer = new char[value.length]; System.arraycopy(value, offset, buffer, 0, len); return new CharArraySequence(buffer); }