📄 changelog
字号:
2007-01-17 Per Bothner <per@bothner.com> * NodeUtils.java (rootDocument): New static method. * NodeUtils.java (nodeName): New method. (name, localName, namespaceURI, inScopePrefixes$X): Use KNode's new getNodeNameObject method. * QNameUtils.java (localNameFromQName, prefixFromQName, namespaceURIFromQName, namespaceURIForPrefix): Fix throwing of WrongType.2007-01-16 Per Bothner <per@bothner.com> * RelativeStep.java (inline): Error if 1st arg incompatible with node.2007-01-15 Per Bothner <per@bothner.com> * SequenceUtils.java (deepEquals): Fix typo. * StringUtils.java (coerceToString): Allow any CharSequence. * QNameUtils.java (localNameFromQName, prefixFromQName): Change result types to NCName.2007-01-14 Per Bothner <per@bothner.com> * SequenceUtils.java (isZeroOrOne, coerceToZeroOrOne): New methods. (zeroOrOne): Use coerceToZeroOrOne. * StringUtils.java (concat$V): Use coerceToZeroOrOne. * TimeUtils.java (currentDateTimeLocal): New ThreadLocal static. (currentDateTime, currentDate, currentTime, implicitTimezone): New static methods. * NamedCollator.java (codepointCompare): New method. (compare): Use it. * Compare.java (atomicCompare): Likewise.2007-01-04 Per Bothner <per@bothner.com> * NodeUtils.java (baseUri): Change type of local 'uri' to Path. * StringUtils.java (encodeForUri): Move guts of method to URIPath.java.2006-12-29 Per Bothner <per@bothner.com> * NodeUtils.java (resolve): Use gnu.text.Path. * StringUtils.java (coerceToString): Likewise. * BooleanValue.java (booleanValue): Likewise. * QNameUtils.java (resolveURI): Likewise. (namespaceURIFromQName): Create URIPath.2006-12-17 Per Bothner <per@bothner.com> * QNameUtils.java (resolveURI): Handle UntypeAtomic.2006-12-06 Per Bothner <per@bothner.com> * SequenceUtils.java: Update for renamed Consumer methods.`2006-12-01 Per Bothner <per@bothner.com> * StringUtils.java (normalizeUnicode): Add working implementation, using java.text.Normalizer (Java 6 only). * Debug.java (trace): Use XMLPrinter to format output. * NodeUtils.java: Suppress unchecked warnings if JAVA5. * NodeUtils.java (collection): Replace old methods. (setSavedCollection, getSavedCollection): New static methods. (collectionResolverSymbol): New constant. (resolve): New method. (docCached, availableCached, collection): Use it.2006-11-29 Per Bothner <per@bothner.com> * NodeUtils.java (docAvailable): Moved from gnu.kawa.xml.Document. (docCached): Moved and renamed from Document/parseCahched. (docCached, docAvailable): Use StringUtils.coerceToString.2006-11-28 Per Bothner <per@bothner.com> * ArithOp.java (div(BigDecimal,BigDecimal)): New static method. (apply2): Use new div method. (apply2): Use BigDecimal division for Duration division. * TimeUtils.java (secondsBigDecimalFromDuration): New static method. (secondsFromDuration): Use secondsBigDecimalFromDuration.2006-11-26 Per Bothner <per@bothner.com> * NodeUtils.java (collection): New skeletal methods.2006-11-25 Per Bothner <per@bothner.com> * NodeUtils.java: Update StringValue -> TextUtils. * ArithOp.java: Likewise. * NumberValue.java: Likewise. * StringUtils.java: Likewise. * MinMax.java: Likewise. * TimeUtils.java: Likewise. * QNameUtils.java: Update XDataType -> TextUtils. * StringUtils.java (normalizeUnicode): New placeholder/dummy methods.2006-11-24 Per Bothner <per@bothner.com> * StringUtils.java (stringLength): Have to loop checking for surrogates. (substring, substring): Likewise must check for surrogates. (translate): Handle surrogates in all 3 arguments. (stringToCodepoints$X, appendCodepoint): Handle surrogates.2006-11-23 Per Bothner <per@bothner.com> * RelativeStep.java: Implement inlineable. (inline): Note that 2nd argument is inline-only. Do some optimizations/rewriting. (compile, getReturnType): New methods. (maybeSortNodes$X): Remove method. (extractStep): New static method. * RelativeStepFilter.java: Make class public.2006-11-22 Per Bothner <per@bothner.com> * ValuesFilter.java: Also implement Inlineable. (apply): Filter procedure can take 2 or 3 arguments. (inline): If last() is not needed, just splice it out and return. Otherwise rewrite to LetExp as before - but leave some work for compile. (compile): New method. Defer hard work to ValuesMap.compileInlined. (getReturnType): New method.2006-11-20 Per Bothner <per@bothner.com> * Compare.java (inline): Partially inline in the value-comparson case.2006-11-18 Per Bothner <per@bothner.com> * NodeUtils.java (baseUri): Remove throws clause. * StringUtils.java (tokenize$X): Add missing thow for the PreProcess case that we don't have java.util.regex.2006-11-09 Per Bothner <per@bothner.com> * XMLFormat.java: Remove unused class. * Makefile.am: Update accordingly.2006-10-31 Per Bothner <per@bothner.com> * DistinctValues.java (writeBoolean): New method. * Compare.java (inline): Set return type to boolean. * BooleanValue: New implements CanInline. (inline): Optimize constant case and when argument is already boolean. (<init>): Takes name - needed for PrimProcedure.getMethodFor,2006-10-30 Per Bothner <per@bothner.com> * NodeUtils.java (baseUri): Use new KNode baseURI convenience method. * NodeUtils.java (getIDs, id$X, idScan, idref): New static methods, implementing fn:id and a dummy fn.idref.2006-10-25 Per Bothner <per@bothner.com> * QNameUtils.java (lookupPrefix): New method based on resolvePrefix, but on failure return null rather than throwing exception (resolvePrefix): Now just a wrapper around lookupPrefix. * NumberValue.java (round): Fix rounding of negative BigDecimals.2006-10-22 Per Bothner <per@bothner.com> * NodeUtils.java (nilled): New method, implements fn:nilled. * TimeUtils.java (adjustDateTimeToTimezone): Move body of method to ... (adjustDateTimeToTimezoneRaw): ... new method. (adjustDateToTimezone, adjustTimeToTimezone): New methods. * NodeUtils.java (root): New method, replaces method in Nodes. (baseUri): New method.2006-10-19 Per Bothner <per@bothner.com> * QNameUtils.java (resolveURI): New static method. * Reduce.java: Re-write to a 'static class'. Try hard to follow the specification. * ArithOp.java (apply3): Implement mod on float or double using standard Java '%' operator. This fixes a negative-zero issue. * NamedCollator.java (getName): New method.2006-10-17 Per Bothner <per@bothner.com> * StringUtils.java (coerceToString): New static helper method to correctly coerce to xs:string or xs:string?. (lowerCase, upperCase, substring, stringLength, substringBefore, substringAfter, translate, stringPad, contains, startsWith, endsWith, stringJoin, stringToCodepoints$X, normalizeSpace, codepointEqual): Use coerceToString. * StringUtils.java (substring): Various fixes to (hopefully this time) pedantically match the specification. * QNameUtils.java (resolveQNameUsingElement): If no prefix, check for a default namespace. Convetr resturn to URI, rather than string.2006-10-16 Per Bothner <per@bothner.com> * StringUtils.java (appendCodepoint): Fix thinko.2006-10-13 Per Bothner <per@bothner.com> * HandleExtension.java: Remove no-longer needed file. * Makefile.am: Update accordingly.2006-10-12 Per Bothner <per@bothner.com> * NumberValue.java (numberValue): Do atomization. If argument is not coercible to double, return NaN. * RelativeStepFilter.java: New class, extends FilterConsumer. * Makefile.am: Update accordingly. * RelativeStep.java (apply, inline): Make use of RelativeStepFilter. This allows a relative step to return atoms rather just nodes.2006-10-11 Per Bothner <per@bothner.com> * QNameUtils.java (resolveQNameUsingElement): Collapse white space. Throw exception if unknown namespace for prefix. Internalize prefix before calling lookupNamespaceURI. * QNameUtils.java (validNCName): Implement using new XName.isName method. * StringUtils.java (concat$V): Add initial 2 parameters, so we can catch calls with too few arguments. Also, use StringBuilder if JAVA5. * MinMax.java (minMax): Add a dummy compare for singleton case, which is a easy way to check for an invalid value. * SubList.java: Use double lower and upper boand, to match specification. This fixes some corner cases. * NumberValue.java (abs): Calculate abs by clearing sign bit. This fixes handling of -0. * SequenceUtils.java (deepEqualItems): Fix thinko: '||' -> '&&'. * BooleanValue.java (booleanValue): Don't allow non-RealNum Numerics. Specifically disallow Duration and DateTime values. * TimeUtils.java (adjustDateTimeToTimezone): Check that zone offset is within range and an integral number of minutes.2006-10-07 Per Bothner <per@bothner.com> * StringUtils.java (tokenize$X): New method. * QNameUtils.java (resolveQNameUsingElement): New method. * QNameUtils.java (resolveQName): "Inline" call to method resolve in NamespaceBinding because resolve is wrong for "undeclare". * QNameUtils.java (makeQName): Call validNCName - currently a dummy. * QNameUtils.java (prefixFromQName): Fix return value for no match. * QNameUtils.java (namespaceURIForPrefix): Handle empty sequence or bad types for prefix. * SequenceUtils.java (insertBefore$X): New method.2006-10-06 Per Bothner <per@bothner.com> * NodeUtils.java (localName, namespaceURI): Add error-checking. * NodeUtils.java (prefixesFromNodetype): Remove duplicates from result. * ArithOp.java (apply2): Fix errors in handling invalid argument types. * StringUtils.java (substring): Fixes to match specification. (asDoubleRounded): Removed - no longer used. * TimeUtils.java (coerceToDateTime, coerceToDate, coerceToTime): Change to use new XTimeType.parseDateTime helper method. * Compare.java (atomicCompare): Likewise.2006-10-04 Per Bothner <per@bothner.com> * NumberValue.java (isNaN): New static utility method. * DistinctValues.java (hash): Change algorithm so equal real numbers have the same hash value. (matches): Return true if both values satisfy NumberValue.isNaN. * Compare.java (LENIENT_COMPARISON, LENIENT_EQ): New flags. (equalityComparison): New helper method. (atomicCompare): Fix handling of UntypedAtomic and Boolean. More compliant handling for DateTime and Duration. Error on mismatched types if not lenient and not an equality comparison. ($Ex$Eq, valNe): Should also be true if either argument is NaN. * MinMax.java (minMax): Add hack for NaN. * IntegerRange.java (apply): Do atomization and handle UntypedAtomic. * SequenceUtils.java (indexOf$X): Comparison should be lenient. (deepEqualItems): New helper, to check for NaN. (deepEqual, deepEqualChildren): Use new helper method. * NamedCollator.java (UNICODE_CODEPOINT_COLLATION): Match XQTS.2006-09-30 Per Bothner <per@bothner.com> * Compare.java (atomicCompare): Throw exception if not comparable. * MinMax.java: Rewrite to not use Reduce and to better match spec. (min, max, minMax, convert): New static methods. * ArithOp.java (apply2): 'idiv' result must sometimes be cast to integer. * ValuesFilter.java (matches): Fix number case to match spec.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -