public Object fromString()

in xstream/src/java/com/thoughtworks/xstream/converters/extended/StackTraceElementConverter.java [127:165]


    public Object fromString(final String str) {
        final Matcher matcher = PATTERN.matcher(str);
        if (matcher.matches()) {
            String classLoaderName = null;
            String moduleName = null;
            String moduleVersion = null;
            if (matcher.group(1) != null) {
                if (matcher.group(2) != null) {
                    classLoaderName = matcher.group(3);
                }
                if (matcher.group(4) != null) {
                    moduleName = matcher.group(5).length() == 0 ? null : matcher.group(5);
                    if (matcher.group(6) != null) {
                        moduleVersion = matcher.group(7);
                    }
                }
            }

            final String declaringClass = matcher.group(8);
            final String methodName = matcher.group(9);
            String fileName = matcher.group(10);
            int lineNumber = -1;
            if (fileName.equals("Unknown Source")) {
                fileName = null;
                lineNumber = -1;
            } else if (fileName.equals("Native Method")) {
                fileName = null;
                lineNumber = -2;
            } else {
                if (matcher.group(11) != null) {
                    lineNumber = Integer.parseInt(matcher.group(12));
                }
            }
            return FACTORY
                .create(classLoaderName, moduleName, moduleVersion, declaringClass, methodName, fileName, lineNumber);
        } else {
            throw new ConversionException("Could not parse StackTraceElement : " + str);
        }
    }