private Symbol()

in java/commons/src/main/java/com/epam/deltix/data/connectors/commons/SymbolMapper.java [99:172]


        private Symbol(final String symbol) {
            final StringBuilder fromSymbol = new StringBuilder();
            final StringBuilder toSymbol = new StringBuilder();

            int state = INITIAL_STATE;
            for (int i = 0; i < symbol.length(); i++) {
                final char c = symbol.charAt(i);
                switch (state) {
                    case INITIAL_STATE:
                        switch (c) {
                            case '\\':
                                state = ESCAPING_IN_FROM_STATE;
                                break;
                            case '=':
                                throw new IllegalArgumentException("Unexpected '=' at " + i);
                            default:
                                state = FROM_STATE;
                                fromSymbol.append(c);
                                break;
                        }
                        break;
                    case FROM_STATE:
                        switch (c) {
                            case '\\':
                                state = ESCAPING_IN_FROM_STATE;
                                break;
                            case '=':
                                state = TO_STATE;
                                break;
                            default:
                                fromSymbol.append(c);
                                break;
                        }
                        break;
                    case ESCAPING_IN_FROM_STATE:
                        switch (c) {
                            case '\\':
                            case '=':
                                state = FROM_STATE;
                                fromSymbol.append(c);
                                break;
                            default:
                                throw new IllegalArgumentException("Unexpected '" + c + "' at " + i);
                        }
                        break;
                    case TO_STATE:
                        switch (c) {
                            case '\\':
                                state = ESCAPING_IN_TO_STATE;
                                break;
                            case '=':
                                throw new IllegalArgumentException("Unexpected '=' at " + i);
                            default:
                                toSymbol.append(c);
                                break;
                        }
                        break;
                    case ESCAPING_IN_TO_STATE:
                        switch (c) {
                            case '\\':
                            case '=':
                                state = TO_STATE;
                                toSymbol.append(c);
                                break;
                            default:
                                throw new IllegalArgumentException("Unexpected '" + c + "' at " + i);
                        }
                        break;
                }
            }

            from = fromSymbol.toString().trim();
            to = toSymbol.toString().trim();
        }