org_eclipse_lemminx_extensions_xsd_XSDCompletionExtensionsTest_java
org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl
private Object getActualValue(Object object, ValidationContext validationContext, ValidatedInfo validatedInfo, boolean bl) throws InvalidDatatypeValueException {
        Object object2;
        int n;
        String string = bl ? this.normalize(object, this.fWhiteSpace) : object.toString();
        if ((this.fFacetsDefined & 8) != 0) {
            for (n = this.fPattern.size() - 1; n >= 0; --n) {
                object2 = (RegularExpression)this.fPattern.elementAt(n);
                if (((RegularExpression)object2).matches(string)) continue;
                throw new InvalidDatatypeValueException("cvc-pattern-valid", new Object[]{object, this.fPatternStr.elementAt(n), this.fTypeName});
            }
        }
        if (this.fVariety == 1) {
            Object object3;
            if (this.fPatternType != 0) {
                boolean bl2 = false;
                if (this.fPatternType == 1) {
                    bl2 = !XMLChar.isValidNmtoken(string);
                } else if (this.fPatternType == 2) {
                    bl2 = !XMLChar.isValidName(string);
                } else if (this.fPatternType == 3) {
                    boolean bl3 = bl2 = !XMLChar.isValidNCName(string);
                }
                if (bl2) {
                    throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{string, SPECIAL_PATTERN_STRING[this.fPatternType]});
                }
            }
            validatedInfo.normalizedValue = string;
            validatedInfo.actualValue = object3 = this.fDVs[this.fValidationDV].getActualValue(string, validationContext);
            validatedInfo.actualValueType = this.fBuiltInKind;
            validatedInfo.actualType = this;
            return object3;
        }
        if (this.fVariety == 2) {
            object2 = new StringTokenizer(string, " ");
            n = ((StringTokenizer)object2).countTokens();
            Object[] objectArray = new Object[n];
            boolean bl4 = this.fItemType.getVariety() == 3;
            short[] sArray = new short[bl4 ? n : 1];
            if (!bl4) {
                sArray[0] = this.fItemType.fBuiltInKind;
            }
            XSSimpleTypeDecl[] xSSimpleTypeDeclArray = new XSSimpleTypeDecl[n];
            for (int i = 0; i < n; ++i) {
                objectArray[i] = this.fItemType.getActualValue(((StringTokenizer)object2).nextToken(), validationContext, validatedInfo, false);
                if (validationContext.needFacetChecking() && this.fItemType.fFacetsDefined != 0 && this.fItemType.fFacetsDefined != 16) {
                    this.fItemType.checkFacets(validatedInfo);
                }
                xSSimpleTypeDeclArray[i] = (XSSimpleTypeDecl)validatedInfo.memberType;
                if (!bl4) continue;
                sArray[i] = xSSimpleTypeDeclArray[i].fBuiltInKind;
            }
            ListDV.ListData listData = new ListDV.ListData(objectArray);
            validatedInfo.actualValue = listData;
            validatedInfo.actualValueType = (short)(bl4 ? 43 : 44);
            validatedInfo.memberType = null;
            validatedInfo.memberTypes = xSSimpleTypeDeclArray;
            validatedInfo.itemValueTypes = new ShortListImpl(sArray, sArray.length);
            validatedInfo.normalizedValue = string;
            validatedInfo.actualType = this;
            return listData;
        }
        object2 = this.fMemberTypes.length > 1 && object != null ? object.toString() : object;
        for (n = 0; n < this.fMemberTypes.length; ++n) {
            try {
                Object object4 = this.fMemberTypes[n].getActualValue(object2, validationContext, validatedInfo, true);
                if (validationContext.needFacetChecking() && this.fMemberTypes[n].fFacetsDefined != 0 && this.fMemberTypes[n].fFacetsDefined != 16) {
                    this.fMemberTypes[n].checkFacets(validatedInfo);
                }
                validatedInfo.memberType = this.fMemberTypes[n];
                validatedInfo.actualType = this;
                return object4;
            }
            catch (InvalidDatatypeValueException invalidDatatypeValueException) {
                continue;
            }
        }
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < this.fMemberTypes.length; ++i) {
            if (i != 0) {
                stringBuffer.append(" | ");
            }
            XSSimpleTypeDecl xSSimpleTypeDecl = this.fMemberTypes[i];
            if (xSSimpleTypeDecl.fTargetNamespace != null) {
                stringBuffer.append('{');
                stringBuffer.append(xSSimpleTypeDecl.fTargetNamespace);
                stringBuffer.append('}');
            }
            stringBuffer.append(xSSimpleTypeDecl.fTypeName);
            if (xSSimpleTypeDecl.fEnumeration == null) continue;
            stringBuffer.append(" : ");
            xSSimpleTypeDecl.appendEnumString(stringBuffer);
        }
        throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.3", new Object[]{object, this.fTypeName, stringBuffer.toString()});
    }
 -> java.lang.Object.toString(): java.lang.String -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char
 [CALL] [CALL] -> java.lang.Object.toString(): java.lang.String [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] -> java.lang.String.charAt(int): char [CALL] [EXIT] [EXIT] [EXIT] [EXIT]