private Response<Object> parseResponseFromChars(char[] args, final String returnAddress) { final char[][] chars = CharScanner.splitFromStartWithLimit(args, (char) PROTOCOL_SEPARATOR, 0, RESPONSE_RETURN); String messageId = FastStringUtils.noCopyStringFromChars(chars[MESSAGE_ID_POS]); long id = 0L; if (!Str.isEmpty(messageId)) { id = Long.parseLong(messageId); } String address = FastStringUtils.noCopyStringFromChars(chars[ADDRESS_POS]); String stime = FastStringUtils.noCopyStringFromChars(chars[TIMESTAMP_POS]); long timestamp = 0L; if (!Str.isEmpty(stime)) { timestamp = Long.parseLong(stime); } char[] wasErrorsStr = chars[WAS_ERRORS_POS]; boolean wasErrors = wasErrorsStr != null && wasErrorsStr.length == 1 && wasErrorsStr[0] == '1'; char[] messageBodyChars = chars[RESPONSE_RETURN]; Object messageBody; if (!Chr.isEmpty(messageBodyChars)) { messageBody = jsonParser.parse(messageBodyChars); } else { messageBody = null; } return new ResponseImpl<>(id, timestamp, address, returnAddress, null, messageBody, null, wasErrors); }
public static char[] add( char[] array, String str ) { return add( array, str.toCharArray() ); }
public static void idx( final char[] array, int index, char[] input ) { final int i = calculateIndex( array, index ); _idx( array, i, input ); }
public static char[] add( char[] array, StringBuilder stringBuilder ) { return add( array, getCharsFromStringBuilder( stringBuilder ) ); }
public static String decode( char[] chars, int start, int to ) { if ( !Chr.contains(chars, '\\', start, to - start) ) { return new String( chars, start, to - start ); } return decodeForSure( chars, start, to ); }
if ( c == split ) { results[ resultIndex ] = Chr.copy( inputArray, startCurrentLineIndex, currentLineLength - 1 ); startCurrentLineIndex = index + 1; //skip the char if ( !Chr.in( c, delims ) ) { results[ resultIndex ] = Chr.copy( inputArray, startCurrentLineIndex, currentLineLength - 1 ); resultIndex++;
ac1 = sliceOf(ac, indexOfDiff - 20, (ac.length - indexOfDiff) > 40 ? indexOfDiff + 10: ac.length+1 ); } catch (Exception ex) { ac1 = ac; bc1 = sliceOf(bc, indexOfDiff - 20, (bc.length - indexOfDiff) > 40 ? indexOfDiff + 10: bc.length+1 ); } catch (Exception ex) { ac1 = bc; a = ac1[index]; charDescription(a, charBufA); charDescription(b, charBufB); charBuf.puts(multiply('-', 10), "area of concern, line=", indexOfLine, multiply('-', 10)); charBuf.addLine(charBufA); charBuf.multiply('-', indexOfDiff).addLine("^");
public static char[] insert( final char[] array, final int idx, final char v ) { Exceptions.requireNonNull( array ); if ( idx >= array.length ) { return add( array, v ); } final int index = calculateIndex( array, idx ); //Object newArray = Array.newInstance(array.getClass().getComponentType(), array.length+1); char[] newArray = new char[ array.length + 1 ]; if ( index != 0 ) { /* Copy up to the length in the array before the index. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, 0, newArray, 0, index ); } boolean lastIndex = index == array.length - 1; int remainingIndex = array.length - index; if ( lastIndex ) { /* Copy the area after the insert. Make sure we don't write over the end. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, index, newArray, index + 1, remainingIndex ); } else { /* Copy the area after the insert. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, index, newArray, index + 1, remainingIndex ); } newArray[ index ] = v; return newArray; }
public static char[] slc( char[] array, int startIndex, int endIndex ) { final int start = calculateIndex( array, startIndex ); final int end = calculateEndIndex( array, endIndex ); int newLength = end - start; if ( newLength < 0 ) { return EMPTY_CHARS; } char[] newArray = new char[ newLength ]; arraycopy(array, start, newArray, 0, newLength); return newArray; }
public static void idx( final char[] array, int index, char value ) { final int i = calculateIndex( array, index ); array[ i ] = value; }
public CharBuf add( char[] chars ) { Chr._idx( buffer, location, chars ); location += chars.length; return this; } };
/** * Convert to camel case and pass upper or lower * @param inStr string to convert * @param upper upper flag * @return new string */ public static String camelCase( String inStr, boolean upper ) { char[] in = FastStringUtils.toCharArray(inStr); char[] out = Chr.camelCase( in, upper ); return FastStringUtils.noCopyStringFromChars( out ); }
/** * Gets rid of null characters lurking in the string * @param str string * @return new string */ public static String compact( String str ) { return FastStringUtils.noCopyStringFromChars( Chr.compact( FastStringUtils.toCharArray(str) ) ); }
public static char[] slcEnd( char[] array, int endIndex ) { final int end = calculateEndIndex( array, endIndex ); final int newLength = end; // + (endIndex < 0 ? 1 : 0); if ( newLength < 0 ) { throw new ArrayIndexOutOfBoundsException( String.format( "start index %d, length %d", endIndex, array.length ) ); } char[] newArray = new char[ newLength ]; arraycopy(array, 0, newArray, 0, newLength); return newArray; }
private static String decode( char[] chars, int start, int to ) { if ( !Chr.contains(chars, '\\', start, to - start) ) { return new String( chars, start, to - start ); } return decodeForSure( chars, start, to ); }
if ( c == split ) { results[ resultIndex ] = Chr.copy( inputArray, startCurrentLineIndex, currentLineLength - 1 ); startCurrentLineIndex = index + 1; //skip the char if ( !Chr.in( c, delims ) ) { results[ resultIndex ] = Chr.copy( inputArray, startCurrentLineIndex, currentLineLength - 1 ); resultIndex++;
ac1 = sliceOf(ac, indexOfDiff - 20, (ac.length - indexOfDiff) > 40 ? indexOfDiff + 10: ac.length+1 ); } catch (Exception ex) { ac1 = ac; bc1 = sliceOf(bc, indexOfDiff - 20, (bc.length - indexOfDiff) > 40 ? indexOfDiff + 10: bc.length+1 ); } catch (Exception ex) { ac1 = bc; a = ac1[index]; charDescription(a, charBufA); charDescription(b, charBufB); charBuf.puts(multiply('-', 10), "area of concern, line=", indexOfLine, multiply('-', 10)); charBuf.addLine(charBufA); charBuf.multiply('-', indexOfDiff).addLine("^");
public static char[] insert( final char[] array, final int fromIndex, final char[] values ) { Exceptions.requireNonNull( array ); if ( fromIndex >= array.length ) { return add( array, values ); } final int index = calculateIndex( array, fromIndex ); //Object newArray = Array.newInstance(array.getClass().getComponentType(), array.length+1); char[] newArray = new char[ array.length + values.length ]; if ( index != 0 ) { /* Copy up to the length in the array before the index. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, 0, newArray, 0, index ); } boolean lastIndex = index == array.length - 1; int toIndex = index + values.length; int remainingIndex = newArray.length - toIndex; if ( lastIndex ) { /* Copy the area after the insert. Make sure we don't write over the end. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, index, newArray, index + values.length, remainingIndex ); } else { /* Copy the area after the insert. */ /* src sbegin dst dbegin length of copy */ arraycopy ( array, index, newArray, index + values.length, remainingIndex ); } for ( int i = index, j = 0; i < toIndex; i++, j++ ) { newArray[ i ] = values[ j ]; } return newArray; }