Import GNU Classpath (20121202).
2012-12-19 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (20121202). * Regenerate class and header files. * Regenerate auto* files. * sources.am, gcj/javaprims.h: Regenerate. * gnu/java/nio/FileLockImpl.java (close): New override. From-SVN: r194618
This commit is contained in:
parent
baeb2e1647
commit
a1906e8bbf
@ -1,3 +1,12 @@
|
||||
2012-12-19 Matthias Klose <doko@ubuntu.com>
|
||||
|
||||
Import GNU Classpath (20121202).
|
||||
|
||||
* Regenerate class and header files.
|
||||
* Regenerate auto* files.
|
||||
* sources.am, gcj/javaprims.h: Regenerate.
|
||||
* gnu/java/nio/FileLockImpl.java (close): New override.
|
||||
|
||||
2012-12-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* Makefile.am (lib_gnu_awt_xlib_la_CPPFLAGS): Use
|
||||
|
@ -4,21 +4,981 @@
|
||||
* tools/gnu/classpath/tools/javah/Main.java (parseClasses): Don't
|
||||
scan inner classes if our item is a file.
|
||||
|
||||
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
|
||||
2012-11-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* configure: Regenerated.
|
||||
PR classpath/55182
|
||||
* configure.ac:
|
||||
Lower required version to support autoconf
|
||||
on RHEL6. Make disabling Werror the default.
|
||||
If a Qt4-specific moc is detected, use it
|
||||
rather than the default.
|
||||
* doc/Makefile.am:
|
||||
Generate texi2dvi output in the build directory
|
||||
and explicitly specify POSIX locale to work around
|
||||
Debian bug 586134.
|
||||
(clean-local): Remove output from texi2dvi.
|
||||
|
||||
2012-10-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
PR classpath/55140
|
||||
* NEWS: List fix.
|
||||
* java/lang/String.java:
|
||||
(codePointBefore(int)): Fix index check to match spec.
|
||||
|
||||
2012-10-16 Ivan Maidanski <ivmai@mail.ru>
|
||||
|
||||
* java/util/Collections.java:
|
||||
(emptySet()): Don't create new instance, instead using
|
||||
the corresponding immutable container instance. Remove FIXME
|
||||
and suppress resulting unchecked warning.
|
||||
(EmptySet.iterator()): Suppress warning due to cast
|
||||
for immutable container instance.
|
||||
(EmptySet.equals(Object)): Add type parameters.
|
||||
(emptyList()): Don't create new instance, instead using
|
||||
the corresponding immutable container instance. Remove FIXME
|
||||
and suppress resulting unchecked warning.
|
||||
(EmptyList.equals(Object)): Add type parameters.
|
||||
(emptyMap()): Don't create new instance, instead using
|
||||
the corresponding immutable container instance. Remove FIXME
|
||||
and suppress resulting unchecked warning.
|
||||
(EmptyMap.entrySet()): Cast to parameterised type and
|
||||
suppress warning.
|
||||
(EmptyMap.equals(Object)): Add type parameters.
|
||||
(EmptyMap.keySet()): Cast to parameterised type and
|
||||
suppress warning.
|
||||
(EmptyMap.values()): Likewise.
|
||||
(SingletonList.subList(int, int)): Use emptyList() instead of
|
||||
EMPTY_LIST to eliminate unchecked warning.
|
||||
(SynchronizedCollection.toArray(T[])): Rename T type to E to
|
||||
suppress compiler warning about type hiding.
|
||||
|
||||
2012-10-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
PR classpath/41689
|
||||
* javax/security/sasl/Sasl.java:
|
||||
(CREDENTIALS): Add missing field.
|
||||
* NEWS: Updated.
|
||||
|
||||
2012-10-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* NEWS: Updated with latest bug fixes.
|
||||
* THANKYOU: Add bug authors.
|
||||
|
||||
2010-05-20 Paul Viney <paul@diasoft.nl>
|
||||
|
||||
PR classpath/44208
|
||||
* java/io/ObjectInputStream.java,
|
||||
(parseContent(byte,boolean)): Ensure a handle
|
||||
for the enum is registered before one for its
|
||||
String constant.
|
||||
|
||||
2009-12-30 Paul Fernhout <pdfernhout@kurtz-fernhout.com>
|
||||
|
||||
PR classpath/42551
|
||||
* javax/sound/midi/MetaMessage.java:
|
||||
(setMessage(int,byte[],int)): Don't overwrite
|
||||
length variable when computing the length representation.
|
||||
|
||||
2012-10-17 Jeremy Singer <Jeremy.Singer@glasgow.ac.uk>
|
||||
|
||||
PR classpath/54960
|
||||
* gnu/xml/transform/SAXSerializer.java:
|
||||
(getValue(String)): Avoid NullPointerException.
|
||||
|
||||
2012-10-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c:
|
||||
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1(JNIEnv*,
|
||||
jclass, jlong)): Use jack_client_open instead of
|
||||
deprecated jack_client_new.
|
||||
|
||||
2012-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* configure.ac: Set to 0.99.1pre, as
|
||||
0.99.1 will now be next release.
|
||||
* NEWS: Updated with last bug fix
|
||||
and 0.99.1
|
||||
|
||||
2012-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
PR classpath/54931
|
||||
* m4/acinclude.m4:
|
||||
(CLASSPATH_WITH_GJDOC): Allow GJDoc versions
|
||||
included with GNU Classpath to be used to
|
||||
build (0.98 on).
|
||||
|
||||
2012-03-15 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/util/Formatter.java:
|
||||
(icharacterFormat(Object,int,int,int,char):
|
||||
Fix NullPointerException for null characters.
|
||||
(basicIntegralConversion(Object, int, int, int, int, char):
|
||||
Fix NullPointerException for null integers.
|
||||
(format(Locale, String, Object...)):
|
||||
Fix NullPointerException for null object.
|
||||
|
||||
2012-03-15 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/String.java:
|
||||
(codePointAt(int))): Fix exception type.
|
||||
(codePointBefore(int)): Fix exception type.
|
||||
|
||||
2011-07-20 Ivan Maidanski <ivmai@mail.ru>
|
||||
|
||||
* native/jni/java-util/java_util_VMTimeZone.c:
|
||||
Include jcl.h file.
|
||||
(Java_java_util_VMTimeZone_getSystemTimeZoneId(JNIEnv*,jclass)):
|
||||
Throw OutOfMemoryException in case of malloc() failure.
|
||||
|
||||
2012-06-10 Ivan Maidanski <ivmai@mail.ru>
|
||||
|
||||
* compat/.gitignore,
|
||||
* compat/java.net/.gitignore,
|
||||
* doc/.gitignore,
|
||||
* doc/api/.gitignore,
|
||||
* doc/www.gnu.org/.gitignore,
|
||||
* doc/www.gnu.org/announce/.gitignore,
|
||||
* doc/www.gnu.org/cp-tools/.gitignore,
|
||||
* doc/www.gnu.org/docs/.gitignore,
|
||||
* doc/www.gnu.org/downloads/.gitignore,
|
||||
* doc/www.gnu.org/events/.gitignore,
|
||||
* doc/www.gnu.org/faq/.gitignore,
|
||||
* examples/.gitignore,
|
||||
* external/.gitignore,
|
||||
* external/jsr166/.gitignore,
|
||||
* external/relaxngDatatype/.gitignore,
|
||||
* external/sax/.gitignore,
|
||||
* external/w3c_dom/.gitignore,
|
||||
* gnu/classpath/.gitignore,
|
||||
* gnu/java/locale/.gitignore,
|
||||
* gnu/java/security/.gitignore,
|
||||
* gnu/test/.gitignore,
|
||||
* include/.gitignore,
|
||||
* java/util/.gitignore,
|
||||
* lib/.gitignore,
|
||||
* native/.gitignore,
|
||||
* native/fdlibm/.gitignore,
|
||||
* native/jawt/.gitignore,
|
||||
* native/jni/.gitignore,
|
||||
* native/jni/classpath/.gitignore,
|
||||
* native/jni/gconf-peer/.gitignore,
|
||||
* native/jni/gstreamer-peer/.gitignore,
|
||||
* native/jni/gtk-peer/.gitignore,
|
||||
* native/jni/java-io/.gitignore,
|
||||
* native/jni/java-lang/.gitignore,
|
||||
* native/jni/java-math/.gitignore,
|
||||
* native/jni/java-net/.gitignore,
|
||||
* native/jni/java-nio/.gitignore,
|
||||
* native/jni/java-util/.gitignore,
|
||||
* native/jni/midi-alsa/.gitignore,
|
||||
* native/jni/midi-dssi/.gitignore,
|
||||
* native/jni/native-lib/.gitignore,
|
||||
* native/jni/qt-peer/.gitignore,
|
||||
* native/jni/xmlj/.gitignore,
|
||||
* native/plugin/.gitignore,
|
||||
* native/testsuite/.gitignore,
|
||||
* native/vmi/.gitignore,
|
||||
* resource/.gitignore,
|
||||
* resource/META-INF/services/.gitignore,
|
||||
* scripts/.gitignore,
|
||||
* test/.gitignore,
|
||||
* test/gnu.java.lang.reflect/.gitignore,
|
||||
* test/java.io/.gitignore,
|
||||
* test/java.lang.reflect/.gitignore,
|
||||
* test/java.net/.gitignore,
|
||||
* test/java.util/.gitignore,
|
||||
* tools/.gitignore,
|
||||
* tools/gnu/classpath/tools/doclets/.gitignore,
|
||||
* tools/gnu/classpath/tools/doclets/debugdoclet/.gitignore,
|
||||
* tools/gnu/classpath/tools/doclets/htmldoclet/.gitignore,
|
||||
* tools/gnu/classpath/tools/doclets/xmldoclet/.gitignore,
|
||||
* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.gitignore,
|
||||
* tools/gnu/classpath/tools/gjdoc/.gitignore,
|
||||
* tools/gnu/classpath/tools/gjdoc/expr/.gitignore,
|
||||
* tools/gnu/classpath/tools/java2xhtml/.gitignore,
|
||||
* tools/gnu/classpath/tools/taglets/.gitignore,
|
||||
* vm/.gitignore,
|
||||
* vm/reference/.gitignore: Renamed from .cvsignore.
|
||||
|
||||
2012-10-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* java/awt/geom/Area.java:
|
||||
(solids): Add type parameter.
|
||||
(holes): Likewise.
|
||||
(ccIntersections): Likewise and rename to meet
|
||||
standards.
|
||||
(Area()): Add type parameters.
|
||||
(Area(Shape)): Likewise and remove redundant casts.
|
||||
(add(Area)): Likewise and remove unused nNodes variable.
|
||||
(subtract(Area)): Likewise.
|
||||
(intersect(Area)): Likewise.
|
||||
(exclusiveOr(Area)): Likewise.
|
||||
(reset()): Add type parameters.
|
||||
(isEmpty()): Remove redundant casts.
|
||||
(isPolygonal()): Likewise.
|
||||
(isRectangular()): Likewise.
|
||||
(getBounds2D()): Likewise.
|
||||
(clone()): Likewise.
|
||||
(equals(Area)): Add type parameters.
|
||||
(transform(AffineTransform)): Remove redundant casts.
|
||||
(contains(double,double)): Likewise.
|
||||
(contains(double,double,double,double)): Likewise.
|
||||
(intersects(double,double,double,double)): Likewise.
|
||||
(AreaIterator.segments): Add type parameter.
|
||||
(AreaIterator(AffineTransform)): Add type parameters.
|
||||
Remove redundant casts.
|
||||
(currentSegment(double[])): Remove redundant casts.
|
||||
(currentSegment(float[])): Likewise.
|
||||
(weilerAtherton(Vector)): Add type parameters and remove
|
||||
redundant casts.
|
||||
(recursiveSubdivide(CubicCurve2D,CubicCurve2D,int,int,double,
|
||||
double,double,double)): Fix use of cc_intersections/ccIntersections.
|
||||
(cubicCubicIntersect(CubicSegment,CubicSegment)): Likewise.
|
||||
(lineQuadIntersect(LineSegment,QuadSegment)): Fix Javadoc typo.
|
||||
(makeSegment(Shape)): Add type parameters.
|
||||
(createNodes(Segment,Segment)): Remove redundant bracketing.
|
||||
(deleteRedundantPaths(Vector)): Likewise. Remove redundant
|
||||
casts. Add type parameters.
|
||||
(setDirection(Vector,boolean)): Add type parameters and remove
|
||||
redundant casts.
|
||||
(cloneSegmentList()): Add type parameter. Remove redundant
|
||||
cast.
|
||||
(createNodes(Segment,Intersection[])): Add type parameter.
|
||||
Remove redundant cast.
|
||||
|
||||
2012-10-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java:
|
||||
(DSSIInfo.copyright): Added field.
|
||||
(DSSIInfo(String,String,String,String,String,String,long)):
|
||||
Extended constructor to store copyright.
|
||||
(examineLibrary(String)): Add type parameter.
|
||||
Fix call to new DSSIInfo constructor.
|
||||
(static): Add type parameters.
|
||||
* gnu/javax/sound/midi/dssi/DSSISynthesizer.java:
|
||||
(instruments): Add type parameter.
|
||||
(resources): Likewise.
|
||||
(getResources()): Remove redundant cast.
|
||||
(getInstruments()): Likewise.
|
||||
(getInstrument(Patch)): Add type parameter and remove
|
||||
redundant cast.
|
||||
(soundbanks): Add type parameter.
|
||||
(getAvailableInstruments()): Add type parameters and
|
||||
remove redundant casts.
|
||||
* gnu/javax/sound/midi/file/MidiFileReader.java:
|
||||
(getSequence(InputStream)): Don't store length as not used.
|
||||
* gnu/javax/sound/midi/file/MidiFileWriter.java:
|
||||
(computeTrackLength(Track,MidiDataOutputStream)): Drop unused
|
||||
count variable.
|
||||
* gnu/javax/sound/sampled/WAV/WAVReader.java:
|
||||
(getAudioFileFormat(InputStream)): Drop unused blockAlign variable.
|
||||
* gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java:
|
||||
(getLine(Line.Info)): Add type parameter to Class.
|
||||
* javax/sound/midi/MidiSystem.java:
|
||||
(getMidiDeviceInfo()): Add type parameters. Remove unnecessary cast.
|
||||
(getMidiDevice(MidiDevice.Info)): Add type parameter.
|
||||
(getSoundbank(InputStream)): Add type parameters and remove
|
||||
unnecessary casts.
|
||||
(getSoundbank(URL)): Likewise.
|
||||
(getSoundbank(File)): Likewise.
|
||||
(getMidiFileFormat(InputStream)): Likewise.
|
||||
(getMidiFileFormat(URL)): Likewise.
|
||||
(getMidiFileFormat(File)): Likewise.
|
||||
(getSequence(InputStream)): Likewise.
|
||||
(getSequence(URL)): Likewise.
|
||||
(getSequence(File)): Likewise.
|
||||
(getMidiFileTypes()): Likewise.
|
||||
(isFileTypeSupported(int)): Likewise.
|
||||
(getMidiFileTypes(Sequence)): Likewise.
|
||||
(isFileTypeSupported(int,Sequence)): Likewise.
|
||||
(write(Sequence,int,OutputStream)): Likewise.
|
||||
(write(Sequence,int,File)): Likewise.
|
||||
* javax/sound/midi/SoundbankResource.java:
|
||||
(dataClass): Add type parameter.
|
||||
* javax/sound/midi/Track.java:
|
||||
(events): Add type parameter.
|
||||
(eventSet): Likewise.
|
||||
(add(MidiEvent)): Remove redundant cast.
|
||||
(get(int)): Likewise.
|
||||
(ticks()): Likewise.
|
||||
* javax/sound/sampled/AudioSystem.java:
|
||||
(getAudioFileFormat(File)): Add type parameters and
|
||||
remove unnecessary casts.
|
||||
(getAudioFileFormat(InputStream)): Likewise.
|
||||
(getAudioFileFormat(URL)): Likewise.
|
||||
(getAudioFileTypes()): Likewise.
|
||||
(getAudioFileTypes(AudioInputStream)): Likewise.
|
||||
(getAudioInputStream(AudioFormat.Encoding,AudioInputStream)):
|
||||
Likewise.
|
||||
(getAudioInputStream(AudioFormat,AudioInputStream)): Likewise.
|
||||
(getAudioInputStream(File)): Likewise.
|
||||
(getAudioInputStream(InputStream)): Likewise.
|
||||
(getAudioInputStream(URL)): Likewise.
|
||||
(getMixer(Mixer.Info)): Likewise.
|
||||
(getMixerInfo()): Likewise.
|
||||
(getTargetEncodings(AudioFormat.Encoding)): Likewise.
|
||||
(getTargetEncodings(AudioFormat)): Likewise.
|
||||
(getTargetFormats(AudioFormat.Encoding,AudioFormat)): Likewise.
|
||||
(isConversionSupported(AudioFormat.Encoding,AudioFormat)): Likewise.
|
||||
(isConversionSupported(AudioFormat,AudioFormat)): Likewise.
|
||||
(write(AudioInputStream,AudioFileFormat.Type,File)): Likewise.
|
||||
(write(AudioInputStream,AudioFileFormat.Type,OutputStream)): Likewise.
|
||||
* javax/sound/sampled/Line.java:
|
||||
(klass): Add type parameter.
|
||||
* m4/ac_prog_javac.m4:
|
||||
(ECJ_OPTS): Turn of unused private field warnings for now,
|
||||
as some may be used from native code.
|
||||
|
||||
2012-09-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
PR classpath/42134
|
||||
* java/text/Bidi.java:
|
||||
(Bidi(AttributedCharacterIterator)): Remove shadow
|
||||
variable text which hides the instance variable
|
||||
of the same name. Remove unnecessary use of this.
|
||||
* NEWS: Updated.
|
||||
|
||||
2012-09-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* tools/com/sun/javadoc/Doc.java:
|
||||
Add type parameter to Comparable.
|
||||
* tools/gnu/classpath/tools/doclets/AbstractDoclet.java:
|
||||
(tagletMap): Use type parameters.
|
||||
(packageGroups): Likewise.
|
||||
(tagletPath): Removed, unused.
|
||||
(mentionedTags): Use type parameters.
|
||||
(optionNoEmailWarn): Removed, unused.
|
||||
(optionTagletPath): Likewise.
|
||||
(DocletOptionTaglet): Likewise.
|
||||
(DocletOptionGroup.set(String[])): Add type aprameters to
|
||||
groupPackages.
|
||||
(DocletOptionTagletPath): Removed, unused.
|
||||
(commonOptions): Remove optionTagletPath.
|
||||
(nameToOptionMap): Add type parameters.
|
||||
(getOptionLength(String)): Remove unnecessary cast.
|
||||
(getKnownDirectSubclasses(ClassDoc)): Add type parameters.
|
||||
(IndexKey): Add type parameter to Comparable.
|
||||
(IndexKey.compareTo(IndexKey)): Update to use specific type.
|
||||
(categorizedIndex): Use type parameters.
|
||||
(getCategorizedIndex()): Likewise.
|
||||
(indexByName): Likewise.
|
||||
(getIndexByName()): Likewise.
|
||||
(printTaglets(Tag[],TagletContext,TagletPrinter,boolean)): Likewise.
|
||||
(addUsedBy(Map,ClassDoc,UsageType,Doc,PackageDoc)): Likewise.
|
||||
(collectUsage()): Likewise.
|
||||
(usedClassToPackagesMap): Likewise.
|
||||
(getUsageOfClass(ClassDoc)): Likewise.
|
||||
(UsageType): Add type parameter to Comparable.
|
||||
(UsageType.compareTo(UsageType)): Update to use specific type.
|
||||
(getPackageGroups()): Use type parameters.
|
||||
* tools/gnu/classpath/tools/doclets/PackageMatcher.java:
|
||||
(patterns): Use type parameters.
|
||||
(filter(Packagedoc[])): Likewise.
|
||||
(match(PackageDoc)): Likewise.
|
||||
* tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java:
|
||||
(externalDocSets): Use type parameters.
|
||||
(packageNameToDocSet)): Likewise.
|
||||
(printPackagePage(File,String,PackageDoc,PackageDoc,PackageDoc)): Likewise.
|
||||
(TreeNode): Add type parameter to Comparable.
|
||||
(TreeNode.children): Use type parameters.
|
||||
(TreeNode.compareTo(TreeNode)): Update to use specific type.
|
||||
(addClassTreeNode(Map,ClassDoc)): Use type parameters.
|
||||
(addInterfacetreeNode(Map,ClassDoc)): Likewise.
|
||||
(printClassTree(HtmlPage,ClassDoc[])): Likewise.
|
||||
(printInterfaceTree(HtmlPage,ClassDoc[])): Likewise.
|
||||
(printFullTreePage()): Likewise.
|
||||
(printIndexEntry(HtmlPage,Doc)): Likewise.
|
||||
(printPackagesMenuPage()): Likewise.
|
||||
(printClassMenuSection(HtmlPage,Collection,String)): Likewise.
|
||||
(printClassMenuList(HtmlPage,ClassDoc[],boolean)): Likewise.
|
||||
(printSplitIndex()): Likewise.
|
||||
(printIndexPage(int,int,Character,List)): Likewise.
|
||||
(printSerializationPage()): Likewise.
|
||||
(printDeprecationPage()): Likewise.
|
||||
(getMemberDocURL(HtmlPage,ProgramElementDoc)): Likewise.
|
||||
(createTypeHref(HtmlPage,Type,boolean)): Likewise.
|
||||
(getPackageURL(PackageDoc)): Remove redundant cast.
|
||||
(getClassURL(ClassDoc)): Likewise.
|
||||
* tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java:
|
||||
(primitiveNames): Add type parameters.
|
||||
(findClassCache): Likewise.
|
||||
(findClass(String,String): Likewise.
|
||||
(createInstance(ClassDoc,PackageDoc,ClassDoc[],PackageDoc[],
|
||||
char[],int,int,List)): Likewise.
|
||||
(resolve()): Likewise.
|
||||
(typeMap): Likewise.
|
||||
(typeForString(String)): Likewise..
|
||||
(equals(Object)): Likewise.
|
||||
(maybeSerMethodList): Likewise.
|
||||
(setMaybeSerMethodList(List)): Likewise.
|
||||
(findFieldValue(String,ClassDoc,String,Set)): Likewise.
|
||||
(getValue(String,Set)): Likewise.
|
||||
(compareTo(Doc)): Use specific type.
|
||||
(importStatementList): Use type parameters.
|
||||
(setImportStatementList(List)): Likewise.
|
||||
* tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java:
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java:
|
||||
Expand imports.
|
||||
(findClass(String)): Don't use full class name for String.
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/DocImpl.java:
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java:
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java:
|
||||
(createFromSource(ClassDoc,PackageDoc,char[],int,int)):
|
||||
Use type parameters. Remove unused lastFieldDefStart
|
||||
variable.
|
||||
(constantValue(Set)): Use type parameters.
|
||||
* tools/gnu/classpath/tools/gjdoc/Main.java:
|
||||
(option_overview): Removed unused field.
|
||||
(option_classpath): Likewise.
|
||||
(option_sourcepath): Add type parameters.
|
||||
(option_extdirs): Removed unused field.
|
||||
(option_verbose): Likewise.
|
||||
(option_java_flags): Likewise.
|
||||
(option_subpackages): Add type parameters.
|
||||
(option_exclude): Likewise.
|
||||
(startDoclet(List)): Likewise.
|
||||
(addFoundPackages(String,Set)): Likewise.
|
||||
(findPackages(String,File,Set)): Likewise.
|
||||
(start(String[])): Likewise.
|
||||
(addJavaLangClasses()): Commented out, apparently unused.
|
||||
(options): Add type parameters.
|
||||
(initOptions()): Likewise. Remove redundant variable
|
||||
setting.
|
||||
* tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java:
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java:
|
||||
(allClassesSet): Use type parameters.
|
||||
(ordinaryClassesList): Likewise.
|
||||
(exceptionsList): Likewise.
|
||||
(interfacesList): Likewise.
|
||||
(errorsList): Likewise.
|
||||
(resolve()): Likewise.
|
||||
(toClassDocArray(Collection)): Likewise.
|
||||
(compareTo(Doc)): Use specific type.
|
||||
* tools/gnu/classpath/tools/gjdoc/Parser.java:
|
||||
Expand import statements.
|
||||
(process(Parser,char[],int,int)): Add type parameters.
|
||||
(processedFiles): Add type parameters.
|
||||
(processSourceFile(File,boolean,String,String)): Add type
|
||||
parameters.
|
||||
(classOpened(char[],int,int)): Likewise.
|
||||
(toArray(List,T[])): Likewise.
|
||||
(classClosed()): Likewise.
|
||||
(Context.fieldList): Likewise.
|
||||
(Context.filteredFieldList): Likewise.
|
||||
(Context.sfieldList): Likewise.
|
||||
(Context.methodList): Likewise.
|
||||
(Context.filteredMethodList): Likewise.
|
||||
(Context.maybeSerMethodList): Likewise.
|
||||
(Context.constructorList): Likewise.
|
||||
(Context.filteredConstructorList): Likewise.
|
||||
(Context.innerClassesList): Likewise.
|
||||
(Context.filteredInnerClassesList): Likewise.
|
||||
* tools/gnu/classpath/tools/gjdoc/RootDocImpl.java:
|
||||
(findSourceFiles(String)): Add type parameters.
|
||||
* tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java:
|
||||
(evaluate(String,Set,EvaluatorEnvironment)): Add type parameters.
|
||||
* tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java:
|
||||
(getValue(String,Set)): Add type parameters.
|
||||
* tools/gnu/classpath/tools/gjdoc/expr/Type.java:
|
||||
(clazz): Add type parameters.
|
||||
(Type(Class)): Likewise.
|
||||
* tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java:
|
||||
(keep): Remove unused field.
|
||||
(errors): Add type parameter.
|
||||
(compile): Remove unused field.
|
||||
(classpath): Likewise.
|
||||
(clazz): Add type parameter.
|
||||
(mRemoteInterfaces): Likewise.
|
||||
(run(String[])): Add type parameters.
|
||||
(processClass(String)): Likewise.
|
||||
(getException()): Remove unnecessary cast.
|
||||
(typeArray(Class[])): Add type parameter.
|
||||
(param(Method,int)): Add type parameter. Use Integer.valueOf.
|
||||
(generateClassConstant(MethodVisitor,Class)): Add type parameters.
|
||||
(generateClassArray(MethodVisitor,Class)): Likewise.
|
||||
(generateStub()): Remove unused variables stubclassname, size
|
||||
& endReturnTryCatch. Remove unnecessary casts and add type
|
||||
parameters.
|
||||
(generateSkel()): Remove unused variable skelclassname.
|
||||
Use Long.valueOf.
|
||||
(generateMethodSkel(MethodVisitor,Method,Variables)):
|
||||
Add type parameters.
|
||||
(typeArg(Class)): Add type parameter.
|
||||
(readMethod(Class)): Likewise.
|
||||
(writeMethod(Class)): Likewise.
|
||||
(returnOpcode(Class)): Likewise.
|
||||
(loadOpcode(Class)): Likewise.
|
||||
(storeOpcode(Class)): Likewise.
|
||||
(unboxMethod(Class)): Likewise.
|
||||
(box(Class)): Likewise.
|
||||
(size(Class)): Likewise.
|
||||
(sortExceptions(Class[])): Add type parameters.
|
||||
(setup(boolean,boolean,boolean,boolean,boolean,boolean,
|
||||
boolean,boolean,boolean,boolean,String,String,String,String)):
|
||||
Remove unused variables keep & classpath.
|
||||
(findRemoteMethods()): Add type parameters.
|
||||
(MethodRef.exceptions): Add type parameter.
|
||||
(MethodRef.removeSubclasses(Class[])): Add type parameters.
|
||||
(MethodRef.intersectExceptions(Method)): Likewise.
|
||||
* tools/gnu/classpath/tools/rmic/Main.java:
|
||||
(backends): Add type parameter.
|
||||
(run(String[])): Remove redundant cast.
|
||||
* tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java:
|
||||
(getArgumentList()): Add type parameters.
|
||||
(getArgumentNames()): Likewise.
|
||||
(getThrows()): Likewise.
|
||||
(getStaticMethodDeclarations()): Likewise.
|
||||
* tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java:
|
||||
Add type parameter to Comparable.
|
||||
(implementedRemotes): Add type parameter.
|
||||
(extraImports): Likewise.
|
||||
(methods): Likewise.
|
||||
(interfaces): Likewise.
|
||||
(compile(Class)): Add type parameters.
|
||||
(getId(Class)): Add type parameter.
|
||||
(getIdList(Collection)): Add type parameters.
|
||||
(generateStub()): Add type parameters.
|
||||
(generateTie()): Likewise.
|
||||
(compare(AbstractMethodGenerator,AbstractMethodGenerator)): Use
|
||||
more specific types.
|
||||
(getImportStatements()): Add type parameters.
|
||||
* tools/gnu/classpath/tools/rmic/Variables.java:
|
||||
(free): Add type parameter.
|
||||
(names): Add type parameters.
|
||||
(wides): Add type parameter.
|
||||
(declared): Likewise.
|
||||
(allocateNow(Object,int)): Use Integer.valueOf.
|
||||
(allocate(Object,int)): Add type parameters.
|
||||
(deallocate(Object)): Remove redundant cast.
|
||||
Use Integer.valueOf.
|
||||
(get(Object)): Remove redundant cast.
|
||||
|
||||
2012-08-09 Dodji Seketeli <dodji@redhat.com>
|
||||
|
||||
Use accessor functions to manipulate xmlOutputBuffer
|
||||
* native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
|
||||
(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
|
||||
(xmljOutputWriteCallback): Use them.
|
||||
(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
|
||||
(xmljOutputWriteCallback): Use them.
|
||||
|
||||
2012-03-08 Andrew John Hughes <ahughes@redhat.com>
|
||||
2012-08-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
* NEWS: Set correct release date.
|
||||
* configure.ac: Bump to 0.99 proper.
|
||||
* java/util/TimeZone.java:
|
||||
(defaultZone()): Use parameterized PrivilegedAction.
|
||||
(aliases0): Add type parameters.
|
||||
(timezones0); Likewise.
|
||||
(timezones()): Likewise.
|
||||
(getDateParams(String)): Fix indenting.
|
||||
(getTimeZoneInternal(String)): Remove redundant casts.
|
||||
(getAvailableIDs(int)): Add type parameters.
|
||||
(getAvailableIDs(File,String,ArrayList)): Likewise.
|
||||
(getAvailableIDs()): Likewise.
|
||||
|
||||
2012-07-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
|
||||
|
||||
Update copyright headers throughout.
|
||||
* gnu/java/text/AttributedFormatBuffer.java:
|
||||
(ranges): Add generic type information.
|
||||
(attributes): Likewise.
|
||||
(aRanges): Rename from a_ranges.
|
||||
(aAttributes): Add generic type information and
|
||||
rename from a_attributes. Convert to a list of
|
||||
maps rather than an array for type safety.
|
||||
(defaultAttr): Replace prefix with static import.
|
||||
(AttributedFormatBuffer(CPStringBuilder): Add generic
|
||||
typing.
|
||||
(addAttribute(int,Attribute)): Drop prefix, rename
|
||||
new_range to newRange. Add generic types.
|
||||
Use Integer.valueOf in place of new Integer.
|
||||
(append(String,Attribute)): Drop prefix.
|
||||
(append(String,int[],List)): Replace array with list.
|
||||
Use Integer.valueOf instead of new Integer.
|
||||
(append(char,Attribute)): Drop prefix.
|
||||
(setDefaultAttribute(Attribute)): Likewise.
|
||||
(getDefaultAttribute()): Likewise.
|
||||
(sync()): Rename a_ranges to aRanges. Drop unneeded casts.
|
||||
Replace array with list.
|
||||
(getRanges()): Rename a_ranges to aRanges.
|
||||
(getAttributes()): Replace map with list. Rename a_attributes
|
||||
to aAttributes.
|
||||
* gnu/java/text/FormatBuffer.java:
|
||||
Add static import for Attribute.
|
||||
* gnu/java/text/FormatCharacterIterator.java:
|
||||
(attributes): Replace array with list.
|
||||
(FormatCharacterIterator()): Likewise.
|
||||
(FormatCharacterIterator(String,int,List)): Switch from
|
||||
array to list. Update documentation.
|
||||
(getAllAttributeKeys()): Add generic type. Switch
|
||||
from array to list.
|
||||
(getAttributes()): Likewise.
|
||||
(getAttribute(Attribute)): Likewise.
|
||||
(getRunLimit(Set)): Likewise.
|
||||
(getRunLimit(Attribute)): Likewise.
|
||||
(getRunStart(Set)): Likewise.
|
||||
(getRunStart(Attribute)): Likewise.
|
||||
(mergeAttributes(List,int[])): Likewise. Use List
|
||||
in preference to Vector. Use newRanges & newAttributes
|
||||
rather than new_ranges and new_attributes.
|
||||
(append(AttributedCharacterIterator)): Likewise.
|
||||
(append(String,HashMap)): Likewise.
|
||||
(addAttributes(Map,int,int)): Likewise.
|
||||
(dumpTable()): Use startRange instead of start_range.
|
||||
Add generic types.
|
||||
* gnu/java/text/StringFormatBuffer.java,
|
||||
Add static import for Attribute.
|
||||
* java/text/AttributedString.java:
|
||||
Add static import for Attribute.
|
||||
(attribs): Add generic type.
|
||||
(AttributeRange(Map,int,int)): Likewise.
|
||||
(AttributedString(String,Map)): Likewise.
|
||||
(AttributedString(AttributedCharacterIterator, int, int,
|
||||
Attribute)): Drop prefix, add generic types.
|
||||
(addAttribute(Attribute,Object)): Drop prefix.
|
||||
(addAttribute(Attribute,Object,int,int)): Likewise
|
||||
and add generic types.
|
||||
(addAttributes(Map,int,int)): Add generic types.
|
||||
(getIterator(Attribute)): Drop prefix.
|
||||
(getIterator(Attribute[])): Likewise.
|
||||
* java/text/AttributedStringIterator.java:
|
||||
Add static import for Attribute.
|
||||
(getAllAttributeKeys()): Add generic type.
|
||||
(getRunLimit(Attribute)): Add generic type, drop
|
||||
prefix.
|
||||
(getRunLimit(Set)): Add generic types.
|
||||
(getRunStart(Attribute)): Add generic type, drop
|
||||
prefix.
|
||||
(getRunStart(Set)): Add generic types.
|
||||
(getAttributes()): Likewise.
|
||||
* java/text/Bidi.java:
|
||||
(formatterIndices): Add generic type.
|
||||
(reinsertFormattingCodes()): Drop redundant cast.
|
||||
* java/text/BreakIterator.java:
|
||||
(getInstance(String,Locale)): Add generic type to Class.
|
||||
* java/text/ChoiceFormat.java:
|
||||
(stringVec): Add generic type.
|
||||
(limitVec): Likewise.
|
||||
(applyPattern(String)): Remove redundant cast.
|
||||
* java/text/CollationElementIterator.java:
|
||||
(textDecomposition): Renamed from text_decomposition.
|
||||
(textIndexes): Renamed from text_indexes.
|
||||
(setText(String)): Add generic types. Rename a_element
|
||||
to aElement. Rename a_idx to aIdx. Rename key_old to
|
||||
keyOld. Use Integer.valueOf rather than new Integer.
|
||||
* java/text/DecimalFormat.java:
|
||||
(attributes): Add generic type.
|
||||
(formatToCharacterIterator(Object)): Remove redundant cast.
|
||||
* java/text/MessageFormat.java:
|
||||
(Field()): Remove unneeded warning suppression.
|
||||
* java/text/NumberFormat.java:
|
||||
(Field()): Likewise.
|
||||
|
||||
2012-07-01 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
PR classpath/44052
|
||||
* java/text/DateFormatSymbols.java:
|
||||
(DFSData): Inner immutable class for storing parsed
|
||||
locale data.
|
||||
(DFSData.DFSData(String[],String[],String,String[],
|
||||
String[],String[],String[],String[],String[],
|
||||
String[][])): Constructor to initialise a new instance
|
||||
with property data.
|
||||
(DFSData.getAMPMs()): Return a clone of the ampms array.
|
||||
(DFSData.getEras()): Likewise for eras.
|
||||
(DFSData.getLocalPatternChars()): Return the local pattern
|
||||
characters.
|
||||
(DFSData.getMonths()): Return a clone of the (long) months
|
||||
array.
|
||||
(DFSData.getShortMonths()): Likewise for the short months array.
|
||||
(DFSData.getWeekdays()): Likewise for (long) weekdays.
|
||||
(DFSData.getShortWeekdays()): Likewise for short weekdays.
|
||||
(DFSData.getDateFormats()): Likewise for date formats.
|
||||
(DFSData.getTimeFormats()): Likewise for time formats.
|
||||
(DFSData.getZoneStrings()): Likewise for zone strings.
|
||||
(dataCache): Cache of parsed locale data.
|
||||
(getZoneStrings(List<ResourceBundle>,Locale)):
|
||||
Make static so it can be called by retrieveData.
|
||||
(formatsForKey(List<ResourceBundle>,String)):
|
||||
Likewise.
|
||||
(getString(List<ResourceBundle>, String)): Likewise.
|
||||
(retrieveData(Locale)): Separate out retrieval of
|
||||
locale data from constructor and store it in the cache.
|
||||
(DateFormatSymbols(Locale)): Modify to call retrieveData
|
||||
and set fields from the returned DFSData instance.
|
||||
|
||||
2012-05-30 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* java/text/DateFormatSymbols.java:
|
||||
(getZoneStrings(List<ResourceBundle>, Locale)):
|
||||
Refactor to use existing list of resource bundles.
|
||||
(formatsForKey(List<ResourceBundle>, String)):
|
||||
Likewise and use new local getString method.
|
||||
(getString(List<ResourceBundle>, String)):
|
||||
Use first available String from most-specific locale
|
||||
rather than the least-specific.
|
||||
(DateFormatSymbols(Locale)): Use bundles for resolving
|
||||
localPatternChars, dateFormats, timeFormats and runtimeZoneStrings
|
||||
as well.
|
||||
|
||||
2012-05-04 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
|
||||
(font_map): Renamed from ft2_map.
|
||||
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState(JNIEnv,
|
||||
jclass)): Remove cast to pango_ft2_font_map_new.
|
||||
(Java_gnu_java_awt_peer_gtk_GdKFontPeer_setFont(JNIEnv,
|
||||
jobject,jstring,jint,jint)): Call pango_font_map_create_context
|
||||
rather than deprecated pango_ft2_font_map_create_context.
|
||||
|
||||
2012-05-01 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* java/text/DateFormatSymbols.java:
|
||||
Rename U00AE and U000A9 as the more memorable
|
||||
FIELD_SPLIT and ZONE_SPLIT respectively.
|
||||
* THANKYOU: Add Andreas Sewe.
|
||||
|
||||
2012-04-30 Andreas Sewe <sewe@st.informatik.tu-darmstadt.de>
|
||||
|
||||
PR classpath/53171
|
||||
* java/text/DateFormatSymbols.java:
|
||||
(U00A9): Pre-compile pattern for zone separation.
|
||||
(U00AE): Likewise for fields.
|
||||
(getStringArray(List,String,int,String)): Use U00AE.split
|
||||
in place of String.split.
|
||||
(getZoneStrings(ResourceBundle,Locale)): Use U00AE.split
|
||||
and U00A9.split in place of String.split.
|
||||
|
||||
2012-04-25 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
Update warning suppression so it still works
|
||||
with newer compilers.
|
||||
* javax/activation/ActivationDataFlavor.java:
|
||||
(ActivationDataFlavor(Class,String,String)): Suppress
|
||||
rawtypes not unchecked.
|
||||
(ActivationDataFlavor(Class,String)): Likewise.
|
||||
(getRepresentationClass()): Likewise.
|
||||
* javax/activation/MimeTypeParameterList.java:
|
||||
(getNames()): Likewise.
|
||||
* javax/management/DefaultLoaderRepository.java:
|
||||
(loadClass(String)): Likewise.
|
||||
(loadClassWithout(ClassLoader,String)): Likewise.
|
||||
* javax/management/MBeanConstructorInfo.java:
|
||||
(MBeanConstructorInof(String,Constructor)): Likewise.
|
||||
* javax/management/remote/rmi/RMIConnection.java:
|
||||
(addNotificationListener(ObjectName,ObjectName,MarshelledObject,
|
||||
MarshelledObject,Subject)): Likewise.
|
||||
(addNotificationListeners(ObjectName[],MarshelledObject[], Subject[])):
|
||||
Likewise.
|
||||
(createMBean(String,ObjectName,MarshalledObject,String,Subject)): Likewise.
|
||||
(createMBean(String,ObjectName,ObjectName,MarshalledObject,String[],Subject)):
|
||||
Likewise.
|
||||
(invoke(ObjectName,String,MarshalledObject,String[],Subject)): Likewise.
|
||||
(queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise.
|
||||
(queryNames(ObjectName,MarshalledObject,Subject)): Likewise.
|
||||
(removeNotificationListener(ObjectName,ObjectName,MarshalledObject,
|
||||
MarshalledObject,Subject)): Likewise.
|
||||
(setAttribute(ObjectName,MarshalledObject,Subject)): Likewise.
|
||||
(setAttributes(ObjectName,MarshalledObject,Subject)): Likewise.
|
||||
* javax/swing/tree/DefaultMutableTreeNode.java:
|
||||
(children()): Likewise.
|
||||
(preorderEnumeration()): Likewise.
|
||||
(postorderEnumeration()): Likewise.
|
||||
(breadthFirstEnumeration()): Likewise.
|
||||
(depthFirstEnumeration()): Likewise.
|
||||
(pathFromAncestorEnumeration(TreeNode)): Likewise.
|
||||
(BreadthFirstEnumeration.nextElement()): Move annotation down to assignment level.
|
||||
(PreorderEnumeration.PreorderEnumeration(TreeNode)): Likewise.
|
||||
(PreorderEnumeration.traverse(Enumeration)): Likewise.
|
||||
(PostorderEnumeration.PostorderEnumeration(TreeNode)): Likewise.
|
||||
(PostorderEnumeration.traverse(Enumeration()): Likewise.
|
||||
* javax/swing/tree/TreeNode.java:
|
||||
(children()): Suppress rawtypes not unchecked.
|
||||
* javax/xml/namespace/NamespaceContext.java:
|
||||
(getPrefixes(String)): Likewise.
|
||||
* javax/xml/stream/XMLEventFactory.java:
|
||||
(createStartElement(QName,Iterator,Iterator)): Likewise.
|
||||
(createStartElement(String,String,String,Iterator,Iterator)): Likewise.
|
||||
(createStartElement(String,String,String,Iterator,Iterator,NamespaceContext)):
|
||||
Likewise.
|
||||
(createEndElement(QName,Iterator)): Likewise.
|
||||
(createEndElement(String,String,String,Iterator)): Likewise.
|
||||
* javax/xml/stream/XMLEventReader.java: Likewise (at class level
|
||||
due to inheritance).
|
||||
* javax/xml/stream/events/DTD.java:
|
||||
(getNotations()): Likewise.
|
||||
(getEntities()): Likewise.
|
||||
* javax/xml/stream/events/EndElement.java:
|
||||
(getNamespaces()): Likewise.
|
||||
* javax/xml/stream/events/StartElement.java:
|
||||
(getAttributes()): Likewise.
|
||||
(getNamespaces()): Likewise.
|
||||
* javax/xml/xpath/XPathFunction.java:
|
||||
(evaluate(List)): Likewise.
|
||||
* org/omg/CORBA/LocalObject.java:
|
||||
(_servant_preinvoke(String,Class)): Likewise.
|
||||
* org/omg/CORBA/portable/Delegate.java:
|
||||
(servant_preinvoke(org.omg.CORBA.Object,String,Class)): Likewise.
|
||||
* org/omg/CORBA/portable/InputStream.java:
|
||||
(read_Object(Class)): Likewise.
|
||||
* org/omg/CORBA/portable/ObjectImpl.java:
|
||||
(_servant_preinvoke(String,Class)): Likewise.
|
||||
* org/omg/CORBA_2_3/portable/InputStream.java:
|
||||
(read_abstract_interface(Class)): Likewise.
|
||||
(read_value(Class)): Likewise.
|
||||
* org/omg/CORBA_2_3/portable/OutputStream.java:
|
||||
(write_value(Serializable,Class)): Likewise.
|
||||
* org/omg/DynamicAny/_DynAnyFactoryStub.java:
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynAnyStub.java:
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynArrayStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynEnumStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynFixedStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynSequenceStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynStructStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynUnionStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/DynamicAny/_DynValueStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/PortableServer/_ServantActivatorStub.java,
|
||||
(_opsClass): Likewise.
|
||||
* org/omg/PortableServer/_ServantLocatorStub.java,
|
||||
(_opsClass): Likewise.
|
||||
|
||||
2012-04-24 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c:
|
||||
(Java_gnu_java_awt_peer_gtk_GtkImage_freePixbuf):
|
||||
Use g_object_unref rather than deprecated gdk_pixbuf_unref
|
||||
to avoid warning.
|
||||
|
||||
2012-04-03 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* .gitignore: Renamed from .cvsignore.
|
||||
|
||||
2012-01-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gnu/java/rmi/registry/RegistryImpl.java (version): Update
|
||||
copyright notice dates.
|
||||
* tools/gnu/classpath/tools/orbd/Main.java (run): Likewise.
|
||||
|
||||
2007-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* java/util/TimeZone.java (getDefaultDisplayName): Don't
|
||||
check if TimeZone is instanceof SimpleTimeZone.
|
||||
|
||||
2006-09-13 Andrew Haley <aph@redhat.com>
|
||||
|
||||
* java/util/PriorityQueue.java: Throw IllegalArgumentException for
|
||||
capacity < 1.
|
||||
(Iterator.remove()): Decrement index after removing element.
|
||||
|
||||
2007-02-14 Jakub Jelinek <jakub@redhat.com>
|
||||
Andrew Haley <aph@redhat.com>
|
||||
|
||||
* java/util/TimeZone.java (getDateParams): Negate dayOfWeek.
|
||||
|
||||
2012-03-22 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* java/util/regex/Matcher.java:
|
||||
(usePattern(Pattern)): Implemented.
|
||||
|
||||
2012-03-25 Gerald Pfeifer <gerald@pfeifer.com>
|
||||
|
||||
PR libgcj/52694
|
||||
* native/jni/java-io/java_io_VMConsole.c (IUCLC): Define, if
|
||||
undefined.
|
||||
|
||||
2012-03-16 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* NEWS: Add key along the same lines
|
||||
as IcedTea.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* gnu/java/nio/FileLockImpl.java,
|
||||
* java/beans/XMLDecoder.java,
|
||||
* java/beans/XMLEncoder.java,
|
||||
* java/io/Closeable.java,
|
||||
* java/io/ObjectInput.java,
|
||||
* java/io/ObjectOutput.java,
|
||||
* java/lang/AutoCloseable.java,
|
||||
* java/nio/channels/FileLock.java,
|
||||
* java/sql/Connection.java,
|
||||
* java/sql/ResultSet.java,
|
||||
* java/sql/Statement.java,
|
||||
* javax/sound/midi/MidiDevice.java,
|
||||
* javax/sound/midi/Receiver.java,
|
||||
* javax/sound/midi/Transmitter.java,
|
||||
* javax/sound/sampled/Line.java:
|
||||
Add missing interface.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/reflect/Modifier.java:
|
||||
(classModifiers): Add missing method.
|
||||
(interfaceModifiers): Add missing method.
|
||||
(constructorModifiers): Add missing method.
|
||||
(methodModifiers): Add missing method.
|
||||
(fieldModifiers): Add missing method.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/ClassNotFoundException,
|
||||
* java/lang/IllegalAccessException.java,
|
||||
* java/lang/InstantiationException.java,
|
||||
* java/lang/NoSuchFieldException.java,
|
||||
* java/lang/NoSuchMethodException.java,
|
||||
* java/lang/ReflectiveOperationException.java,
|
||||
* java/lang/reflect/InvocationTargetException.java:
|
||||
Add ReflectiveOperationException class.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/AssertionError.java:
|
||||
(AssertionError): Add missing constructor.
|
||||
* java/lang/LinkageError.java:
|
||||
(LinkageError): Add missing constructor.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/Boolean.java:
|
||||
(compare): Add missing method.
|
||||
* java/lang/Byte.java:
|
||||
(compare): Add missing method.
|
||||
* java/lang/Character.java:
|
||||
(compare): Add missing method.
|
||||
* java/lang/Integer.java:
|
||||
(compare): Add missing method.
|
||||
* java/lang/Long.java:
|
||||
(compare): Add missing method.
|
||||
* java/lang/Short.java:
|
||||
(compare): Add missing method.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/System.java:
|
||||
(lineSeparator): Add missing method.
|
||||
|
||||
2012-03-12 Pekka Enberg <penberg@kernel.org>
|
||||
|
||||
* java/lang/reflect/Member.java:
|
||||
(getDeclaringClass): Fix return type.
|
||||
|
||||
2012-03-07 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
* NEWS:
|
||||
Add section for 1.0 release.
|
||||
* configure.ac:
|
||||
Bump to 1.0pre.
|
||||
|
||||
2012-03-07 Andrew John Hughes <ahughes@redhat.com>
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-12-03 Matthias Klose <doko@ubuntu.com>
|
||||
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Call with no-dist.
|
||||
* m4/lib-ld.m4, m4/lib-link.m4,m4/lib-prefix.m4: New.
|
||||
|
||||
2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* configure: Regenerated.
|
||||
|
@ -1,8 +1,8 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
|
||||
Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
@ -226,11 +226,6 @@ order to use an ANSI C compiler:
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
HP-UX `make' updates targets which have the same time stamps as
|
||||
their prerequisites, which makes it generally unusable when shipped
|
||||
generated files such as `configure' are involved. Use GNU `make'
|
||||
instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
|
@ -36,11 +36,11 @@ host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../../compile \
|
||||
$(srcdir)/../../config.guess $(srcdir)/../../config.sub \
|
||||
$(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \
|
||||
$(srcdir)/../../missing $(srcdir)/../../mkinstalldirs \
|
||||
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/configure \
|
||||
$(srcdir)/../../config.guess $(srcdir)/../../config.rpath \
|
||||
$(srcdir)/../../config.sub $(srcdir)/../../install-sh \
|
||||
$(srcdir)/../../ltmain.sh $(srcdir)/../../missing \
|
||||
$(srcdir)/../../mkinstalldirs $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(top_srcdir)/configure \
|
||||
$(top_srcdir)/gnu/classpath/Configuration.java.in \
|
||||
$(top_srcdir)/gnu/java/security/Configuration.java.in \
|
||||
$(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
|
||||
@ -57,9 +57,6 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../../compile \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -78,7 +75,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
@ -247,6 +246,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -1,4 +1,27 @@
|
||||
New in release 0.99 (Mar 08, 2012)
|
||||
Key:
|
||||
|
||||
SX - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=X
|
||||
RHX - https://bugzilla.redhat.com/show_bug.cgi?id=X
|
||||
DX - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=X
|
||||
GX - http://bugs.gentoo.org/show_bug.cgi?id=X
|
||||
CAX - http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=X
|
||||
LPX - https://bugs.launchpad.net/bugs/X
|
||||
PRX - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=X
|
||||
|
||||
CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
|
||||
|
||||
New in release 0.99.1 (XXX XX, 2012)
|
||||
|
||||
* Bug fixes:
|
||||
- PR42134: NPE in java.text.Bidi
|
||||
- PR54931: Classpath will not build docs with version of GJDoc included with itself
|
||||
- PR54960: Avoid NullPointerException in SAXSerializer.
|
||||
- PR42551: Avoid overwriting length of message when computing length representation.
|
||||
- PR44208: Ensure a handle for the enum is registered before its constant.
|
||||
- PR41689: javax.security.sasl.CREDIENTIALS field is missing
|
||||
- PR55140: Addition of exception to codePointBefore breaks OpenJDK GenerateBreakIteratorData tool
|
||||
|
||||
New in release 0.99 (Feb 15, 2012)
|
||||
|
||||
* Addition of java.util.regex.Pattern.quote.
|
||||
* Addition of java.io.IOError.
|
||||
|
@ -15,6 +15,7 @@ Moses DeJong (dejong@cs.umn.edu)
|
||||
Patrick Doyle (doylep@eecg.toronto.edu)
|
||||
Julian Dolby (dolby@us.ibm.com)
|
||||
Raimar Falke (hawk@hawk.shef.ac.uk)
|
||||
Paul Fernhout (pdfernhout@kurtz-fernhout.com)
|
||||
Philip Fong (pwlfong@users.sourceforge.net)
|
||||
Jeroen Frijters (jeroen@sumatra.nl)
|
||||
Etienne M. Gagnon (etienne.gagnon@uqam.ca)
|
||||
@ -43,6 +44,8 @@ Petter Reinholdtsen (pere@hungry.com)
|
||||
Julian Scheid (julian.scheid@sektor37.de)
|
||||
Martin Schröder (ms@artcom-gmbh.de)
|
||||
Robert Schuster (robertschuster@fsfe.org)
|
||||
Andreas Sewe (sewe@st.informatik.tu-darmstadt.de)
|
||||
Jeremy Singer (Jeremy.Singer@glasgow.ac.uk)
|
||||
Gaute Smaaland (gs@sevenmountains.no)
|
||||
Michael Smith (msmith@spinnakernet.com)
|
||||
J. Russell Smyth (drfish@uswest.net)
|
||||
@ -50,6 +53,7 @@ Ian D. Stewart (idstewart@softhome.net)
|
||||
Jeff Sturm (jsturm@one-point.com)
|
||||
Sreenivas Subramoney (sreenivas.subramoney@intel.com)
|
||||
Chris Toshok (toshok@hungry.com)
|
||||
Paul Viney (paul@diasoft.nl)
|
||||
Weldon Washburn (weldon.washburn@intel.com)
|
||||
Adam Welc (welc@cs.purdue.edu)
|
||||
Gansha Wu (gansha.wu@intel.com)
|
||||
|
6
libjava/classpath/aclocal.m4
vendored
6
libjava/classpath/aclocal.m4
vendored
@ -1062,9 +1062,6 @@ AC_SUBST([am__untar])
|
||||
|
||||
m4_include([../../config/depstand.m4])
|
||||
m4_include([../../config/lead-dot.m4])
|
||||
m4_include([../../config/lib-ld.m4])
|
||||
m4_include([../../config/lib-link.m4])
|
||||
m4_include([../../config/lib-prefix.m4])
|
||||
m4_include([../../config/multi.m4])
|
||||
m4_include([../../config/no-executables.m4])
|
||||
m4_include([../../config/override.m4])
|
||||
@ -1085,4 +1082,7 @@ m4_include([m4/ax_create_stdint_h.m4])
|
||||
m4_include([m4/ax_func_which_gethostbyname_r.m4])
|
||||
m4_include([m4/gcc_attribute.m4])
|
||||
m4_include([m4/iconv.m4])
|
||||
m4_include([m4/lib-ld.m4])
|
||||
m4_include([m4/lib-link.m4])
|
||||
m4_include([m4/lib-prefix.m4])
|
||||
m4_include([m4/pkg.m4])
|
||||
|
42
libjava/classpath/config.sub
vendored
42
libjava/classpath/config.sub
vendored
@ -2,9 +2,9 @@
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
# 2011 Free Software Foundation, Inc.
|
||||
# 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2011-10-29'
|
||||
timestamp='2012-04-18'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -21,9 +21,7 @@ timestamp='2011-10-29'
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -76,8 +74,8 @@ version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
||||
Software Foundation, Inc.
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -132,6 +130,10 @@ case $maybe_os in
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
android-linux)
|
||||
os=-linux-android
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||
;;
|
||||
*)
|
||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
||||
if [ $basic_machine != $1 ]
|
||||
@ -223,6 +225,12 @@ case $os in
|
||||
-isc*)
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-lynx*178)
|
||||
os=-lynxos178
|
||||
;;
|
||||
-lynx*5)
|
||||
os=-lynxos5
|
||||
;;
|
||||
-lynx*)
|
||||
os=-lynxos
|
||||
;;
|
||||
@ -247,6 +255,7 @@ case $basic_machine in
|
||||
# Some are omitted here because they have special meanings below.
|
||||
1750a | 580 \
|
||||
| a29k \
|
||||
| aarch64 | aarch64_be \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| am33_2.0 \
|
||||
@ -319,8 +328,7 @@ case $basic_machine in
|
||||
c6x)
|
||||
basic_machine=tic6x-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
||||
# Motorola 68HC11/12.
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
@ -333,7 +341,10 @@ case $basic_machine in
|
||||
strongarm | thumb | xscale)
|
||||
basic_machine=arm-unknown
|
||||
;;
|
||||
|
||||
xgate)
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
xscaleeb)
|
||||
basic_machine=armeb-unknown
|
||||
;;
|
||||
@ -356,6 +367,7 @@ case $basic_machine in
|
||||
# Recognize the basic CPU types with company name.
|
||||
580-* \
|
||||
| a29k-* \
|
||||
| aarch64-* | aarch64_be-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
@ -719,7 +731,6 @@ case $basic_machine in
|
||||
i370-ibm* | ibm*)
|
||||
basic_machine=i370-ibm
|
||||
;;
|
||||
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
||||
i*86v32)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv32
|
||||
@ -816,6 +827,10 @@ case $basic_machine in
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i386-pc
|
||||
os=-msys
|
||||
;;
|
||||
mvs)
|
||||
basic_machine=i370-ibm
|
||||
os=-mvs
|
||||
@ -1343,7 +1358,7 @@ case $os in
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
@ -1555,9 +1570,6 @@ case $basic_machine in
|
||||
;;
|
||||
m68000-sun)
|
||||
os=-sunos3
|
||||
# This also exists in the configure program, but was not the
|
||||
# default.
|
||||
# os=-sunos4
|
||||
;;
|
||||
m68*-cisco)
|
||||
os=-aout
|
||||
|
323
libjava/classpath/configure
vendored
323
libjava/classpath/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.64 for GNU Classpath 0.99.
|
||||
# Generated by GNU Autoconf 2.64 for GNU Classpath 0.99.1-pre.
|
||||
#
|
||||
# Report bugs to <classpath@gnu.org>.
|
||||
#
|
||||
@ -559,8 +559,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='GNU Classpath'
|
||||
PACKAGE_TARNAME='classpath'
|
||||
PACKAGE_VERSION='0.99'
|
||||
PACKAGE_STRING='GNU Classpath 0.99'
|
||||
PACKAGE_VERSION='0.99.1-pre'
|
||||
PACKAGE_STRING='GNU Classpath 0.99.1-pre'
|
||||
PACKAGE_BUGREPORT='classpath@gnu.org'
|
||||
PACKAGE_URL='http://www.gnu.org/software/classpath/'
|
||||
|
||||
@ -669,6 +669,7 @@ GLIB_LIBS
|
||||
GLIB_CFLAGS
|
||||
MOZILLA_LIBS
|
||||
MOZILLA_CFLAGS
|
||||
MOC4
|
||||
MOC
|
||||
QT_LIBS
|
||||
QT_CFLAGS
|
||||
@ -1490,7 +1491,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures GNU Classpath 0.99 to adapt to many kinds of systems.
|
||||
\`configure' configures GNU Classpath 0.99.1-pre to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1565,7 +1566,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of GNU Classpath 0.99:";;
|
||||
short | recursive ) echo "Configuration of GNU Classpath 0.99.1-pre:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1757,7 +1758,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
GNU Classpath configure 0.99
|
||||
GNU Classpath configure 0.99.1-pre
|
||||
generated by GNU Autoconf 2.64
|
||||
|
||||
Copyright (C) 2009 Free Software Foundation, Inc.
|
||||
@ -2586,7 +2587,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by GNU Classpath $as_me 0.99, which was
|
||||
It was created by GNU Classpath $as_me 0.99.1-pre, which was
|
||||
generated by GNU Autoconf 2.64. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -3621,7 +3622,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='classpath'
|
||||
VERSION='0.99'
|
||||
VERSION='0.99.1-pre'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -3880,10 +3881,10 @@ if test "${enable_Werror+set}" = set; then :
|
||||
enableval=$enable_Werror; case "${enableval}" in
|
||||
yes) ENABLE_WERROR=yes ;;
|
||||
no) ENABLE_WERROR=no ;;
|
||||
*) ENABLE_WERROR=default ;;
|
||||
*) ENABLE_WERROR=no ;;
|
||||
esac
|
||||
else
|
||||
ENABLE_WERROR=default
|
||||
ENABLE_WERROR=no
|
||||
fi
|
||||
|
||||
|
||||
@ -11819,7 +11820,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11822 "configure"
|
||||
#line 11823 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -11925,7 +11926,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11928 "configure"
|
||||
#line 11929 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -17957,7 +17958,7 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
|
||||
# Canonicalize the path of ld
|
||||
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
|
||||
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
|
||||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
|
||||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
|
||||
done
|
||||
test -z "$LD" && LD="$ac_prog"
|
||||
;;
|
||||
@ -17989,11 +17990,12 @@ else
|
||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||
# but apparently some GNU ld's only accept -v.
|
||||
# Break only if it was the GNU/non-GNU ld that we prefer.
|
||||
if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
|
||||
test "$with_gnu_ld" != no && break
|
||||
else
|
||||
test "$with_gnu_ld" != yes && break
|
||||
fi
|
||||
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
test "$with_gnu_ld" != no && break ;;
|
||||
*)
|
||||
test "$with_gnu_ld" != yes && break ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
IFS="$ac_save_ifs"
|
||||
@ -18017,11 +18019,12 @@ if test "${acl_cv_prog_gnu_ld+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
||||
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
|
||||
acl_cv_prog_gnu_ld=yes
|
||||
else
|
||||
acl_cv_prog_gnu_ld=no
|
||||
fi
|
||||
case `$LD -v 2>&1 </dev/null` in
|
||||
*GNU* | *'with BFD'*)
|
||||
acl_cv_prog_gnu_ld=yes ;;
|
||||
*)
|
||||
acl_cv_prog_gnu_ld=no ;;
|
||||
esac
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
|
||||
$as_echo "$acl_cv_prog_gnu_ld" >&6; }
|
||||
@ -18029,6 +18032,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
|
||||
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
|
||||
$as_echo_n "checking for shared library run path origin... " >&6; }
|
||||
if test "${acl_cv_rpath+set}" = set; then :
|
||||
@ -18045,12 +18049,14 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
|
||||
$as_echo "$acl_cv_rpath" >&6; }
|
||||
wl="$acl_cv_wl"
|
||||
libext="$acl_cv_libext"
|
||||
shlibext="$acl_cv_shlibext"
|
||||
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
||||
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
||||
hardcode_direct="$acl_cv_hardcode_direct"
|
||||
hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
||||
acl_libext="$acl_cv_libext"
|
||||
acl_shlibext="$acl_cv_shlibext"
|
||||
acl_libname_spec="$acl_cv_libname_spec"
|
||||
acl_library_names_spec="$acl_cv_library_names_spec"
|
||||
acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
||||
acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
||||
acl_hardcode_direct="$acl_cv_hardcode_direct"
|
||||
acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
||||
# Check whether --enable-rpath was given.
|
||||
if test "${enable_rpath+set}" = set; then :
|
||||
enableval=$enable_rpath; :
|
||||
@ -18061,6 +18067,74 @@ fi
|
||||
|
||||
|
||||
|
||||
acl_libdirstem=lib
|
||||
acl_libdirstem2=
|
||||
case "$host_os" in
|
||||
solaris*)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
|
||||
$as_echo_n "checking for 64-bit host... " >&6; }
|
||||
if test "${gl_cv_solaris_64bit+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifdef _LP64
|
||||
sixtyfour bits
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "sixtyfour bits" >/dev/null 2>&1; then :
|
||||
gl_cv_solaris_64bit=yes
|
||||
else
|
||||
gl_cv_solaris_64bit=no
|
||||
fi
|
||||
rm -f conftest*
|
||||
|
||||
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
|
||||
$as_echo "$gl_cv_solaris_64bit" >&6; }
|
||||
if test $gl_cv_solaris_64bit = yes; then
|
||||
acl_libdirstem=lib/64
|
||||
case "$host_cpu" in
|
||||
sparc*) acl_libdirstem2=lib/sparcv9 ;;
|
||||
i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
|
||||
if test -n "$searchpath"; then
|
||||
acl_save_IFS="${IFS= }"; IFS=":"
|
||||
for searchdir in $searchpath; do
|
||||
if test -d "$searchdir"; then
|
||||
case "$searchdir" in
|
||||
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
|
||||
*/../ | */.. )
|
||||
# Better ignore directories of this form. They are misleading.
|
||||
;;
|
||||
*) searchdir=`cd "$searchdir" && pwd`
|
||||
case "$searchdir" in
|
||||
*/lib64 ) acl_libdirstem=lib64 ;;
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
IFS="$acl_save_IFS"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -18100,7 +18174,11 @@ if test "${with_libiconv_prefix+set}" = set; then :
|
||||
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/lib"
|
||||
additional_libdir="$withval/$acl_libdirstem"
|
||||
if test "$acl_libdirstem2" != "$acl_libdirstem" \
|
||||
&& ! test -d "$withval/$acl_libdirstem"; then
|
||||
additional_libdir="$withval/$acl_libdirstem2"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -18109,6 +18187,8 @@ fi
|
||||
LIBICONV=
|
||||
LTLIBICONV=
|
||||
INCICONV=
|
||||
LIBICONV_PREFIX=
|
||||
HAVE_LIBICONV=
|
||||
rpathdirs=
|
||||
ltrpathdirs=
|
||||
names_already_handled=
|
||||
@ -18142,21 +18222,51 @@ fi
|
||||
found_la=
|
||||
found_so=
|
||||
found_a=
|
||||
eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
|
||||
if test -n "$acl_shlibext"; then
|
||||
shrext=".$acl_shlibext" # typically: shrext=.so
|
||||
else
|
||||
shrext=
|
||||
fi
|
||||
if test $use_additional = yes; then
|
||||
if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_so="$additional_libdir/lib$name.$shlibext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$additional_libdir/lib$name.$libext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_a="$additional_libdir/lib$name.$libext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
dir="$additional_libdir"
|
||||
if test -n "$acl_shlibext"; then
|
||||
if test -f "$dir/$libname$shrext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext"
|
||||
else
|
||||
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
|
||||
ver=`(cd "$dir" && \
|
||||
for f in "$libname$shrext".*; do echo "$f"; done \
|
||||
| sed -e "s,^$libname$shrext\\\\.,," \
|
||||
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
|
||||
| sed 1q ) 2>/dev/null`
|
||||
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext.$ver"
|
||||
fi
|
||||
else
|
||||
eval library_names=\"$acl_library_names_spec\"
|
||||
for f in $library_names; do
|
||||
if test -f "$dir/$f"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$f"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
if test -f "$dir/$libname.$acl_libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/$libname.$acl_libext"
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
if test -f "$dir/$libname.la"; then
|
||||
found_la="$dir/$libname.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
@ -18173,20 +18283,43 @@ fi
|
||||
case "$x" in
|
||||
-L*)
|
||||
dir=`echo "X$x" | sed -e 's/^X-L//'`
|
||||
if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/lib$name.$shlibext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$dir/lib$name.$libext"; then
|
||||
if test -n "$acl_shlibext"; then
|
||||
if test -f "$dir/$libname$shrext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/lib$name.$libext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
found_so="$dir/$libname$shrext"
|
||||
else
|
||||
if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
|
||||
ver=`(cd "$dir" && \
|
||||
for f in "$libname$shrext".*; do echo "$f"; done \
|
||||
| sed -e "s,^$libname$shrext\\\\.,," \
|
||||
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
|
||||
| sed 1q ) 2>/dev/null`
|
||||
if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$libname$shrext.$ver"
|
||||
fi
|
||||
else
|
||||
eval library_names=\"$acl_library_names_spec\"
|
||||
for f in $library_names; do
|
||||
if test -f "$dir/$f"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/$f"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
if test -f "$dir/$libname.$acl_libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/$libname.$acl_libext"
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
if test -f "$dir/$libname.la"; then
|
||||
found_la="$dir/$libname.la"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@ -18198,7 +18331,9 @@ fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
|
||||
if test "X$found_so" != "X"; then
|
||||
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
|
||||
if test "$enable_rpath" = no \
|
||||
|| test "X$found_dir" = "X/usr/$acl_libdirstem" \
|
||||
|| test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
|
||||
else
|
||||
haveit=
|
||||
@ -18211,10 +18346,10 @@ fi
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $found_dir"
|
||||
fi
|
||||
if test "$hardcode_direct" = yes; then
|
||||
if test "$acl_hardcode_direct" = yes; then
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
|
||||
else
|
||||
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
|
||||
if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
@ -18246,7 +18381,7 @@ fi
|
||||
if test -z "$haveit"; then
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
|
||||
fi
|
||||
if test "$hardcode_minus_L" != no; then
|
||||
if test "$acl_hardcode_minus_L" != no; then
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
|
||||
else
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
|
||||
@ -18263,8 +18398,18 @@ fi
|
||||
fi
|
||||
additional_includedir=
|
||||
case "$found_dir" in
|
||||
*/lib | */lib/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
|
||||
*/$acl_libdirstem | */$acl_libdirstem/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
|
||||
if test "$name" = 'iconv'; then
|
||||
LIBICONV_PREFIX="$basedir"
|
||||
fi
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
*/$acl_libdirstem2 | */$acl_libdirstem2/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
|
||||
if test "$name" = 'iconv'; then
|
||||
LIBICONV_PREFIX="$basedir"
|
||||
fi
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
esac
|
||||
@ -18274,7 +18419,7 @@ fi
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
@ -18313,12 +18458,14 @@ fi
|
||||
case "$dep" in
|
||||
-L*)
|
||||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
|
||||
if test "X$additional_libdir" != "X/usr/lib"; then
|
||||
if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
|
||||
&& test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
|
||||
haveit=
|
||||
if test "X$additional_libdir" = "X/usr/local/lib"; then
|
||||
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
|
||||
|| test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
@ -18415,21 +18562,21 @@ fi
|
||||
done
|
||||
done
|
||||
if test "X$rpathdirs" != "X"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
if test -n "$acl_hardcode_libdir_separator"; then
|
||||
alldirs=
|
||||
for found_dir in $rpathdirs; do
|
||||
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
|
||||
alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
|
||||
done
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$alldirs"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
|
||||
else
|
||||
for found_dir in $rpathdirs; do
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$found_dir"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
eval flag=\"$acl_hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
|
||||
done
|
||||
@ -18447,6 +18594,11 @@ fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
am_save_CPPFLAGS="$CPPFLAGS"
|
||||
|
||||
for element in $INCICONV; do
|
||||
@ -20897,11 +21049,11 @@ fi
|
||||
set dummy moc-qt4; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if test "${ac_cv_prog_MOC+set}" = set; then :
|
||||
if test "${ac_cv_prog_MOC4+set}" = set; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -n "$MOC"; then
|
||||
ac_cv_prog_MOC="$MOC" # Let the user override the test.
|
||||
if test -n "$MOC4"; then
|
||||
ac_cv_prog_MOC4="$MOC4" # Let the user override the test.
|
||||
else
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
@ -20910,7 +21062,7 @@ do
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||||
ac_cv_prog_MOC="moc-qt4"
|
||||
ac_cv_prog_MOC4="moc-qt4"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
@ -20920,16 +21072,21 @@ IFS=$as_save_IFS
|
||||
|
||||
fi
|
||||
fi
|
||||
MOC=$ac_cv_prog_MOC
|
||||
if test -n "$MOC"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5
|
||||
$as_echo "$MOC" >&6; }
|
||||
MOC4=$ac_cv_prog_MOC4
|
||||
if test -n "$MOC4"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC4" >&5
|
||||
$as_echo "$MOC4" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
if test x"$MOC4" != x ; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Using $MOC4 as moc" >&5
|
||||
$as_echo "$as_me: Using $MOC4 as moc" >&6;}
|
||||
MOC=$MOC4;
|
||||
fi
|
||||
fi
|
||||
if test "x$HAVE_QT4" = "xno"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: Looking for QT_CFLAGS and QT_LIBS without pkg-config" >&5
|
||||
@ -23038,6 +23195,8 @@ $as_echo "${gjdoc_version}" >&6; }
|
||||
case ${gjdoc_version} in
|
||||
0.7.9) ;;
|
||||
0.8*) ;;
|
||||
0.9*) ;;
|
||||
1*) ;;
|
||||
*) as_fn_error "Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." "$LINENO" 5 ;;
|
||||
esac
|
||||
fi
|
||||
@ -23757,7 +23916,7 @@ fi
|
||||
test "x$JAVA" = x && as_fn_error "no acceptable Java virtual machine found in \$PATH" "$LINENO" 5
|
||||
|
||||
|
||||
ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
|
||||
ECJ_OPTS="-warn:-deprecation,serial,unusedImport,unusedPrivate,resource"
|
||||
JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
|
||||
GCJ_OPTS="-g"
|
||||
if test "x$JAVAPREFIX" = x; then
|
||||
@ -23887,7 +24046,7 @@ else
|
||||
JAVA_TEST=Object.java
|
||||
CLASS_TEST=Object.class
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* #line 23890 "configure" */
|
||||
/* #line 24049 "configure" */
|
||||
package java.lang;
|
||||
|
||||
public class Object
|
||||
@ -23980,7 +24139,7 @@ EOF
|
||||
if uudecode$EXEEXT Test.uue; then
|
||||
ac_cv_prog_uudecode_base64=yes
|
||||
else
|
||||
echo "configure: 23983: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
|
||||
echo "configure: 24142: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
|
||||
echo "configure: failed file was:" >&5
|
||||
cat Test.uue >&5
|
||||
ac_cv_prog_uudecode_base64=no
|
||||
@ -24008,7 +24167,7 @@ JAVA_TEST=Test.java
|
||||
CLASS_TEST=Test.class
|
||||
TEST=Test
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* [#]line 24011 "configure" */
|
||||
/* [#]line 24170 "configure" */
|
||||
public class Test {
|
||||
public static void main (String args[]) {
|
||||
System.exit (0);
|
||||
@ -24216,7 +24375,7 @@ if test "x${use_glibj_zip}" = xfalse || \
|
||||
JAVA_TEST=Test.java
|
||||
CLASS_TEST=Test.class
|
||||
cat << \EOF > $JAVA_TEST
|
||||
/* #line 24219 "configure" */
|
||||
/* #line 24378 "configure" */
|
||||
public class Test
|
||||
{
|
||||
public static void main(String args)
|
||||
@ -25061,7 +25220,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by GNU Classpath $as_me 0.99, which was
|
||||
This file was extended by GNU Classpath $as_me 0.99.1-pre, which was
|
||||
generated by GNU Autoconf 2.64. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -25131,7 +25290,7 @@ General help using GNU software: <http://www.gnu.org/gethelp/>."
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_version="\\
|
||||
GNU Classpath config.status 0.99
|
||||
GNU Classpath config.status 0.99.1-pre
|
||||
configured by $0, generated by GNU Autoconf 2.64,
|
||||
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
|
||||
dnl define([AC_CACHE_LOAD], )dnl
|
||||
dnl define([AC_CACHE_SAVE], )dnl
|
||||
|
||||
AC_INIT([GNU Classpath],[0.99],[classpath@gnu.org],[classpath])
|
||||
AC_INIT([GNU Classpath],[0.99.1-pre],[classpath@gnu.org],[classpath])
|
||||
AC_CONFIG_SRCDIR(java/lang/System.java)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
@ -75,7 +75,7 @@ CLASSPATH_CONVENIENCE="-no-undefined"
|
||||
AC_SUBST(CLASSPATH_CONVENIENCE)
|
||||
|
||||
AC_PREREQ(2.64)
|
||||
AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability])
|
||||
AM_INIT_AUTOMAKE([1.9.0 no-dist gnu std-options tar-ustar -Wno-portability])
|
||||
AC_CONFIG_HEADERS([include/config.h])
|
||||
AC_PREFIX_DEFAULT(/usr/local/classpath)
|
||||
|
||||
@ -183,9 +183,9 @@ AC_ARG_ENABLE([Werror],
|
||||
[case "${enableval}" in
|
||||
yes) ENABLE_WERROR=yes ;;
|
||||
no) ENABLE_WERROR=no ;;
|
||||
*) ENABLE_WERROR=default ;;
|
||||
*) ENABLE_WERROR=no ;;
|
||||
esac],
|
||||
[ENABLE_WERROR=default])
|
||||
[ENABLE_WERROR=no])
|
||||
|
||||
dnl -----------------------------------------------------------
|
||||
dnl Default AWT toolkit
|
||||
@ -703,7 +703,11 @@ if test "x${COMPILE_JNI}" = xyes; then
|
||||
QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR",
|
||||
AC_MSG_WARN([QWidget not found])))
|
||||
AC_CHECK_PROG(MOC, [moc], [moc])
|
||||
AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4])
|
||||
AC_CHECK_PROG(MOC4, [moc-qt4], [moc-qt4])
|
||||
if test x"$MOC4" != x ; then
|
||||
AC_MSG_NOTICE([Using $MOC4 as moc])
|
||||
MOC=$MOC4;
|
||||
fi
|
||||
fi
|
||||
if test "x$HAVE_QT4" = "xno"; then
|
||||
AC_MSG_NOTICE([Looking for QT_CFLAGS and QT_LIBS without pkg-config])
|
||||
|
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2011-12-04.11; # UTC
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
|
||||
# 2011 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -44,7 +44,7 @@ Environment variables:
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputting dependencies.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
@ -90,18 +90,10 @@ if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
if test "$depmode" = msvc7msys; then
|
||||
# This is just like msvc7 but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
depmode=msvc7
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
@ -166,12 +158,10 @@ gcc)
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||
## to the object. Take care to not repeat it in the output.
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||
| sed -e 's/$/ :/' >> "$depfile"
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
@ -415,52 +405,6 @@ tru64)
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvc7)
|
||||
if test "$libtool" = yes; then
|
||||
showIncludes=-Wc,-showIncludes
|
||||
else
|
||||
showIncludes=-showIncludes
|
||||
fi
|
||||
"$@" $showIncludes > "$tmpdepfile"
|
||||
stat=$?
|
||||
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||
if test "$stat" = 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# The first sed program below extracts the file names and escapes
|
||||
# backslashes for cygpath. The second sed program outputs the file
|
||||
# name when reading, but also accumulates all include files in the
|
||||
# hold buffer in order to output them again at the end. This only
|
||||
# works with sed implementations that can handle large buffers.
|
||||
sed < "$tmpdepfile" -n '
|
||||
/^Note: including file: *\(.*\)/ {
|
||||
s//\1/
|
||||
s/\\/\\\\/g
|
||||
p
|
||||
}' | $cygpath_u | sort -u | sed -n '
|
||||
s/ /\\ /g
|
||||
s/\(.*\)/ \1 \\/p
|
||||
s/.\(.*\) \\/\1:/
|
||||
H
|
||||
$ {
|
||||
s/.*/ /
|
||||
G
|
||||
p
|
||||
}' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvc7msys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
@ -559,9 +503,7 @@ makedepend)
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
# makedepend may prepend the VPATH from the source file name to the object.
|
||||
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
|
@ -7,8 +7,9 @@ EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS)
|
||||
TEXINFO_TEX = ../../gcc/doc/include/texinfo.tex
|
||||
info_TEXINFOS = cp-tools.texinfo
|
||||
|
||||
# POSIX locale necessary to make grep work; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586134
|
||||
.texinfo.dvi:
|
||||
texi2dvi $<
|
||||
LC_ALL=POSIX texi2dvi --build-dir=$(builddir) -o $@ $<
|
||||
|
||||
.dvi.ps:
|
||||
dvips -o $@ $<
|
||||
@ -135,3 +136,6 @@ MAINTAINERCLEANFILES = \
|
||||
$(srcdir)/gserialver.1 \
|
||||
$(srcdir)/gtnameserv.1 \
|
||||
$(srcdir)/cp-tools.info
|
||||
|
||||
clean-local:
|
||||
-rm -rf *.t2d
|
||||
|
@ -39,9 +39,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -245,6 +244,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
@ -868,7 +868,8 @@ maintainer-clean-generic:
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am
|
||||
clean-am: clean-aminfo clean-generic clean-libtool clean-local \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
@ -1018,10 +1019,10 @@ uninstall-man: uninstall-man1
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am all-local check check-am clean clean-aminfo \
|
||||
clean-generic clean-libtool ctags ctags-recursive dist-info \
|
||||
distclean distclean-generic distclean-libtool distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
clean-generic clean-libtool clean-local ctags ctags-recursive \
|
||||
dist-info distclean distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-man1 install-pdf install-pdf-am install-ps \
|
||||
@ -1034,8 +1035,9 @@ uninstall-man: uninstall-man1
|
||||
uninstall-man uninstall-man1 uninstall-pdf-am uninstall-ps-am
|
||||
|
||||
|
||||
# POSIX locale necessary to make grep work; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586134
|
||||
.texinfo.dvi:
|
||||
texi2dvi $<
|
||||
LC_ALL=POSIX texi2dvi --build-dir=$(builddir) -o $@ $<
|
||||
|
||||
.dvi.ps:
|
||||
dvips -o $@ $<
|
||||
@ -1113,6 +1115,9 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
|
||||
-cp -p cp-tools.info $(srcdir)/cp-tools.info
|
||||
touch $@
|
||||
|
||||
clean-local:
|
||||
-rm -rf *.t2d
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
@ -40,9 +40,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -170,6 +169,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -2438,14 +2438,14 @@ with the header @samp{CVS ID}, you would specify:
|
||||
Let's say that a class javadoc comment contains
|
||||
|
||||
@smallexample
|
||||
@@cvsid $Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew Exp $
|
||||
@@cvsid $Id: cp-tools.texinfo,v 1.9 2012-03-07 15:27:27 gnu_andrew Exp $
|
||||
@end smallexample
|
||||
|
||||
Then the HTML output will contain something like
|
||||
|
||||
@smallexample
|
||||
CVS ID:
|
||||
$Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew Exp $
|
||||
$Id: cp-tools.texinfo,v 1.9 2012-03-07 15:27:27 gnu_andrew Exp $
|
||||
@end smallexample
|
||||
@end table
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -41,9 +41,6 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -62,7 +59,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -193,6 +192,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
8
libjava/classpath/external/Makefile.in
vendored
8
libjava/classpath/external/Makefile.in
vendored
@ -39,9 +39,6 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -208,6 +207,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -39,9 +39,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -39,9 +39,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
8
libjava/classpath/external/sax/Makefile.in
vendored
8
libjava/classpath/external/sax/Makefile.in
vendored
@ -39,9 +39,6 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -1,7 +1,7 @@
|
||||
// EntityResolver2.java - Extended SAX entity resolver.
|
||||
// http://www.saxproject.org
|
||||
// No warranty; no copyright -- use this as you will.
|
||||
// $Id: EntityResolver2.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $
|
||||
// $Id: EntityResolver2.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $
|
||||
|
||||
package org.xml.sax.ext;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// Locator2Impl.java - extended LocatorImpl
|
||||
// http://www.saxproject.org
|
||||
// Public Domain: no warranty.
|
||||
// $Id: Locator2Impl.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $
|
||||
// $Id: Locator2Impl.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $
|
||||
|
||||
package org.xml.sax.ext;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// http://www.saxproject.org
|
||||
// Written by David Megginson
|
||||
// NO WARRANTY! This class is in the public domain.
|
||||
// $Id: XMLReaderAdapter.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $
|
||||
// $Id: XMLReaderAdapter.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $
|
||||
|
||||
package org.xml.sax.helpers;
|
||||
|
||||
|
@ -39,9 +39,6 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -88,6 +88,11 @@ public final class FileLockImpl extends FileLock
|
||||
return valid;
|
||||
}
|
||||
|
||||
public void close() throws Exception
|
||||
{
|
||||
release();
|
||||
}
|
||||
|
||||
/**
|
||||
* Releases the lock if it is still valid. Marks this lock as invalid.
|
||||
*/
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* AttributedFormatBuffer.java -- Implements an attributed FormatBuffer.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -41,6 +41,10 @@ import gnu.java.lang.CPStringBuilder;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This class is an implementation of a FormatBuffer with attributes.
|
||||
@ -53,12 +57,12 @@ import java.util.HashMap;
|
||||
public class AttributedFormatBuffer implements FormatBuffer
|
||||
{
|
||||
private final CPStringBuilder buffer;
|
||||
private final ArrayList ranges;
|
||||
private final ArrayList attributes;
|
||||
private int[] a_ranges;
|
||||
private HashMap[] a_attributes;
|
||||
private final ArrayList<Integer> ranges;
|
||||
private final ArrayList<Map<Attribute,Object>> attributes;
|
||||
private int[] aRanges;
|
||||
private List<Map<Attribute,Object>> aAttributes;
|
||||
private int startingRange;
|
||||
AttributedCharacterIterator.Attribute defaultAttr;
|
||||
Attribute defaultAttr;
|
||||
|
||||
/**
|
||||
* This constructor accepts a StringBuffer. If the buffer contains
|
||||
@ -67,8 +71,8 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
public AttributedFormatBuffer(CPStringBuilder buffer)
|
||||
{
|
||||
this.buffer = new CPStringBuilder(buffer);
|
||||
this.ranges = new ArrayList();
|
||||
this.attributes = new ArrayList();
|
||||
this.ranges = new ArrayList<Integer>();
|
||||
this.attributes = new ArrayList<Map<Attribute,Object>>();
|
||||
this.defaultAttr = null;
|
||||
if (buffer.length() != 0)
|
||||
{
|
||||
@ -94,23 +98,23 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
* and attributes it adds exactly one attribute for the range of characters
|
||||
* comprised between the last entry in 'ranges' and the specified new range.
|
||||
*
|
||||
* @param new_range A new range to insert in the list.
|
||||
* @param newRange A new range to insert in the list.
|
||||
* @param attr A new attribute to insert in the list.
|
||||
*/
|
||||
private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr)
|
||||
private final void addAttribute(int newRange, Attribute attr)
|
||||
{
|
||||
HashMap map;
|
||||
Map<Attribute,Object> map;
|
||||
|
||||
if (attr != null)
|
||||
{
|
||||
map = new HashMap();
|
||||
map = new HashMap<Attribute,Object>();
|
||||
map.put(attr, attr);
|
||||
attributes.add(map);
|
||||
}
|
||||
else
|
||||
attributes.add(null);
|
||||
|
||||
ranges.add(new Integer(new_range));
|
||||
ranges.add(Integer.valueOf(newRange));
|
||||
}
|
||||
|
||||
public void append(String s)
|
||||
@ -120,7 +124,7 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
buffer.append(s);
|
||||
}
|
||||
|
||||
public void append(String s, AttributedCharacterIterator.Attribute attr)
|
||||
public void append(String s, Attribute attr)
|
||||
{
|
||||
setDefaultAttribute(attr);
|
||||
startingRange = buffer.length();
|
||||
@ -128,7 +132,7 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
setDefaultAttribute(null);
|
||||
}
|
||||
|
||||
public void append(String s, int[] ranges, HashMap[] attrs)
|
||||
public void append(String s, int[] ranges, List<Map<Attribute,Object>> attrs)
|
||||
{
|
||||
int curPos = buffer.length();
|
||||
|
||||
@ -137,8 +141,8 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
{
|
||||
for (int i = 0; i < ranges.length; i++)
|
||||
{
|
||||
this.ranges.add(new Integer(ranges[i] + curPos));
|
||||
this.attributes.add(attrs[i]);
|
||||
this.ranges.add(Integer.valueOf(ranges[i] + curPos));
|
||||
this.attributes.add(attrs.get(i));
|
||||
}
|
||||
}
|
||||
startingRange = buffer.length();
|
||||
@ -152,14 +156,14 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
buffer.append(c);
|
||||
}
|
||||
|
||||
public void append(char c, AttributedCharacterIterator.Attribute attr)
|
||||
public void append(char c, Attribute attr)
|
||||
{
|
||||
setDefaultAttribute(attr);
|
||||
buffer.append(c);
|
||||
setDefaultAttribute(null);
|
||||
}
|
||||
|
||||
public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr)
|
||||
public void setDefaultAttribute(Attribute attr)
|
||||
{
|
||||
if (attr == defaultAttr)
|
||||
return;
|
||||
@ -174,7 +178,7 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
startingRange = currentPos;
|
||||
}
|
||||
|
||||
public AttributedCharacterIterator.Attribute getDefaultAttribute()
|
||||
public Attribute getDefaultAttribute()
|
||||
{
|
||||
return defaultAttr;
|
||||
}
|
||||
@ -209,12 +213,11 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
|
||||
addAttribute(buffer.length(), defaultAttr);
|
||||
|
||||
a_ranges = new int[ranges.size()];
|
||||
for (int i = 0; i < a_ranges.length; i++)
|
||||
a_ranges[i] = ((Integer)(ranges.get (i))).intValue();
|
||||
aRanges = new int[ranges.size()];
|
||||
for (int i = 0; i < aRanges.length; i++)
|
||||
aRanges[i] = ranges.get (i).intValue();
|
||||
|
||||
a_attributes = new HashMap[attributes.size()];
|
||||
System.arraycopy(attributes.toArray(), 0, a_attributes, 0, a_attributes.length);
|
||||
aAttributes = new ArrayList<Map<Attribute,Object>>(attributes);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -235,17 +238,17 @@ public class AttributedFormatBuffer implements FormatBuffer
|
||||
*/
|
||||
public int[] getRanges()
|
||||
{
|
||||
return a_ranges;
|
||||
return aRanges;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns the array containing the map on the
|
||||
* attributes.
|
||||
*
|
||||
* @return An array of {@link java.util.Map} containing the attributes.
|
||||
* @return A {@link java.util.List} of {@link java.util.Map}s containing the attributes.
|
||||
*/
|
||||
public HashMap[] getAttributes()
|
||||
public List<Map<Attribute,Object>> getAttributes()
|
||||
{
|
||||
return a_attributes;
|
||||
return aAttributes;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* FormatBuffer.java -- General interface to build attributed strings.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -37,7 +37,10 @@ exception statement from your version. */
|
||||
package gnu.java.text;
|
||||
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This interface describes a modifiable buffer which contains attributed
|
||||
@ -67,7 +70,7 @@ public interface FormatBuffer
|
||||
* @param s The string to append to the buffer.
|
||||
* @param attr Attribute to use for the string in the buffer.
|
||||
*/
|
||||
public void append(String s, AttributedCharacterIterator.Attribute attr);
|
||||
public void append(String s, Attribute attr);
|
||||
|
||||
/**
|
||||
* This method appends a simple string to the buffer. This part of
|
||||
@ -79,7 +82,7 @@ public interface FormatBuffer
|
||||
* to the string.
|
||||
* @param attrs The attributes of the string in the buffer.
|
||||
*/
|
||||
public void append(String s, int[] ranges, HashMap[] attrs);
|
||||
public void append(String s, int[] ranges, List<Map<Attribute,Object>> attrs);
|
||||
|
||||
/**
|
||||
* This method appends a simple char to the buffer. This part of
|
||||
@ -97,7 +100,7 @@ public interface FormatBuffer
|
||||
* @param c The character to append to the buffer.
|
||||
* @param attr Attribute to use for the character in the buffer.
|
||||
*/
|
||||
public void append(char c, AttributedCharacterIterator.Attribute attr);
|
||||
public void append(char c, Attribute attr);
|
||||
|
||||
/**
|
||||
* This method changes the current default attribute for the next string
|
||||
@ -105,14 +108,14 @@ public interface FormatBuffer
|
||||
*
|
||||
* @param attr The attribute which will be used by default.
|
||||
*/
|
||||
public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr);
|
||||
public void setDefaultAttribute(Attribute attr);
|
||||
|
||||
/**
|
||||
* This method returns the current default attribute for the buffer.
|
||||
*
|
||||
* @return The default attribute for the buffer.
|
||||
*/
|
||||
public AttributedCharacterIterator.Attribute getDefaultAttribute();
|
||||
public Attribute getDefaultAttribute();
|
||||
|
||||
/**
|
||||
* This method cuts the last characters of the buffer. The number of
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* FormatCharacter.java -- Implementation of AttributedCharacterIterator for
|
||||
formatters.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -38,12 +38,15 @@ exception statement from your version. */
|
||||
package gnu.java.text;
|
||||
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Vector;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This class should not be put public and it is only intended to the
|
||||
@ -62,7 +65,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
private int charIndex;
|
||||
private int attributeIndex;
|
||||
private int[] ranges;
|
||||
private HashMap[] attributes;
|
||||
private List<Map<Attribute,Object>> attributes;
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
/**
|
||||
@ -74,7 +77,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
{
|
||||
formattedString = "";
|
||||
ranges = new int[0];
|
||||
attributes = new HashMap[0];
|
||||
attributes = new ArrayList<Map<Attribute,Object>>(0);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -87,12 +90,13 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
* <pre>
|
||||
* s = "hello";
|
||||
* ranges = new int[] { 2, 6 };
|
||||
* attributes = new HashMap[2];
|
||||
* attributes = new ArrayList<Map<Attribute,Object>>(2);
|
||||
* </pre>
|
||||
* <code>"he"</code> will have the attributes <code>attributes[0]</code>,
|
||||
* <code>"llo"</code> the <code>attributes[1]</code>.
|
||||
* <code>"he"</code> will have the attributes <code>attributes.get(0)</code>,
|
||||
* <code>"llo"</code> the <code>attributes.get(1)</code>.
|
||||
*/
|
||||
public FormatCharacterIterator (String s, int[] ranges, HashMap[] attributes)
|
||||
public FormatCharacterIterator (String s, int[] ranges,
|
||||
List<Map<Attribute,Object>> attributes)
|
||||
{
|
||||
formattedString = s;
|
||||
this.ranges = ranges;
|
||||
@ -104,55 +108,57 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
* and thus are already documented.
|
||||
*/
|
||||
|
||||
public Set getAllAttributeKeys()
|
||||
public Set<Attribute> getAllAttributeKeys()
|
||||
{
|
||||
if (attributes != null && attributes[attributeIndex] != null)
|
||||
return attributes[attributeIndex].keySet();
|
||||
if (attributes != null && attributes.get(attributeIndex) != null)
|
||||
return attributes.get(attributeIndex).keySet();
|
||||
else
|
||||
return new HashSet();
|
||||
return new HashSet<Attribute>();
|
||||
}
|
||||
|
||||
public Map getAttributes()
|
||||
public Map<Attribute,Object> getAttributes()
|
||||
{
|
||||
if (attributes != null && attributes[attributeIndex] != null)
|
||||
return attributes[attributeIndex];
|
||||
if (attributes != null && attributes.get(attributeIndex) != null)
|
||||
return attributes.get(attributeIndex);
|
||||
else
|
||||
return new HashMap();
|
||||
return new HashMap<Attribute,Object>();
|
||||
}
|
||||
|
||||
public Object getAttribute (AttributedCharacterIterator.Attribute attrib)
|
||||
public Object getAttribute (Attribute attrib)
|
||||
{
|
||||
if (attributes != null && attributes[attributeIndex] != null)
|
||||
return attributes[attributeIndex].get (attrib);
|
||||
if (attributes != null && attributes.get(attributeIndex) != null)
|
||||
return attributes.get(attributeIndex).get (attrib);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getRunLimit(Set reqAttrs)
|
||||
public int getRunLimit(Set<? extends Attribute> reqAttrs)
|
||||
{
|
||||
if (attributes == null)
|
||||
return formattedString.length();
|
||||
|
||||
int currentAttrIndex = attributeIndex;
|
||||
Set newKeys;
|
||||
Set<Attribute> newKeys;
|
||||
|
||||
do
|
||||
{
|
||||
currentAttrIndex++;
|
||||
if (currentAttrIndex == attributes.length)
|
||||
if (currentAttrIndex == attributes.size())
|
||||
return formattedString.length();
|
||||
if (attributes[currentAttrIndex] == null)
|
||||
Map<Attribute,Object> currentAttr =
|
||||
attributes.get(currentAttrIndex);
|
||||
if (currentAttr == null)
|
||||
break;
|
||||
newKeys = attributes[currentAttrIndex].keySet();
|
||||
newKeys = currentAttr.keySet();
|
||||
}
|
||||
while (newKeys.containsAll (reqAttrs));
|
||||
|
||||
return ranges[currentAttrIndex-1];
|
||||
}
|
||||
|
||||
public int getRunLimit (AttributedCharacterIterator.Attribute attribute)
|
||||
public int getRunLimit (Attribute attribute)
|
||||
{
|
||||
Set s = new HashSet();
|
||||
Set<Attribute> s = new HashSet<Attribute>();
|
||||
|
||||
s.add (attribute);
|
||||
return getRunLimit (s);
|
||||
@ -162,24 +168,24 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
{
|
||||
if (attributes == null)
|
||||
return formattedString.length();
|
||||
if (attributes[attributeIndex] == null)
|
||||
if (attributes.get(attributeIndex) == null)
|
||||
{
|
||||
for (int i=attributeIndex+1;i<attributes.length;i++)
|
||||
if (attributes[i] != null)
|
||||
for (int i=attributeIndex+1;i<attributes.size();i++)
|
||||
if (attributes.get(i) != null)
|
||||
return ranges[i-1];
|
||||
return formattedString.length();
|
||||
}
|
||||
|
||||
return getRunLimit (attributes[attributeIndex].keySet());
|
||||
return getRunLimit (attributes.get(attributeIndex).keySet());
|
||||
}
|
||||
|
||||
public int getRunStart (Set reqAttrs)
|
||||
public int getRunStart (Set<? extends Attribute> reqAttrs)
|
||||
{
|
||||
if (attributes == null)
|
||||
return formattedString.length();
|
||||
|
||||
int currentAttrIndex = attributeIndex;
|
||||
Set newKeys = null;
|
||||
Set<Attribute> newKeys = null;
|
||||
|
||||
do
|
||||
{
|
||||
@ -187,9 +193,11 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
return 0;
|
||||
|
||||
currentAttrIndex--;
|
||||
if (attributes[currentAttrIndex] == null)
|
||||
Map<Attribute,Object> currentAttr =
|
||||
attributes.get(currentAttrIndex);
|
||||
if (currentAttr == null)
|
||||
break;
|
||||
newKeys = attributes[currentAttrIndex].keySet();
|
||||
newKeys = currentAttr.keySet();
|
||||
}
|
||||
while (newKeys.containsAll (reqAttrs));
|
||||
|
||||
@ -201,20 +209,21 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
if (attributes == null)
|
||||
return 0;
|
||||
|
||||
if (attributes[attributeIndex] == null)
|
||||
Map<Attribute,Object> attrib = attributes.get(attributeIndex);
|
||||
if (attrib == null)
|
||||
{
|
||||
for (int i=attributeIndex;i>0;i--)
|
||||
if (attributes[i] != null)
|
||||
if (attributes.get(i) != null)
|
||||
return ranges[attributeIndex-1];
|
||||
return 0;
|
||||
}
|
||||
|
||||
return getRunStart (attributes[attributeIndex].keySet());
|
||||
return getRunStart (attrib.keySet());
|
||||
}
|
||||
|
||||
public int getRunStart (AttributedCharacterIterator.Attribute attribute)
|
||||
public int getRunStart (Attribute attribute)
|
||||
{
|
||||
Set s = new HashSet();
|
||||
Set<Attribute> s = new HashSet<Attribute>();
|
||||
|
||||
s.add (attribute);
|
||||
return getRunStart (s);
|
||||
@ -261,7 +270,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
{
|
||||
charIndex = formattedString.length()-1;
|
||||
if (attributes != null)
|
||||
attributeIndex = attributes.length-1;
|
||||
attributeIndex = attributes.size()-1;
|
||||
return formattedString.charAt (charIndex);
|
||||
}
|
||||
|
||||
@ -306,7 +315,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
charIndex = position;
|
||||
if (attributes != null)
|
||||
{
|
||||
for (attributeIndex=0;attributeIndex<attributes.length;
|
||||
for (attributeIndex=0;attributeIndex<attributes.size();
|
||||
attributeIndex++)
|
||||
if (ranges[attributeIndex] > charIndex)
|
||||
break;
|
||||
@ -327,40 +336,42 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
*
|
||||
* @param attributes the new array attributes to apply to the string.
|
||||
*/
|
||||
public void mergeAttributes (HashMap[] attributes, int[] ranges)
|
||||
public void mergeAttributes (List<Map<Attribute,Object>> attributes,
|
||||
int[] ranges)
|
||||
{
|
||||
Vector new_ranges = new Vector();
|
||||
Vector new_attributes = new Vector();
|
||||
List<Integer> newRanges = new ArrayList<Integer>();
|
||||
List<Map<Attribute,Object>> newAttributes =
|
||||
new ArrayList<Map<Attribute,Object>>();
|
||||
int i = 0, j = 0;
|
||||
|
||||
debug("merging " + attributes.length + " attrs");
|
||||
debug("merging " + attributes.size() + " attrs");
|
||||
|
||||
while (i < this.ranges.length && j < ranges.length)
|
||||
{
|
||||
if (this.attributes[i] != null)
|
||||
if (this.attributes.get(i) != null)
|
||||
{
|
||||
new_attributes.add (this.attributes[i]);
|
||||
if (attributes[j] != null)
|
||||
this.attributes[i].putAll (attributes[j]);
|
||||
newAttributes.add (this.attributes.get(i));
|
||||
if (attributes.get(j) != null)
|
||||
this.attributes.get(i).putAll (attributes.get(j));
|
||||
}
|
||||
else
|
||||
{
|
||||
new_attributes.add (attributes[j]);
|
||||
newAttributes.add (attributes.get(j));
|
||||
}
|
||||
if (this.ranges[i] == ranges[j])
|
||||
{
|
||||
new_ranges.add (new Integer (ranges[j]));
|
||||
newRanges.add (Integer.valueOf (ranges[j]));
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
else if (this.ranges[i] < ranges[j])
|
||||
{
|
||||
new_ranges.add (new Integer (this.ranges[i]));
|
||||
newRanges.add (Integer.valueOf (this.ranges[i]));
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
new_ranges.add (new Integer (ranges[j]));
|
||||
newRanges.add (Integer.valueOf (ranges[j]));
|
||||
j++;
|
||||
}
|
||||
}
|
||||
@ -369,27 +380,25 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
{
|
||||
for (;i<this.ranges.length;i++)
|
||||
{
|
||||
new_attributes.add (this.attributes[i]);
|
||||
new_ranges.add (new Integer (this.ranges[i]));
|
||||
newAttributes.add (this.attributes.get(i));
|
||||
newRanges.add (Integer.valueOf (this.ranges[i]));
|
||||
}
|
||||
}
|
||||
if (j != ranges.length)
|
||||
{
|
||||
for (;j<ranges.length;j++)
|
||||
{
|
||||
new_attributes.add (attributes[j]);
|
||||
new_ranges.add (new Integer (ranges[j]));
|
||||
newAttributes.add (attributes.get(j));
|
||||
newRanges.add (Integer.valueOf (ranges[j]));
|
||||
}
|
||||
}
|
||||
|
||||
this.attributes = new HashMap[new_attributes.size()];
|
||||
this.ranges = new int[new_ranges.size()];
|
||||
System.arraycopy (new_attributes.toArray(), 0, this.attributes,
|
||||
0, this.attributes.length);
|
||||
this.attributes = newAttributes;
|
||||
this.ranges = new int[newRanges.size()];
|
||||
|
||||
for (i=0;i<new_ranges.size();i++)
|
||||
for (i=0;i<newRanges.size();i++)
|
||||
{
|
||||
this.ranges[i] = ((Integer)new_ranges.elementAt (i)).intValue();
|
||||
this.ranges[i] = newRanges.get (i).intValue();
|
||||
}
|
||||
|
||||
dumpTable();
|
||||
@ -405,35 +414,35 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
public void append (AttributedCharacterIterator iterator)
|
||||
{
|
||||
char c = iterator.first();
|
||||
Vector more_ranges = new Vector();
|
||||
Vector more_attributes = new Vector();
|
||||
List<Integer> moreRanges = new ArrayList<Integer>();
|
||||
List<Map<Attribute,Object>> moreAttributes =
|
||||
new ArrayList<Map<Attribute,Object>>();
|
||||
|
||||
do
|
||||
{
|
||||
formattedString = formattedString + String.valueOf (c);
|
||||
// TODO: Reduce the size of the output array.
|
||||
more_attributes.add (iterator.getAttributes());
|
||||
more_ranges.add (new Integer (formattedString.length()));
|
||||
moreAttributes.add (iterator.getAttributes());
|
||||
moreRanges.add (Integer.valueOf (formattedString.length()));
|
||||
// END TOOD
|
||||
c = iterator.next();
|
||||
}
|
||||
while (c != DONE);
|
||||
|
||||
HashMap[] new_attributes = new HashMap[attributes.length
|
||||
+ more_attributes.size()];
|
||||
int[] new_ranges = new int[ranges.length + more_ranges.size()];
|
||||
List<Map<Attribute,Object>> newAttributes =
|
||||
new ArrayList<Map<Attribute,Object>>(attributes.size() + moreAttributes.size());
|
||||
int[] newRanges = new int[ranges.length + moreRanges.size()];
|
||||
|
||||
System.arraycopy (attributes, 0, new_attributes, 0, attributes.length);
|
||||
System.arraycopy (more_attributes.toArray(), 0, new_attributes,
|
||||
attributes.length, more_attributes.size());
|
||||
newAttributes.addAll(attributes);
|
||||
newAttributes.addAll(moreAttributes);
|
||||
|
||||
System.arraycopy (ranges, 0, new_ranges, 0, ranges.length);
|
||||
Object[] new_ranges_array = more_ranges.toArray();
|
||||
for (int i = 0; i < more_ranges.size();i++)
|
||||
new_ranges[i+ranges.length] = ((Integer) new_ranges_array[i]).intValue();
|
||||
System.arraycopy (ranges, 0, newRanges, 0, ranges.length);
|
||||
Integer[] newRangesArray = moreRanges.toArray(new Integer[moreRanges.size()]);
|
||||
for (int i = 0; i < moreRanges.size();i++)
|
||||
newRanges[i+ranges.length] = newRangesArray[i].intValue();
|
||||
|
||||
attributes = new_attributes;
|
||||
ranges = new_ranges;
|
||||
attributes = newAttributes;
|
||||
ranges = newRanges;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -441,28 +450,29 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
* directly in the calling parameters.
|
||||
*
|
||||
* @param text The string to append.
|
||||
* @param local_attributes The attributes to put on this string in the
|
||||
* @param localAttributes The attributes to put on this string in the
|
||||
* iterator. If it is <code>null</code> the string will simply have no
|
||||
* attributes.
|
||||
*/
|
||||
public void append (String text, HashMap local_attributes)
|
||||
public void append (String text, HashMap<? extends Attribute,? extends Object> localAttributes)
|
||||
{
|
||||
int[] new_ranges = new int[ranges.length+1];
|
||||
HashMap[] new_attributes = new HashMap[attributes.length+1];
|
||||
int[] newRanges = new int[ranges.length+1];
|
||||
List<Map<Attribute,Object>> newAttributes =
|
||||
new ArrayList<Map<Attribute,Object>>(attributes.size()+1);
|
||||
|
||||
formattedString += text;
|
||||
System.arraycopy (attributes, 0, new_attributes, 0, attributes.length);
|
||||
System.arraycopy (ranges, 0, new_ranges, 0, ranges.length);
|
||||
new_ranges[ranges.length] = formattedString.length();
|
||||
new_attributes[attributes.length] = local_attributes;
|
||||
newAttributes.addAll(attributes);
|
||||
System.arraycopy (ranges, 0, newRanges, 0, ranges.length);
|
||||
newRanges[ranges.length] = formattedString.length();
|
||||
newAttributes.add(new HashMap<Attribute,Object>(localAttributes));
|
||||
|
||||
ranges = new_ranges;
|
||||
attributes = new_attributes;
|
||||
ranges = newRanges;
|
||||
attributes = newAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method appends a string without attributes. It is completely
|
||||
* equivalent to call {@link #append(String,HashMap)} with local_attributes
|
||||
* equivalent to call {@link #append(String,HashMap)} with localAttributes
|
||||
* equal to <code>null</code>.
|
||||
*
|
||||
* @param text The string to append to the iterator.
|
||||
@ -475,22 +485,31 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
/**
|
||||
* This method adds a set of attributes to a range of character. The
|
||||
* bounds are always inclusive. In the case many attributes have to
|
||||
* be added it is advised to directly use {@link #mergeAttributes([Ljava.util.HashMap;[I}
|
||||
* be added it is advised to directly use {@link #mergeAttributes(java.util.List;[I}
|
||||
*
|
||||
* @param attributes Attributes to merge into the iterator.
|
||||
* @param range_start Lower bound of the range of characters which will receive the
|
||||
* @param rangeStart Lower bound of the range of characters which will receive the
|
||||
* attribute.
|
||||
* @param range_end Upper bound of the range of characters which will receive the
|
||||
* @param rangeEnd Upper bound of the range of characters which will receive the
|
||||
* attribute.
|
||||
*
|
||||
* @throws IllegalArgumentException if ranges are out of bounds.
|
||||
*/
|
||||
public void addAttributes(HashMap attributes, int range_start, int range_end)
|
||||
public void addAttributes(Map<? extends Attribute,? extends Object> attributes,
|
||||
int rangeStart, int rangeEnd)
|
||||
{
|
||||
if (range_start == 0)
|
||||
mergeAttributes(new HashMap[] { attributes }, new int[] { range_end });
|
||||
List<Map<Attribute,Object>> mergeAttribs = new ArrayList<Map<Attribute,Object>>();
|
||||
int[] mergeRanges;
|
||||
|
||||
if (rangeStart == 0)
|
||||
mergeRanges = new int[] { rangeEnd };
|
||||
else
|
||||
mergeAttributes(new HashMap[] { null, attributes }, new int[] { range_start, range_end });
|
||||
{
|
||||
mergeRanges = new int[] { rangeStart, rangeEnd };
|
||||
mergeAttribs.add(null);
|
||||
}
|
||||
mergeAttribs.add(new HashMap<Attribute,Object>(attributes));
|
||||
mergeAttributes(mergeAttribs, mergeRanges);
|
||||
}
|
||||
|
||||
private void debug(String s)
|
||||
@ -501,7 +520,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
|
||||
private void dumpTable()
|
||||
{
|
||||
int start_range = 0;
|
||||
int startRange = 0;
|
||||
|
||||
if (!DEBUG)
|
||||
return;
|
||||
@ -509,15 +528,15 @@ public class FormatCharacterIterator implements AttributedCharacterIterator
|
||||
System.out.println("Dumping internal table:");
|
||||
for (int i = 0; i < ranges.length; i++)
|
||||
{
|
||||
System.out.print("\t" + start_range + " => " + ranges[i] + ":");
|
||||
if (attributes[i] == null)
|
||||
System.out.print("\t" + startRange + " => " + ranges[i] + ":");
|
||||
if (attributes.get(i) == null)
|
||||
System.out.println("null");
|
||||
else
|
||||
{
|
||||
Set keyset = attributes[i].keySet();
|
||||
Set<Attribute> keyset = attributes.get(i).keySet();
|
||||
if (keyset != null)
|
||||
{
|
||||
Iterator keys = keyset.iterator();
|
||||
Iterator<Attribute> keys = keyset.iterator();
|
||||
|
||||
while (keys.hasNext())
|
||||
System.out.print(" " + keys.next());
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* StringFormatBuffer.java -- Implements FormatBuffer using StringBuffer.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -37,7 +37,10 @@ exception statement from your version. */
|
||||
package gnu.java.text;
|
||||
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This class is an implementation of a FormatBuffer without attributes.
|
||||
@ -48,7 +51,7 @@ import java.util.HashMap;
|
||||
public class StringFormatBuffer implements FormatBuffer
|
||||
{
|
||||
private final StringBuffer buffer;
|
||||
private AttributedCharacterIterator.Attribute defaultAttr;
|
||||
private Attribute defaultAttr;
|
||||
|
||||
public StringFormatBuffer(int prebuffer)
|
||||
{
|
||||
@ -65,12 +68,12 @@ public class StringFormatBuffer implements FormatBuffer
|
||||
buffer.append(s);
|
||||
}
|
||||
|
||||
public void append(String s, AttributedCharacterIterator.Attribute attr)
|
||||
public void append(String s, Attribute attr)
|
||||
{
|
||||
buffer.append(s);
|
||||
}
|
||||
|
||||
public void append(String s, int[] ranges, HashMap[] attrs)
|
||||
public void append(String s, int[] ranges, List<Map<Attribute,Object>> attrs)
|
||||
{
|
||||
buffer.append(s);
|
||||
}
|
||||
@ -80,17 +83,17 @@ public class StringFormatBuffer implements FormatBuffer
|
||||
buffer.append(c);
|
||||
}
|
||||
|
||||
public void append(char c, AttributedCharacterIterator.Attribute attr)
|
||||
public void append(char c, Attribute attr)
|
||||
{
|
||||
buffer.append(c);
|
||||
}
|
||||
|
||||
public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr)
|
||||
public void setDefaultAttribute(Attribute attr)
|
||||
{
|
||||
defaultAttr = attr;
|
||||
}
|
||||
|
||||
public AttributedCharacterIterator.Attribute getDefaultAttribute()
|
||||
public Attribute getDefaultAttribute()
|
||||
{
|
||||
return defaultAttr;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* DSSIMidiDeviceProvider.java -- DSSI Device Provider
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -69,13 +69,16 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider
|
||||
*/
|
||||
private static class DSSIInfo extends Info
|
||||
{
|
||||
String copyright;
|
||||
String soname;
|
||||
long index;
|
||||
|
||||
public DSSIInfo(String name, String vendor, String description,
|
||||
String version, String soname, long index)
|
||||
public DSSIInfo(String name, String vendor, String label,
|
||||
String copyright, String version,
|
||||
String soname, long index)
|
||||
{
|
||||
super(name, vendor, description, version);
|
||||
super(name, vendor, label, version);
|
||||
this.copyright = copyright;
|
||||
this.soname = soname;
|
||||
this.index = index;
|
||||
}
|
||||
@ -89,9 +92,9 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider
|
||||
static native String getDSSIVendor_(long handle);
|
||||
static native String getDSSILabel_(long handle);
|
||||
|
||||
private static List examineLibrary(String soname)
|
||||
private static List<DSSIInfo> examineLibrary(String soname)
|
||||
{
|
||||
List list = new ArrayList();
|
||||
List<DSSIInfo> list = new ArrayList<DSSIInfo>();
|
||||
long index = 0;
|
||||
long handle;
|
||||
|
||||
@ -107,7 +110,7 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider
|
||||
String copyright = getDSSICopyright_(handle);
|
||||
String label = getDSSIName_(handle);
|
||||
String vendor = getDSSIVendor_(handle);
|
||||
list.add(new DSSIInfo(name, vendor, label,
|
||||
list.add(new DSSIInfo(name, vendor, label, copyright,
|
||||
"DSSI-1", soname, index));
|
||||
index++;
|
||||
} while (true);
|
||||
@ -133,10 +136,10 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider
|
||||
return n.endsWith(".so");
|
||||
}
|
||||
});
|
||||
List ilist = new ArrayList();
|
||||
List<DSSIInfo> ilist = new ArrayList<DSSIInfo>();
|
||||
for (int i = 0; i < sofiles.length; i++)
|
||||
ilist.addAll(examineLibrary(new File(dssidir, sofiles[i]).getAbsolutePath()));
|
||||
infos = (DSSIInfo[]) ilist.toArray(new DSSIInfo[ilist.size()]);
|
||||
infos = ilist.toArray(new DSSIInfo[ilist.size()]);
|
||||
}
|
||||
|
||||
public DSSIMidiDeviceProvider()
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* DSSISynthesizer.java -- DSSI Synthesizer Provider
|
||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -97,8 +97,8 @@ public class DSSISynthesizer implements Synthesizer
|
||||
{
|
||||
private String name;
|
||||
private String description;
|
||||
private List instruments = new ArrayList();
|
||||
private List resources = new ArrayList();
|
||||
private List<Instrument> instruments = new ArrayList<Instrument>();
|
||||
private List<SoundbankResource> resources = new ArrayList<SoundbankResource>();
|
||||
private String vendor;
|
||||
private String version;
|
||||
|
||||
@ -147,27 +147,25 @@ public class DSSISynthesizer implements Synthesizer
|
||||
*/
|
||||
public SoundbankResource[] getResources()
|
||||
{
|
||||
return (SoundbankResource[])
|
||||
resources.toArray(new SoundbankResource[resources.size()]);
|
||||
return resources.toArray(new SoundbankResource[resources.size()]);
|
||||
}
|
||||
|
||||
/* @see javax.sound.midi.Soundbank#getInstruments()
|
||||
*/
|
||||
public Instrument[] getInstruments()
|
||||
{
|
||||
return (Instrument[])
|
||||
instruments.toArray(new Instrument[instruments.size()]);
|
||||
return instruments.toArray(new Instrument[instruments.size()]);
|
||||
}
|
||||
|
||||
/* @see javax.sound.midi.Soundbank#getInstrument(javax.sound.midi.Patch)
|
||||
*/
|
||||
public Instrument getInstrument(Patch patch)
|
||||
{
|
||||
Iterator itr = instruments.iterator();
|
||||
Iterator<Instrument> itr = instruments.iterator();
|
||||
|
||||
while (itr.hasNext())
|
||||
{
|
||||
Instrument i = (Instrument) itr.next();
|
||||
Instrument i = itr.next();
|
||||
if (i.getPatch().equals(patch))
|
||||
return i;
|
||||
}
|
||||
@ -490,7 +488,7 @@ public class DSSISynthesizer implements Synthesizer
|
||||
MidiChannel channels[] = new MidiChannel[16];
|
||||
|
||||
// The list of known soundbanks, and the default one.
|
||||
List soundbanks = new ArrayList();
|
||||
List<Soundbank> soundbanks = new ArrayList<Soundbank>();
|
||||
DSSISoundbank defaultSoundbank;
|
||||
|
||||
/**
|
||||
@ -616,17 +614,16 @@ public class DSSISynthesizer implements Synthesizer
|
||||
*/
|
||||
public Instrument[] getAvailableInstruments()
|
||||
{
|
||||
List instruments = new ArrayList();
|
||||
Iterator itr = soundbanks.iterator();
|
||||
List<Instrument> instruments = new ArrayList<Instrument>();
|
||||
Iterator<Soundbank> itr = soundbanks.iterator();
|
||||
while (itr.hasNext())
|
||||
{
|
||||
Soundbank sb = (Soundbank) itr.next();
|
||||
Soundbank sb = itr.next();
|
||||
Instrument ins[] = sb.getInstruments();
|
||||
for (int i = 0; i < ins.length; i++)
|
||||
instruments.add(ins[i]);
|
||||
}
|
||||
return (Instrument[])
|
||||
instruments.toArray(new Instrument[instruments.size()]);
|
||||
return instruments.toArray(new Instrument[instruments.size()]);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* MidiFileReader.java -- Read MIDI files.
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -198,7 +198,7 @@ public class MidiFileReader extends javax.sound.midi.spi.MidiFileReader
|
||||
int Mtrk = din.readInt();
|
||||
if (Mtrk != 0x4d54726b)
|
||||
throw new InvalidMidiDataException("Invalid MIDI track header.");
|
||||
int length = din.readInt();
|
||||
din.readInt(); // length
|
||||
|
||||
int runningStatus = -1;
|
||||
int click = 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* MidiFileWriter.java -- Write MIDI files.
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -118,7 +118,7 @@ public class MidiFileWriter
|
||||
*/
|
||||
private int computeTrackLength(Track track, MidiDataOutputStream dos)
|
||||
{
|
||||
int count = 0, length = 0, i = 0, eventCount = track.size();
|
||||
int length = 0, i = 0, eventCount = track.size();
|
||||
long ptick = 0;
|
||||
while (i < eventCount)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* WAVReader.java -- Read WAV files.
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -128,7 +128,7 @@ public class WAVReader extends AudioFileReader
|
||||
boolean foundFmt = false;
|
||||
boolean foundData = false;
|
||||
|
||||
short compressionCode = 0, numberChannels = 0, blockAlign = 0, bitsPerSample = 0;
|
||||
short compressionCode = 0, numberChannels = 0, bitsPerSample = 0;
|
||||
long sampleRate = 0, bytesPerSecond = 0;
|
||||
long chunkLength = 0;
|
||||
|
||||
@ -144,7 +144,7 @@ public class WAVReader extends AudioFileReader
|
||||
numberChannels = readUnsignedShortLE(din);
|
||||
sampleRate = readUnsignedIntLE(din);
|
||||
bytesPerSecond = readUnsignedIntLE(din);
|
||||
blockAlign = readUnsignedShortLE(din);
|
||||
readUnsignedShortLE(din); // blockAlign
|
||||
bitsPerSample = readUnsignedShortLE(din);
|
||||
din.skip(chunkLength - 16);
|
||||
break;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* GStreamerMixer.java -- Mixer implementation.
|
||||
Copyright (C) 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -92,7 +92,7 @@ public class GStreamerMixer
|
||||
// and see if there is one matching the given line
|
||||
// if the format comes from the gstreamer backend
|
||||
// gstreamer will be able to deal with it
|
||||
Class clazz = info.getLineClass();
|
||||
Class<?> clazz = info.getLineClass();
|
||||
DataLine.Info _info = (DataLine.Info) info;
|
||||
|
||||
if (clazz == SourceDataLine.class)
|
||||
|
@ -200,7 +200,8 @@ class SAXSerializer
|
||||
|
||||
public String getValue(String qName)
|
||||
{
|
||||
return attrs.getNamedItem(qName).getNodeValue();
|
||||
Attr attr = (Attr) attrs.getNamedItem(qName);
|
||||
return (attr == null) ? null : attr.getNodeValue();
|
||||
}
|
||||
|
||||
void serialize(Node node, ContentHandler ch, LexicalHandler lh)
|
||||
|
@ -40,9 +40,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/lib-ld.m4 \
|
||||
$(top_srcdir)/../../config/lib-link.m4 \
|
||||
$(top_srcdir)/../../config/lib-prefix.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../config/override.m4 \
|
||||
@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
@ -169,6 +168,7 @@ MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
MOC = @MOC@
|
||||
MOC4 = @MOC4@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2011-01-19.21; # UTC
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -156,10 +156,6 @@ while test $# -ne 0; do
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
@ -190,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
@ -208,11 +200,7 @@ if test $# -eq 0; then
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 15
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
@ -240,9 +228,9 @@ fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-* | [=\(\)!]) src=./$src;;
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
@ -264,7 +252,12 @@ do
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
@ -392,7 +385,7 @@ do
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
@ -410,7 +403,7 @@ do
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
|
@ -91,18 +91,18 @@ public class Area implements Shape, Cloneable
|
||||
* Segment vectors containing solid areas and holes
|
||||
* This is package-private to avoid an accessor method.
|
||||
*/
|
||||
Vector solids;
|
||||
Vector<Segment> solids;
|
||||
|
||||
/**
|
||||
* Segment vectors containing solid areas and holes
|
||||
* This is package-private to avoid an accessor method.
|
||||
*/
|
||||
Vector holes;
|
||||
Vector<Segment> holes;
|
||||
|
||||
/**
|
||||
* Vector (temporary) storing curve-curve intersections
|
||||
*/
|
||||
private Vector cc_intersections;
|
||||
private Vector<double[]> ccIntersections;
|
||||
|
||||
/**
|
||||
* Winding rule WIND_NON_ZERO used, after construction,
|
||||
@ -115,8 +115,8 @@ public class Area implements Shape, Cloneable
|
||||
*/
|
||||
public Area()
|
||||
{
|
||||
solids = new Vector();
|
||||
holes = new Vector();
|
||||
solids = new Vector<Segment>();
|
||||
holes = new Vector<Segment>();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -135,7 +135,7 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
this();
|
||||
|
||||
Vector p = makeSegment(s);
|
||||
Vector<Segment> p = makeSegment(s);
|
||||
|
||||
// empty path
|
||||
if (p == null)
|
||||
@ -143,7 +143,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
// delete empty paths
|
||||
for (int i = 0; i < p.size(); i++)
|
||||
if (((Segment) p.elementAt(i)).getSignedArea() == 0.0)
|
||||
if (p.elementAt(i).getSignedArea() == 0.0)
|
||||
p.remove(i--);
|
||||
|
||||
/*
|
||||
@ -157,12 +157,11 @@ public class Area implements Shape, Cloneable
|
||||
* 4: Repeat (3) until no segments remain in the list
|
||||
* 5: Remove redundant paths and sort into solids and holes
|
||||
*/
|
||||
Vector paths = new Vector();
|
||||
Segment v;
|
||||
|
||||
for (int i = 0; i < p.size(); i++)
|
||||
{
|
||||
Segment path = (Segment) p.elementAt(i);
|
||||
Segment path = p.elementAt(i);
|
||||
createNodesSelf(path);
|
||||
}
|
||||
|
||||
@ -171,18 +170,18 @@ public class Area implements Shape, Cloneable
|
||||
for (int i = 0; i < p.size() - 1; i++)
|
||||
for (int j = i + 1; j < p.size(); j++)
|
||||
{
|
||||
Segment path1 = (Segment) p.elementAt(i);
|
||||
Segment path2 = (Segment) p.elementAt(j);
|
||||
Segment path1 = p.elementAt(i);
|
||||
Segment path2 = p.elementAt(j);
|
||||
createNodes(path1, path2);
|
||||
}
|
||||
}
|
||||
|
||||
// we have intersecting points.
|
||||
Vector segments = new Vector();
|
||||
Vector<Segment> segments = new Vector<Segment>();
|
||||
|
||||
for (int i = 0; i < p.size(); i++)
|
||||
{
|
||||
Segment path = v = (Segment) p.elementAt(i);
|
||||
Segment path = v = p.elementAt(i);
|
||||
do
|
||||
{
|
||||
segments.add(v);
|
||||
@ -191,7 +190,7 @@ public class Area implements Shape, Cloneable
|
||||
while (v != path);
|
||||
}
|
||||
|
||||
paths = weilerAtherton(segments);
|
||||
Vector<Segment> paths = weilerAtherton(segments);
|
||||
deleteRedundantPaths(paths);
|
||||
}
|
||||
|
||||
@ -208,36 +207,34 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
Area B = (Area) area.clone();
|
||||
|
||||
Vector pathA = new Vector();
|
||||
Vector pathB = new Vector();
|
||||
Vector<Segment> pathA = new Vector<Segment>();
|
||||
Vector<Segment> pathB = new Vector<Segment>();
|
||||
pathA.addAll(solids);
|
||||
pathA.addAll(holes);
|
||||
pathB.addAll(B.solids);
|
||||
pathB.addAll(B.holes);
|
||||
|
||||
int nNodes = 0;
|
||||
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment a = (Segment) pathA.elementAt(i);
|
||||
Segment a = pathA.elementAt(i);
|
||||
for (int j = 0; j < pathB.size(); j++)
|
||||
{
|
||||
Segment b = (Segment) pathB.elementAt(j);
|
||||
nNodes += createNodes(a, b);
|
||||
Segment b = pathB.elementAt(j);
|
||||
createNodes(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
Vector paths = new Vector();
|
||||
Vector<Segment> paths = new Vector<Segment>();
|
||||
Segment v;
|
||||
|
||||
// we have intersecting points.
|
||||
Vector segments = new Vector();
|
||||
Vector<Segment> segments = new Vector<Segment>();
|
||||
|
||||
// In a union operation, we keep all
|
||||
// segments of A oustide B and all B outside A
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
v = (Segment) pathA.elementAt(i);
|
||||
v = pathA.elementAt(i);
|
||||
Segment path = v;
|
||||
do
|
||||
{
|
||||
@ -250,7 +247,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
for (int i = 0; i < pathB.size(); i++)
|
||||
{
|
||||
v = (Segment) pathB.elementAt(i);
|
||||
v = pathB.elementAt(i);
|
||||
Segment path = v;
|
||||
do
|
||||
{
|
||||
@ -281,7 +278,7 @@ public class Area implements Shape, Cloneable
|
||||
return;
|
||||
}
|
||||
|
||||
Vector pathA = new Vector();
|
||||
Vector<Segment> pathA = new Vector<Segment>();
|
||||
Area B = (Area) area.clone();
|
||||
pathA.addAll(solids);
|
||||
pathA.addAll(holes);
|
||||
@ -290,27 +287,23 @@ public class Area implements Shape, Cloneable
|
||||
setDirection(B.holes, true);
|
||||
setDirection(B.solids, false);
|
||||
|
||||
Vector pathB = new Vector();
|
||||
Vector<Segment> pathB = new Vector<Segment>();
|
||||
pathB.addAll(B.solids);
|
||||
pathB.addAll(B.holes);
|
||||
|
||||
int nNodes = 0;
|
||||
|
||||
// create nodes
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment a = (Segment) pathA.elementAt(i);
|
||||
Segment a = pathA.elementAt(i);
|
||||
for (int j = 0; j < pathB.size(); j++)
|
||||
{
|
||||
Segment b = (Segment) pathB.elementAt(j);
|
||||
nNodes += createNodes(a, b);
|
||||
Segment b = pathB.elementAt(j);
|
||||
createNodes(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
Vector paths = new Vector();
|
||||
|
||||
// we have intersecting points.
|
||||
Vector segments = new Vector();
|
||||
Vector<Segment> segments = new Vector<Segment>();
|
||||
|
||||
// In a subtraction operation, we keep all
|
||||
// segments of A oustide B and all B within A
|
||||
@ -318,7 +311,7 @@ public class Area implements Shape, Cloneable
|
||||
// and the segments before and after any node
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment v = (Segment) pathA.elementAt(i);
|
||||
Segment v = pathA.elementAt(i);
|
||||
Segment path = v;
|
||||
if (v.isSegmentOutside(area) && v.node == null)
|
||||
segments.add(v);
|
||||
@ -357,7 +350,7 @@ public class Area implements Shape, Cloneable
|
||||
while (v != path);
|
||||
}
|
||||
|
||||
paths = weilerAtherton(segments);
|
||||
Vector<Segment> paths = weilerAtherton(segments);
|
||||
deleteRedundantPaths(paths);
|
||||
}
|
||||
|
||||
@ -376,32 +369,28 @@ public class Area implements Shape, Cloneable
|
||||
if (equals(area))
|
||||
return;
|
||||
|
||||
Vector pathA = new Vector();
|
||||
Vector<Segment> pathA = new Vector<Segment>();
|
||||
Area B = (Area) area.clone();
|
||||
pathA.addAll(solids);
|
||||
pathA.addAll(holes);
|
||||
|
||||
Vector pathB = new Vector();
|
||||
Vector<Segment> pathB = new Vector<Segment>();
|
||||
pathB.addAll(B.solids);
|
||||
pathB.addAll(B.holes);
|
||||
|
||||
int nNodes = 0;
|
||||
|
||||
// create nodes
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment a = (Segment) pathA.elementAt(i);
|
||||
Segment a = pathA.elementAt(i);
|
||||
for (int j = 0; j < pathB.size(); j++)
|
||||
{
|
||||
Segment b = (Segment) pathB.elementAt(j);
|
||||
nNodes += createNodes(a, b);
|
||||
Segment b = pathB.elementAt(j);
|
||||
createNodes(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
Vector paths = new Vector();
|
||||
|
||||
// we have intersecting points.
|
||||
Vector segments = new Vector();
|
||||
Vector<Segment> segments = new Vector<Segment>();
|
||||
|
||||
// In an intersection operation, we keep all
|
||||
// segments of A within B and all B within A
|
||||
@ -410,7 +399,7 @@ public class Area implements Shape, Cloneable
|
||||
// and the segments before and after any node
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment v = (Segment) pathA.elementAt(i);
|
||||
Segment v = pathA.elementAt(i);
|
||||
Segment path = v;
|
||||
if (! v.isSegmentOutside(area) && v.node == null)
|
||||
segments.add(v);
|
||||
@ -430,7 +419,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
for (int i = 0; i < pathB.size(); i++)
|
||||
{
|
||||
Segment v = (Segment) pathB.elementAt(i);
|
||||
Segment v = pathB.elementAt(i);
|
||||
Segment path = v;
|
||||
if (! v.isSegmentOutside(this) && v.node == null)
|
||||
segments.add(v);
|
||||
@ -449,7 +438,7 @@ public class Area implements Shape, Cloneable
|
||||
while (v != path);
|
||||
}
|
||||
|
||||
paths = weilerAtherton(segments);
|
||||
Vector<Segment> paths = weilerAtherton(segments);
|
||||
deleteRedundantPaths(paths);
|
||||
}
|
||||
|
||||
@ -476,10 +465,10 @@ public class Area implements Shape, Cloneable
|
||||
return;
|
||||
}
|
||||
|
||||
Vector pathA = new Vector();
|
||||
Vector<Segment> pathA = new Vector<Segment>();
|
||||
|
||||
Area B = (Area) area.clone();
|
||||
Vector pathB = new Vector();
|
||||
Vector<Segment> pathB = new Vector<Segment>();
|
||||
pathA.addAll(solids);
|
||||
pathA.addAll(holes);
|
||||
|
||||
@ -489,28 +478,25 @@ public class Area implements Shape, Cloneable
|
||||
pathB.addAll(B.solids);
|
||||
pathB.addAll(B.holes);
|
||||
|
||||
int nNodes = 0;
|
||||
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
Segment a = (Segment) pathA.elementAt(i);
|
||||
Segment a = pathA.elementAt(i);
|
||||
for (int j = 0; j < pathB.size(); j++)
|
||||
{
|
||||
Segment b = (Segment) pathB.elementAt(j);
|
||||
nNodes += createNodes(a, b);
|
||||
Segment b = pathB.elementAt(j);
|
||||
createNodes(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
Vector paths = new Vector();
|
||||
Segment v;
|
||||
|
||||
// we have intersecting points.
|
||||
Vector segments = new Vector();
|
||||
Vector<Segment> segments = new Vector<Segment>();
|
||||
|
||||
// In an XOR operation, we operate on all segments
|
||||
for (int i = 0; i < pathA.size(); i++)
|
||||
{
|
||||
v = (Segment) pathA.elementAt(i);
|
||||
v = pathA.elementAt(i);
|
||||
Segment path = v;
|
||||
do
|
||||
{
|
||||
@ -522,7 +508,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
for (int i = 0; i < pathB.size(); i++)
|
||||
{
|
||||
v = (Segment) pathB.elementAt(i);
|
||||
v = pathB.elementAt(i);
|
||||
Segment path = v;
|
||||
do
|
||||
{
|
||||
@ -532,7 +518,7 @@ public class Area implements Shape, Cloneable
|
||||
while (v != path);
|
||||
}
|
||||
|
||||
paths = weilerAtherton(segments);
|
||||
Vector<Segment> paths = weilerAtherton(segments);
|
||||
deleteRedundantPaths(paths);
|
||||
}
|
||||
|
||||
@ -541,8 +527,8 @@ public class Area implements Shape, Cloneable
|
||||
*/
|
||||
public void reset()
|
||||
{
|
||||
solids = new Vector();
|
||||
holes = new Vector();
|
||||
solids = new Vector<Segment>();
|
||||
holes = new Vector<Segment>();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -556,9 +542,9 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
double totalArea = 0;
|
||||
for (int i = 0; i < solids.size(); i++)
|
||||
totalArea += Math.abs(((Segment) solids.elementAt(i)).getSignedArea());
|
||||
totalArea += Math.abs(solids.elementAt(i).getSignedArea());
|
||||
for (int i = 0; i < holes.size(); i++)
|
||||
totalArea -= Math.abs(((Segment) holes.elementAt(i)).getSignedArea());
|
||||
totalArea -= Math.abs(holes.elementAt(i).getSignedArea());
|
||||
if (totalArea <= EPSILON)
|
||||
return true;
|
||||
|
||||
@ -572,10 +558,10 @@ public class Area implements Shape, Cloneable
|
||||
public boolean isPolygonal()
|
||||
{
|
||||
for (int i = 0; i < holes.size(); i++)
|
||||
if (! ((Segment) holes.elementAt(i)).isPolygonal())
|
||||
if (!holes.elementAt(i).isPolygonal())
|
||||
return false;
|
||||
for (int i = 0; i < solids.size(); i++)
|
||||
if (! ((Segment) solids.elementAt(i)).isPolygonal())
|
||||
if (!solids.elementAt(i).isPolygonal())
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@ -599,7 +585,7 @@ public class Area implements Shape, Cloneable
|
||||
if (holes.size() != 0 || solids.size() != 1)
|
||||
return false;
|
||||
|
||||
Segment path = (Segment) solids.elementAt(0);
|
||||
Segment path = solids.elementAt(0);
|
||||
if (! path.isPolygonal())
|
||||
return false;
|
||||
|
||||
@ -657,12 +643,12 @@ public class Area implements Shape, Cloneable
|
||||
double xmax;
|
||||
double ymin;
|
||||
double ymax;
|
||||
xmin = xmax = ((Segment) solids.elementAt(0)).P1.getX();
|
||||
ymin = ymax = ((Segment) solids.elementAt(0)).P1.getY();
|
||||
xmin = xmax = solids.elementAt(0).P1.getX();
|
||||
ymin = ymax = solids.elementAt(0).P1.getY();
|
||||
|
||||
for (int path = 0; path < solids.size(); path++)
|
||||
{
|
||||
Rectangle2D r = ((Segment) solids.elementAt(path)).getPathBounds();
|
||||
Rectangle2D r = solids.elementAt(path).getPathBounds();
|
||||
xmin = Math.min(r.getMinX(), xmin);
|
||||
ymin = Math.min(r.getMinY(), ymin);
|
||||
xmax = Math.max(r.getMaxX(), xmax);
|
||||
@ -696,9 +682,9 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
Area clone = new Area();
|
||||
for (int i = 0; i < solids.size(); i++)
|
||||
clone.solids.add(((Segment) solids.elementAt(i)).cloneSegmentList());
|
||||
clone.solids.add(solids.elementAt(i).cloneSegmentList());
|
||||
for (int i = 0; i < holes.size(); i++)
|
||||
clone.holes.add(((Segment) holes.elementAt(i)).cloneSegmentList());
|
||||
clone.holes.add(holes.elementAt(i).cloneSegmentList());
|
||||
return clone;
|
||||
}
|
||||
catch (CloneNotSupportedException e)
|
||||
@ -727,10 +713,10 @@ public class Area implements Shape, Cloneable
|
||||
|| holes.size() != area.holes.size())
|
||||
return false;
|
||||
|
||||
Vector pathA = new Vector();
|
||||
Vector<Segment> pathA = new Vector<Segment>();
|
||||
pathA.addAll(solids);
|
||||
pathA.addAll(holes);
|
||||
Vector pathB = new Vector();
|
||||
Vector<Segment> pathB = new Vector<Segment>();
|
||||
pathB.addAll(area.solids);
|
||||
pathB.addAll(area.holes);
|
||||
|
||||
@ -741,8 +727,8 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
for (int j = 0; j < nPaths; j++)
|
||||
{
|
||||
Segment p1 = (Segment) pathA.elementAt(i);
|
||||
Segment p2 = (Segment) pathB.elementAt(j);
|
||||
Segment p1 = pathA.elementAt(i);
|
||||
Segment p2 = pathB.elementAt(j);
|
||||
if (! match[0][i] && ! match[1][j])
|
||||
if (p1.pathEquals(p2))
|
||||
match[0][i] = match[1][j] = true;
|
||||
@ -763,9 +749,9 @@ public class Area implements Shape, Cloneable
|
||||
public void transform(AffineTransform at)
|
||||
{
|
||||
for (int i = 0; i < solids.size(); i++)
|
||||
((Segment) solids.elementAt(i)).transformSegmentList(at);
|
||||
solids.elementAt(i).transformSegmentList(at);
|
||||
for (int i = 0; i < holes.size(); i++)
|
||||
((Segment) holes.elementAt(i)).transformSegmentList(at);
|
||||
holes.elementAt(i).transformSegmentList(at);
|
||||
|
||||
// Note that the orientation is not invariant under inversion
|
||||
if ((at.getType() & AffineTransform.TYPE_FLIP) != 0)
|
||||
@ -800,11 +786,11 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
int n = 0;
|
||||
for (int i = 0; i < solids.size(); i++)
|
||||
if (((Segment) solids.elementAt(i)).contains(x, y))
|
||||
if (solids.elementAt(i).contains(x, y))
|
||||
n++;
|
||||
|
||||
for (int i = 0; i < holes.size(); i++)
|
||||
if (((Segment) holes.elementAt(i)).contains(x, y))
|
||||
if (holes.elementAt(i).contains(x, y))
|
||||
n--;
|
||||
|
||||
return (n != 0);
|
||||
@ -854,7 +840,7 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
Segment v;
|
||||
Segment start;
|
||||
start = v = (Segment) solids.elementAt(path);
|
||||
start = v = solids.elementAt(path);
|
||||
do
|
||||
{
|
||||
if (l[i].hasIntersections(v))
|
||||
@ -867,7 +853,7 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
Segment v;
|
||||
Segment start;
|
||||
start = v = (Segment) holes.elementAt(path);
|
||||
start = v = holes.elementAt(path);
|
||||
do
|
||||
{
|
||||
if (l[i].hasIntersections(v))
|
||||
@ -886,7 +872,7 @@ public class Area implements Shape, Cloneable
|
||||
// but encloses a hole?
|
||||
Rectangle2D r = new Rectangle2D.Double(x, y, w, h);
|
||||
for (int path = 0; path < holes.size(); path++)
|
||||
if (! ((Segment) holes.elementAt(path)).isSegmentOutside(r))
|
||||
if (! holes.elementAt(path).isSegmentOutside(r))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -938,7 +924,7 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
Segment v;
|
||||
Segment start;
|
||||
start = v = (Segment) solids.elementAt(path);
|
||||
start = v = solids.elementAt(path);
|
||||
do
|
||||
{
|
||||
if (l[i].hasIntersections(v))
|
||||
@ -951,7 +937,7 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
Segment v;
|
||||
Segment start;
|
||||
start = v = (Segment) holes.elementAt(path);
|
||||
start = v = holes.elementAt(path);
|
||||
do
|
||||
{
|
||||
if (l[i].hasIntersections(v))
|
||||
@ -967,7 +953,7 @@ public class Area implements Shape, Cloneable
|
||||
return true;
|
||||
|
||||
// What if the rectangle encloses the whole shape?
|
||||
Point2D p = ((Segment) solids.elementAt(0)).getMidPoint();
|
||||
Point2D p = solids.elementAt(0).getMidPoint();
|
||||
if ((new Rectangle2D.Double(x, y, w, h)).contains(p))
|
||||
return true;
|
||||
return false;
|
||||
@ -1020,7 +1006,7 @@ public class Area implements Shape, Cloneable
|
||||
*/
|
||||
private class AreaIterator implements PathIterator
|
||||
{
|
||||
private Vector segments;
|
||||
private Vector<IteratorSegment> segments;
|
||||
private int index;
|
||||
private AffineTransform at;
|
||||
|
||||
@ -1045,14 +1031,14 @@ public class Area implements Shape, Cloneable
|
||||
{
|
||||
this.at = at;
|
||||
index = 0;
|
||||
segments = new Vector();
|
||||
Vector allpaths = new Vector();
|
||||
segments = new Vector<IteratorSegment>();
|
||||
Vector<Segment> allpaths = new Vector<Segment>();
|
||||
allpaths.addAll(solids);
|
||||
allpaths.addAll(holes);
|
||||
|
||||
for (int i = 0; i < allpaths.size(); i++)
|
||||
{
|
||||
Segment v = (Segment) allpaths.elementAt(i);
|
||||
Segment v = allpaths.elementAt(i);
|
||||
Segment start = v;
|
||||
|
||||
IteratorSegment is = new IteratorSegment();
|
||||
@ -1078,7 +1064,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
public int currentSegment(double[] coords)
|
||||
{
|
||||
IteratorSegment s = (IteratorSegment) segments.elementAt(index);
|
||||
IteratorSegment s = segments.elementAt(index);
|
||||
if (at != null)
|
||||
at.transform(s.coords, 0, coords, 0, 3);
|
||||
else
|
||||
@ -1089,7 +1075,7 @@ public class Area implements Shape, Cloneable
|
||||
|
||||
public int currentSegment(float[] coords)
|
||||
{
|
||||
IteratorSegment s = (IteratorSegment) segments.elementAt(index);
|
||||
IteratorSegment s = segments.elementAt(index);
|
||||
double[] d = new double[6];
|
||||
if (at != null)
|
||||
{
|
||||
@ -1129,13 +1115,13 @@ public class Area implements Shape, Cloneable
|
||||
*
|
||||
* Returns a Vector of the resulting paths.
|
||||
*/
|
||||
private Vector weilerAtherton(Vector segments)
|
||||
private Vector<Segment> weilerAtherton(Vector<Segment> segments)
|
||||
{
|
||||
Vector paths = new Vector();
|
||||
Vector<Segment> paths = new Vector<Segment>();
|
||||
while (segments.size() > 0)
|
||||
{
|
||||
// Iterate over the path
|
||||
Segment start = (Segment) segments.elementAt(0);
|
||||
Segment start = segments.elementAt(0);
|
||||
Segment s = start;
|
||||
do
|
||||
{
|
||||
@ -1252,7 +1238,7 @@ public class Area implements Shape, Cloneable
|
||||
double[] temp = new double[2];
|
||||
temp[0] = t1 + s * w1;
|
||||
temp[1] = t2 + t * w1;
|
||||
cc_intersections.add(temp);
|
||||
ccIntersections.add(temp);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1328,28 +1314,28 @@ public class Area implements Shape, Cloneable
|
||||
if (! r1.intersects(r2))
|
||||
return null;
|
||||
|
||||
cc_intersections = new Vector();
|
||||
ccIntersections = new Vector<double[]>();
|
||||
recursiveSubdivide(curve1.getCubicCurve2D(), curve2.getCubicCurve2D(),
|
||||
getRecursionDepth(curve1), getRecursionDepth(curve2),
|
||||
0.0, 0.0, 1.0, 1.0);
|
||||
|
||||
if (cc_intersections.size() == 0)
|
||||
if (ccIntersections.size() == 0)
|
||||
return null;
|
||||
|
||||
Intersection[] results = new Intersection[cc_intersections.size()];
|
||||
for (int i = 0; i < cc_intersections.size(); i++)
|
||||
Intersection[] results = new Intersection[ccIntersections.size()];
|
||||
for (int i = 0; i < ccIntersections.size(); i++)
|
||||
{
|
||||
double[] temp = (double[]) cc_intersections.elementAt(i);
|
||||
double[] temp = ccIntersections.elementAt(i);
|
||||
results[i] = new Intersection(curve1.evaluatePoint(temp[0]), temp[0],
|
||||
temp[1]);
|
||||
}
|
||||
cc_intersections = null;
|
||||
ccIntersections = null;
|
||||
return (results);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the intersections between a line and a quadratic bezier
|
||||
* Or null if no intersections are found1
|
||||
* Or null if no intersections are found.
|
||||
* This is done through combining the line's equation with the
|
||||
* parametric form of the Bezier and solving the resulting quadratic.
|
||||
* This is package-private to avoid an accessor method.
|
||||
@ -1622,9 +1608,9 @@ public class Area implements Shape, Cloneable
|
||||
* Helper method
|
||||
* Turns a shape into a Vector of Segments
|
||||
*/
|
||||
private Vector makeSegment(Shape s)
|
||||
private Vector<Segment> makeSegment(Shape s)
|
||||
{
|
||||
Vector paths = new Vector();
|
||||
Vector<Segment> paths = new Vector<Segment>();
|
||||
PathIterator pi = s.getPathIterator(null);
|
||||
double[] coords = new double[6];
|
||||
Segment subpath = null;
|
||||
@ -1786,7 +1772,7 @@ public class Area implements Shape, Cloneable
|
||||
}
|
||||
while (a != A); // until one wrap.
|
||||
|
||||
return (nNodes);
|
||||
return nNodes;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1824,7 +1810,7 @@ public class Area implements Shape, Cloneable
|
||||
* solid areas) Clears any nodes. Sorts the remaining paths into solids
|
||||
* and holes, sets their orientation and sets the solids and holes lists.
|
||||
*/
|
||||
private void deleteRedundantPaths(Vector paths)
|
||||
private void deleteRedundantPaths(Vector<Segment> paths)
|
||||
{
|
||||
int npaths = paths.size();
|
||||
|
||||
@ -1836,19 +1822,19 @@ public class Area implements Shape, Cloneable
|
||||
neg = ((windingRule == PathIterator.WIND_NON_ZERO) ? -1 : 1);
|
||||
|
||||
for (int i = 0; i < npaths; i++)
|
||||
bb[i] = ((Segment) paths.elementAt(i)).getPathBounds();
|
||||
bb[i] = paths.elementAt(i).getPathBounds();
|
||||
|
||||
// Find which path contains which, assign winding numbers
|
||||
for (int i = 0; i < npaths; i++)
|
||||
{
|
||||
Segment pathA = (Segment) paths.elementAt(i);
|
||||
Segment pathA = paths.elementAt(i);
|
||||
pathA.nullNodes(); // remove any now-redundant nodes, in case.
|
||||
int windingA = pathA.hasClockwiseOrientation() ? 1 : neg;
|
||||
|
||||
for (int j = 0; j < npaths; j++)
|
||||
if (i != j)
|
||||
{
|
||||
Segment pathB = (Segment) paths.elementAt(j);
|
||||
Segment pathB = paths.elementAt(j);
|
||||
|
||||
// A contains B
|
||||
if (bb[i].intersects(bb[j]))
|
||||
@ -1876,8 +1862,8 @@ public class Area implements Shape, Cloneable
|
||||
windingNumbers[i][1] = contains[i][i];
|
||||
}
|
||||
|
||||
Vector solids = new Vector();
|
||||
Vector holes = new Vector();
|
||||
Vector<Segment> solids = new Vector<Segment>();
|
||||
Vector<Segment> holes = new Vector<Segment>();
|
||||
|
||||
if (windingRule == PathIterator.WIND_NON_ZERO)
|
||||
{
|
||||
@ -1913,12 +1899,12 @@ public class Area implements Shape, Cloneable
|
||||
* @param clockwise gives the direction,
|
||||
* true = clockwise, false = counter-clockwise
|
||||
*/
|
||||
private void setDirection(Vector paths, boolean clockwise)
|
||||
private void setDirection(Vector<Segment> paths, boolean clockwise)
|
||||
{
|
||||
Segment v;
|
||||
for (int i = 0; i < paths.size(); i++)
|
||||
{
|
||||
v = (Segment) paths.elementAt(i);
|
||||
v = paths.elementAt(i);
|
||||
if (clockwise != v.hasClockwiseOrientation())
|
||||
v.reverseAll();
|
||||
}
|
||||
@ -2157,7 +2143,7 @@ public class Area implements Shape, Cloneable
|
||||
*/
|
||||
Segment cloneSegmentList() throws CloneNotSupportedException
|
||||
{
|
||||
Vector list = new Vector();
|
||||
Vector<Segment> list = new Vector<Segment>();
|
||||
Segment v = next;
|
||||
|
||||
while (v != this)
|
||||
@ -2170,7 +2156,7 @@ public class Area implements Shape, Cloneable
|
||||
v = clone;
|
||||
for (int i = 0; i < list.size(); i++)
|
||||
{
|
||||
clone.next = (Segment) ((Segment) list.elementAt(i)).clone();
|
||||
clone.next = (Segment) list.elementAt(i).clone();
|
||||
clone = clone.next;
|
||||
}
|
||||
clone.next = v;
|
||||
@ -2209,7 +2195,7 @@ public class Area implements Shape, Cloneable
|
||||
*/
|
||||
protected int createNodes(Segment b, Intersection[] x)
|
||||
{
|
||||
Vector v = new Vector();
|
||||
Vector<Intersection> v = new Vector<Intersection>();
|
||||
for (int i = 0; i < x.length; i++)
|
||||
{
|
||||
Point2D p = x[i].p;
|
||||
@ -2222,7 +2208,7 @@ public class Area implements Shape, Cloneable
|
||||
Intersection[] A = new Intersection[nNodes];
|
||||
Intersection[] B = new Intersection[nNodes];
|
||||
for (int i = 0; i < nNodes; i++)
|
||||
A[i] = B[i] = (Intersection) v.elementAt(i);
|
||||
A[i] = B[i] = v.elementAt(i);
|
||||
|
||||
// Create two lists sorted by the parameter
|
||||
// Bubble sort, OK I suppose, since the number of intersections
|
||||
|
@ -104,6 +104,7 @@ import java.util.NoSuchElementException;
|
||||
* @status updated to 1.5
|
||||
*/
|
||||
public class XMLDecoder
|
||||
implements AutoCloseable
|
||||
{
|
||||
private Object owner;
|
||||
|
||||
|
@ -50,7 +50,9 @@ import java.io.OutputStream;
|
||||
* @author Robert Schuster (robertschuster@fsfe.org)
|
||||
* @since 1.4
|
||||
*/
|
||||
public class XMLEncoder extends Encoder
|
||||
public class XMLEncoder
|
||||
extends Encoder
|
||||
implements AutoCloseable
|
||||
{
|
||||
Object owner;
|
||||
|
||||
|
@ -48,6 +48,7 @@ package java.io;
|
||||
* @since 1.5
|
||||
*/
|
||||
public interface Closeable
|
||||
extends AutoCloseable
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -48,7 +48,8 @@ package java.io;
|
||||
*
|
||||
* @see DataInput
|
||||
*/
|
||||
public interface ObjectInput extends DataInput
|
||||
public interface ObjectInput
|
||||
extends DataInput, AutoCloseable
|
||||
{
|
||||
/**
|
||||
* This method returns the number of bytes that can be read without
|
||||
|
@ -529,12 +529,13 @@ public class ObjectInputStream extends InputStream
|
||||
if (dump)
|
||||
dumpElementln("ENUM=");
|
||||
ObjectStreamClass osc = (ObjectStreamClass) readObject();
|
||||
int enumHandle = assignNewHandle(null, shared);
|
||||
String constantName = (String) readObject();
|
||||
if (dump)
|
||||
dumpElementln("CONSTANT NAME = " + constantName);
|
||||
Class clazz = osc.forClass();
|
||||
Enum instance = Enum.valueOf(clazz, constantName);
|
||||
assignNewHandle(instance,shared);
|
||||
rememberHandle(instance, shared, enumHandle);
|
||||
ret_val = instance;
|
||||
break;
|
||||
}
|
||||
|
@ -48,7 +48,8 @@ package java.io;
|
||||
*
|
||||
* @see DataOutput
|
||||
*/
|
||||
public interface ObjectOutput extends DataOutput
|
||||
public interface ObjectOutput
|
||||
extends DataOutput, AutoCloseable
|
||||
{
|
||||
/**
|
||||
* This method writes the specified byte to the output stream.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* AssertionError.java -- indication of a failed assertion
|
||||
Copyright (C) 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -145,4 +145,16 @@ public class AssertionError extends Error
|
||||
{
|
||||
super(Double.toString(msg));
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an AssertionError with detail message and cause.
|
||||
*
|
||||
* @param msg Detail message.
|
||||
* @param cause The cause of this exception, may be null
|
||||
* @since 1.7
|
||||
*/
|
||||
public AssertionError(String msg, Throwable cause)
|
||||
{
|
||||
super(msg, cause);
|
||||
}
|
||||
}
|
||||
|
50
libjava/classpath/java/lang/AutoCloseable.java
Normal file
50
libjava/classpath/java/lang/AutoCloseable.java
Normal file
@ -0,0 +1,50 @@
|
||||
/* AutoCloseable.java -- Resource that must be closed after it is no longer
|
||||
used.
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.lang;
|
||||
|
||||
/**
|
||||
* Resource that must be closed after it is no longer used.
|
||||
*
|
||||
* @since 1.7
|
||||
*/
|
||||
public interface AutoCloseable
|
||||
{
|
||||
void close() throws Exception;
|
||||
}
|
@ -236,6 +236,21 @@ public final class Boolean implements Serializable, Comparable<Boolean>
|
||||
return value == other.value ? 0 : (value ? 1 : -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed boolean values.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
* @return 0 if both Booleans represent the same value, a positive number
|
||||
* if this Boolean represents true and the other false, and a negative
|
||||
* number otherwise.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(boolean x, boolean y)
|
||||
{
|
||||
return Boolean.valueOf(x).compareTo(Boolean.valueOf(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* If the String argument is "true", ignoring case, return true.
|
||||
* Otherwise, return false.
|
||||
|
@ -370,4 +370,21 @@ public final class Byte extends Number implements Comparable<Byte>
|
||||
return value - b.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed byte values.
|
||||
* The result is positive if the first is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
*
|
||||
* @return positive int if the first value is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(byte x, byte y)
|
||||
{
|
||||
return Byte.valueOf(x).compareTo(Byte.valueOf(y));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4199,6 +4199,23 @@ public final class Character implements Serializable, Comparable<Character>
|
||||
return value - anotherCharacter.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed char values.
|
||||
* The result is positive if the first is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
*
|
||||
* @return positive int if the first value is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(char x, char y)
|
||||
{
|
||||
return Character.valueOf(x).compareTo(Character.valueOf(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an <code>Character</code> object wrapping the value.
|
||||
* In contrast to the <code>Character</code> constructor, this method
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ClassNotFoundException.java -- thrown when class definition cannot be found
|
||||
Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -47,9 +47,9 @@ package java.lang;
|
||||
* @see Class#forName(String)
|
||||
* @see ClassLoader#findSystemClass(String)
|
||||
* @see ClassLoader#loadClass(String, boolean)
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class ClassNotFoundException extends Exception
|
||||
public class ClassNotFoundException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.0+.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* IllegalAccessException.java -- thrown on attempt to reflect on
|
||||
inaccessible data
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -71,9 +71,9 @@ import java.lang.reflect.Method;
|
||||
* @see Field#getDouble(Object)
|
||||
* @see Method#invoke(Object, Object[])
|
||||
* @see Constructor#newInstance(Object[])
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class IllegalAccessException extends Exception
|
||||
public class IllegalAccessException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.0+.
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* InstantiationException.java -- thrown when reflection cannot create an
|
||||
instance
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -46,9 +46,9 @@ package java.lang;
|
||||
* @author Brian Jones
|
||||
* @author Warren Levy (warrenl@cygnus.com)
|
||||
* @see Class#newInstance()
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class InstantiationException extends Exception
|
||||
public class InstantiationException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.0+.
|
||||
|
@ -585,6 +585,23 @@ public final class Integer extends Number implements Comparable<Integer>
|
||||
return value > i.value ? 1 : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed int values.
|
||||
* The result is positive if the first is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
*
|
||||
* @return positive int if the first value is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(int x, int y)
|
||||
{
|
||||
return Integer.valueOf(x).compareTo(Integer.valueOf(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of bits set in x.
|
||||
* @param x value to examine
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* LinkageError.java -- thrown when classes valid at separate compile times
|
||||
cannot be linked to each other
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -46,7 +46,7 @@ package java.lang;
|
||||
*
|
||||
* @author Brian Jones
|
||||
* @author Tom Tromey (tromey@cygnus.com)
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class LinkageError extends Error
|
||||
{
|
||||
@ -71,4 +71,17 @@ public class LinkageError extends Error
|
||||
{
|
||||
super(s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an LinkageError with detail message and cause.
|
||||
*
|
||||
* @param msg Detail message.
|
||||
* @param cause The cause of this exception, may be null
|
||||
* @since 1.7
|
||||
*/
|
||||
public LinkageError(String msg, Throwable cause)
|
||||
{
|
||||
super(msg, cause);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -584,6 +584,23 @@ public final class Long extends Number implements Comparable<Long>
|
||||
return value > l.value ? 1 : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed long values.
|
||||
* The result is positive if the first is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
*
|
||||
* @return positive int if the first value is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(long x, long y)
|
||||
{
|
||||
return Long.valueOf(x).compareTo(Long.valueOf(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the number of bits set in x.
|
||||
* @param x value to examine
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* NoSuchFieldException.java -- thrown when reflecting a non-existant field
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -45,9 +45,9 @@ package java.lang;
|
||||
* @author Brian Jones
|
||||
* @author Warren Levy (warrenl@cygnus.com)
|
||||
* @since 1.1
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class NoSuchFieldException extends Exception
|
||||
public class NoSuchFieldException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.1+.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* NoSuchMethodException.java -- thrown when reflecting a non-existant method
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -44,9 +44,9 @@ package java.lang;
|
||||
*
|
||||
* @author Brian Jones
|
||||
* @author Warren Levy (warrenl@cygnus.com)
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class NoSuchMethodException extends Exception
|
||||
public class NoSuchMethodException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.0+.
|
||||
|
@ -0,0 +1,88 @@
|
||||
/* ReflectiveOperationException.java -- thrown when reflective operation fails
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.lang;
|
||||
|
||||
/**
|
||||
* This exception is thrown when reflective operations fail.
|
||||
*
|
||||
* @since 1.7
|
||||
*/
|
||||
public class ReflectiveOperationException extends Exception
|
||||
{
|
||||
private static final long serialVersionUID = 123456789L;
|
||||
|
||||
/**
|
||||
* Create an exception without a message.
|
||||
*/
|
||||
public ReflectiveOperationException()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an exception with a message.
|
||||
*
|
||||
* @param s the message
|
||||
*/
|
||||
public ReflectiveOperationException(String s)
|
||||
{
|
||||
super(s);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an exception with a message and a cause.
|
||||
*
|
||||
* @param s the message
|
||||
* @param cause the cause, may be null
|
||||
*/
|
||||
public ReflectiveOperationException(String message, Throwable cause)
|
||||
{
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an exception with a cause.
|
||||
*
|
||||
* @param cause the cause, may be null
|
||||
*/
|
||||
public ReflectiveOperationException(Throwable cause)
|
||||
{
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
@ -372,6 +372,23 @@ public final class Short extends Number implements Comparable<Short>
|
||||
return value - s.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares two unboxed short values.
|
||||
* The result is positive if the first is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
*
|
||||
* @param x First value to compare.
|
||||
* @param y Second value to compare.
|
||||
*
|
||||
* @return positive int if the first value is greater, negative if the second
|
||||
* is greater, and 0 if the two are equal.
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int compare(short x, short y)
|
||||
{
|
||||
return Short.valueOf(x).compareTo(Short.valueOf(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the bytes in val.
|
||||
* @since 1.5
|
||||
|
@ -705,6 +705,8 @@ public final class String
|
||||
*/
|
||||
public synchronized int codePointAt(int index)
|
||||
{
|
||||
if (index < 0 || index >= count)
|
||||
throw new StringIndexOutOfBoundsException(index);
|
||||
// Use the CharSequence overload as we get better range checking
|
||||
// this way.
|
||||
return Character.codePointAt(this, index);
|
||||
@ -716,12 +718,14 @@ public final class String
|
||||
* <code>index-2</code> to see if they form a supplementary code point.
|
||||
* @param index the index just past the codepoint to get, starting at 0
|
||||
* @return the codepoint at the specified index
|
||||
* @throws IndexOutOfBoundsException if index is negative or >= length()
|
||||
* @throws IndexOutOfBoundsException if index is less than 1 or > length()
|
||||
* (while unspecified, this is a StringIndexOutOfBoundsException)
|
||||
* @since 1.5
|
||||
*/
|
||||
public synchronized int codePointBefore(int index)
|
||||
{
|
||||
if (index < 1 || index > count)
|
||||
throw new StringIndexOutOfBoundsException(index);
|
||||
// Use the CharSequence overload as we get better range checking
|
||||
// this way.
|
||||
return Character.codePointBefore(this, index);
|
||||
|
@ -97,6 +97,8 @@ public final class System
|
||||
*/
|
||||
public static final PrintStream out = VMSystem.makeStandardOutputStream();
|
||||
|
||||
private static final String LINE_SEPARATOR = SystemProperties.getProperty("line.separator");
|
||||
|
||||
/**
|
||||
* The standard output PrintStream. This is assigned at startup and
|
||||
* starts its life perfectly valid. Although it is marked final, you can
|
||||
@ -712,6 +714,16 @@ public final class System
|
||||
return Console.console();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the system-dependent line separator.
|
||||
*
|
||||
* @return the system-dependent line separator.
|
||||
*/
|
||||
public static String lineSeparator()
|
||||
{
|
||||
return LINE_SEPARATOR;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a specialised <code>Collection</code>, providing
|
||||
* the necessary provisions for the collections used by the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* InvocationTargetException.java -- Wrapper exception for reflection
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -50,9 +50,9 @@ package java.lang.reflect;
|
||||
* @see Method#invoke(Object,Object[])
|
||||
* @see Constructor#newInstance(Object[])
|
||||
* @since 1.1
|
||||
* @status updated to 1.4
|
||||
* @status updated to 1.7
|
||||
*/
|
||||
public class InvocationTargetException extends Exception
|
||||
public class InvocationTargetException extends ReflectiveOperationException
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.1+.
|
||||
|
@ -79,7 +79,7 @@ public interface Member
|
||||
*
|
||||
* @return the class that declared this member
|
||||
*/
|
||||
Class getDeclaringClass();
|
||||
Class<?> getDeclaringClass();
|
||||
|
||||
/**
|
||||
* Gets the simple name of this member. This will be a valid Java
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* java.lang.reflect.Modifier
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -299,6 +299,46 @@ public class Modifier
|
||||
return (mod & VOLATILE) != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int classModifiers()
|
||||
{
|
||||
return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL | STRICT;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int interfaceModifiers()
|
||||
{
|
||||
return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | STRICT;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int constructorModifiers()
|
||||
{
|
||||
return PUBLIC | PROTECTED | PRIVATE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int methodModifiers()
|
||||
{
|
||||
return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL | STRICT | SYNCHRONIZED | NATIVE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.7
|
||||
*/
|
||||
public static int fieldModifiers()
|
||||
{
|
||||
return PUBLIC | PROTECTED | PRIVATE | STATIC | FINAL | TRANSIENT | VOLATILE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string representation of all the modifiers represented by the
|
||||
* given int. The keywords are printed in this order:
|
||||
|
@ -45,6 +45,7 @@ import java.io.IOException;
|
||||
* @since 1.4
|
||||
*/
|
||||
public abstract class FileLock
|
||||
implements AutoCloseable
|
||||
{
|
||||
private final FileChannel channel;
|
||||
private final long position;
|
||||
|
@ -46,6 +46,7 @@ import java.util.Map;
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public interface Connection
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* This transaction isolation level indicates that transactions are not
|
||||
|
@ -60,6 +60,7 @@ import java.util.Map;
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public interface ResultSet
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* The rows will be processed in order from first to last.
|
||||
|
@ -44,6 +44,7 @@ package java.sql;
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public interface Statement
|
||||
extends AutoCloseable
|
||||
{
|
||||
int CLOSE_CURRENT_RESULT = 1;
|
||||
int KEEP_CURRENT_RESULT = 2;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* AttributedString.java -- Models text with attributes
|
||||
Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2004, 2005, 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -48,6 +48,8 @@ import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This class models a <code>String</code> with attributes over various
|
||||
* subranges of the string. It allows applications to access this
|
||||
@ -68,7 +70,7 @@ public class AttributedString
|
||||
{
|
||||
|
||||
/** A Map of the attributes */
|
||||
Map attribs;
|
||||
Map<? extends Attribute, ?> attribs;
|
||||
|
||||
/** The beginning index of the attributes */
|
||||
int beginIndex;
|
||||
@ -83,7 +85,8 @@ public class AttributedString
|
||||
* @param beginIndex the start index.
|
||||
* @param endIndex the end index.
|
||||
*/
|
||||
AttributeRange(Map attribs, int beginIndex, int endIndex)
|
||||
AttributeRange(Map<? extends Attribute, ?> attribs,
|
||||
int beginIndex, int endIndex)
|
||||
{
|
||||
this.attribs = attribs;
|
||||
this.beginIndex = beginIndex;
|
||||
@ -122,7 +125,7 @@ public class AttributedString
|
||||
* @param attributes The attribute list.
|
||||
*/
|
||||
public AttributedString(String str,
|
||||
Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
|
||||
Map<? extends Attribute, ?> attributes)
|
||||
{
|
||||
this(str);
|
||||
|
||||
@ -178,7 +181,7 @@ public class AttributedString
|
||||
* <code>null</code> to include all attributes.
|
||||
*/
|
||||
public AttributedString(AttributedCharacterIterator aci, int begin, int end,
|
||||
AttributedCharacterIterator.Attribute[] attributes)
|
||||
Attribute[] attributes)
|
||||
{
|
||||
// Validate some arguments
|
||||
if ((begin < 0) || (end < begin) || end > aci.getEndIndex())
|
||||
@ -187,29 +190,28 @@ public class AttributedString
|
||||
CPStringBuilder sb = new CPStringBuilder("");
|
||||
|
||||
// Get the valid attribute list
|
||||
Set allAttribs = aci.getAllAttributeKeys();
|
||||
Set<Attribute> allAttribs = aci.getAllAttributeKeys();
|
||||
if (attributes != null)
|
||||
allAttribs.retainAll(Arrays.asList(attributes));
|
||||
|
||||
// Loop through and extract the attributes
|
||||
char c = aci.setIndex(begin);
|
||||
|
||||
ArrayList accum = new ArrayList();
|
||||
ArrayList<AttributeRange> accum = new ArrayList<AttributeRange>();
|
||||
do
|
||||
{
|
||||
sb.append(c);
|
||||
|
||||
Iterator iter = allAttribs.iterator();
|
||||
Iterator<Attribute> iter = allAttribs.iterator();
|
||||
while(iter.hasNext())
|
||||
{
|
||||
Object obj = iter.next();
|
||||
|
||||
// What should we do if this is not true?
|
||||
if (!(obj instanceof AttributedCharacterIterator.Attribute))
|
||||
if (!(obj instanceof Attribute))
|
||||
continue;
|
||||
|
||||
AttributedCharacterIterator.Attribute attrib =
|
||||
(AttributedCharacterIterator.Attribute)obj;
|
||||
Attribute attrib = (Attribute)obj;
|
||||
|
||||
// Make sure the attribute is defined.
|
||||
Object attribObj = aci.getAttribute(attrib);
|
||||
@ -237,7 +239,7 @@ public class AttributedString
|
||||
}
|
||||
|
||||
// Create a map object. Yes this will only contain one attribute
|
||||
Map newMap = new Hashtable();
|
||||
Map<Attribute,Object> newMap = new Hashtable<Attribute,Object>();
|
||||
newMap.put(attrib, attribObj);
|
||||
|
||||
// Add it to the attribute list.
|
||||
@ -249,7 +251,7 @@ public class AttributedString
|
||||
while( aci.getIndex() < end );
|
||||
|
||||
attribs = new AttributeRange[accum.size()];
|
||||
attribs = (AttributeRange[]) accum.toArray(attribs);
|
||||
attribs = accum.toArray(attribs);
|
||||
|
||||
sci = new StringCharacterIterator(sb.toString());
|
||||
}
|
||||
@ -260,8 +262,7 @@ public class AttributedString
|
||||
* @param attrib The attribute to add.
|
||||
* @param value The value of the attribute.
|
||||
*/
|
||||
public void addAttribute(AttributedCharacterIterator.Attribute attrib,
|
||||
Object value)
|
||||
public void addAttribute(Attribute attrib, Object value)
|
||||
{
|
||||
addAttribute(attrib, value, 0, sci.getEndIndex());
|
||||
}
|
||||
@ -278,14 +279,13 @@ public class AttributedString
|
||||
* @exception IllegalArgumentException If attribute is <code>null</code> or
|
||||
* the subrange is not valid.
|
||||
*/
|
||||
public void addAttribute(AttributedCharacterIterator.Attribute attrib,
|
||||
Object value, int begin, int end)
|
||||
public void addAttribute(Attribute attrib, Object value, int begin, int end)
|
||||
{
|
||||
if (attrib == null)
|
||||
throw new IllegalArgumentException("null attribute");
|
||||
if (end <= begin)
|
||||
throw new IllegalArgumentException("Requires end > begin");
|
||||
HashMap hm = new HashMap();
|
||||
HashMap<Attribute,Object> hm = new HashMap<Attribute,Object>();
|
||||
hm.put(attrib, value);
|
||||
|
||||
addAttributes(hm, begin, end);
|
||||
@ -303,7 +303,7 @@ public class AttributedString
|
||||
* <code>null</code>.
|
||||
* @throws IllegalArgumentException if the subrange is not valid.
|
||||
*/
|
||||
public void addAttributes(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes,
|
||||
public void addAttributes(Map<? extends Attribute, ?> attributes,
|
||||
int beginIndex, int endIndex)
|
||||
{
|
||||
if (attributes == null)
|
||||
@ -343,8 +343,7 @@ public class AttributedString
|
||||
*
|
||||
* @return An <code>AttributedCharacterIterator</code> for this string.
|
||||
*/
|
||||
public AttributedCharacterIterator getIterator(
|
||||
AttributedCharacterIterator.Attribute[] attributes)
|
||||
public AttributedCharacterIterator getIterator(Attribute[] attributes)
|
||||
{
|
||||
return(getIterator(attributes, 0, sci.getEndIndex()));
|
||||
}
|
||||
@ -363,8 +362,7 @@ public class AttributedString
|
||||
*
|
||||
* @return An <code>AttributedCharacterIterator</code> for this string.
|
||||
*/
|
||||
public AttributedCharacterIterator getIterator(
|
||||
AttributedCharacterIterator.Attribute[] attributes,
|
||||
public AttributedCharacterIterator getIterator(Attribute[] attributes,
|
||||
int beginIndex, int endIndex)
|
||||
{
|
||||
if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) ||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* AttributedStringIterator.java -- Class to iterate over AttributedString
|
||||
Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2004, 2005, 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -44,6 +44,8 @@ import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static java.text.AttributedCharacterIterator.Attribute;
|
||||
|
||||
/**
|
||||
* This class implements the AttributedCharacterIterator interface. It
|
||||
* is used by AttributedString.getIterator().
|
||||
@ -67,7 +69,7 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
* The list of attributes that the user is interested in. We may,
|
||||
* at our option, not return any other attributes.
|
||||
*/
|
||||
private AttributedCharacterIterator.Attribute[] restricts;
|
||||
private Attribute[] restricts;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
@ -155,9 +157,9 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
* Returns a list of all the attribute keys that are defined anywhere
|
||||
* on this string.
|
||||
*/
|
||||
public Set getAllAttributeKeys()
|
||||
public Set<Attribute> getAllAttributeKeys()
|
||||
{
|
||||
HashSet s = new HashSet();
|
||||
HashSet<Attribute> s = new HashSet<Attribute>();
|
||||
if (attribs == null)
|
||||
return(s);
|
||||
|
||||
@ -167,8 +169,7 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
|| attribs[i].endIndex <= getBeginIndex())
|
||||
continue;
|
||||
|
||||
Set key_set = attribs[i].attribs.keySet();
|
||||
Iterator iter = key_set.iterator();
|
||||
Iterator<? extends Attribute> iter = attribs[i].attribs.keySet().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
s.add(iter.next());
|
||||
@ -190,14 +191,14 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
return getRunLimit(getAllAttributeKeys());
|
||||
}
|
||||
|
||||
public int getRunLimit(AttributedCharacterIterator.Attribute attrib)
|
||||
public int getRunLimit(Attribute attrib)
|
||||
{
|
||||
HashSet s = new HashSet();
|
||||
HashSet<Attribute> s = new HashSet<Attribute>();
|
||||
s.add(attrib);
|
||||
return(getRunLimit(s));
|
||||
}
|
||||
|
||||
public synchronized int getRunLimit(Set attributeSet)
|
||||
public synchronized int getRunLimit(Set<? extends Attribute> attributeSet)
|
||||
{
|
||||
if (attributeSet == null)
|
||||
return ci.getEndIndex();
|
||||
@ -207,13 +208,13 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
int limit = current;
|
||||
if (current == end)
|
||||
return end;
|
||||
Map runValues = getAttributes();
|
||||
Map<Attribute,Object> runValues = getAttributes();
|
||||
while (limit < end)
|
||||
{
|
||||
Iterator iterator = attributeSet.iterator();
|
||||
Iterator<? extends Attribute> iterator = attributeSet.iterator();
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
Attribute attributeKey = (Attribute) iterator.next();
|
||||
Attribute attributeKey = iterator.next();
|
||||
Object v1 = runValues.get(attributeKey);
|
||||
Object v2 = getAttribute(attributeKey, limit + 1);
|
||||
boolean changed = false;
|
||||
@ -262,11 +263,11 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
*
|
||||
* return The index of the first character in the run.
|
||||
*/
|
||||
public int getRunStart(AttributedCharacterIterator.Attribute attrib)
|
||||
public int getRunStart(Attribute attrib)
|
||||
{
|
||||
if (attrib == null)
|
||||
return ci.getBeginIndex();
|
||||
HashSet s = new HashSet();
|
||||
HashSet<Attribute> s = new HashSet<Attribute>();
|
||||
s.add(attrib);
|
||||
return(getRunStart(s));
|
||||
}
|
||||
@ -279,7 +280,7 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
*
|
||||
* return The index of the first character in the run.
|
||||
*/
|
||||
public int getRunStart(Set attributeSet)
|
||||
public int getRunStart(Set<? extends Attribute> attributeSet)
|
||||
{
|
||||
if (attributeSet == null)
|
||||
return ci.getBeginIndex();
|
||||
@ -289,14 +290,14 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
int start = current;
|
||||
if (start == begin)
|
||||
return begin;
|
||||
Map runValues = getAttributes();
|
||||
Map<Attribute, Object> runValues = getAttributes();
|
||||
int prev = start - 1;
|
||||
while (start > begin)
|
||||
{
|
||||
Iterator iterator = attributeSet.iterator();
|
||||
Iterator<? extends Attribute> iterator = attributeSet.iterator();
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
Attribute attributeKey = (Attribute) iterator.next();
|
||||
Attribute attributeKey = iterator.next();
|
||||
Object v1 = runValues.get(attributeKey);
|
||||
Object v2 = getAttribute(attributeKey, prev);
|
||||
boolean changed = false;
|
||||
@ -340,7 +341,7 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
{
|
||||
if (pos >= attribs[i].beginIndex && pos < attribs[i].endIndex)
|
||||
{
|
||||
Set keys = attribs[i].attribs.keySet();
|
||||
Set<? extends Attribute> keys = attribs[i].attribs.keySet();
|
||||
if (keys.contains(key))
|
||||
{
|
||||
return attribs[i].attribs.get(key);
|
||||
@ -370,9 +371,9 @@ class AttributedStringIterator implements AttributedCharacterIterator
|
||||
* Return a list of all the attributes and values defined for this
|
||||
* character
|
||||
*/
|
||||
public Map getAttributes()
|
||||
public Map<Attribute,Object> getAttributes()
|
||||
{
|
||||
HashMap m = new HashMap();
|
||||
HashMap<Attribute,Object> m = new HashMap<Attribute,Object>();
|
||||
if (attribs == null)
|
||||
return(m);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Bidi.java -- Bidirectional Algorithm implementation
|
||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -109,7 +109,7 @@ public final class Bidi
|
||||
// A list of indices where a formatting code was found. These
|
||||
// are indicies into the original text -- not into the text after
|
||||
// the codes have been removed.
|
||||
private ArrayList formatterIndices;
|
||||
private ArrayList<Integer> formatterIndices;
|
||||
|
||||
// Indices of the starts of runs in the text.
|
||||
private int[] runs;
|
||||
@ -161,13 +161,13 @@ public final class Bidi
|
||||
if (val instanceof NumericShaper)
|
||||
shaper = (NumericShaper) val;
|
||||
|
||||
char[] text = new char[iter.getEndIndex() - iter.getBeginIndex()];
|
||||
this.embeddings = new byte[this.text.length];
|
||||
this.embeddingOffset = 0;
|
||||
this.length = text.length;
|
||||
for (int i = 0; i < this.text.length; ++i)
|
||||
text = new char[iter.getEndIndex() - iter.getBeginIndex()];
|
||||
embeddings = new byte[text.length];
|
||||
embeddingOffset = 0;
|
||||
length = text.length;
|
||||
for (int i = 0; i < text.length; ++i)
|
||||
{
|
||||
this.text[i] = iter.current();
|
||||
text[i] = iter.current();
|
||||
|
||||
val = iter.getAttribute(TextAttribute.BIDI_EMBEDDING);
|
||||
if (val instanceof Integer)
|
||||
@ -178,13 +178,13 @@ public final class Bidi
|
||||
bval = 0;
|
||||
else
|
||||
bval = (byte) ival;
|
||||
this.embeddings[i] = bval;
|
||||
embeddings[i] = bval;
|
||||
}
|
||||
}
|
||||
|
||||
// Invoke the numeric shaper, if specified.
|
||||
if (shaper != null)
|
||||
shaper.shape(this.text, 0, this.length);
|
||||
shaper.shape(text, 0, length);
|
||||
|
||||
runBidi();
|
||||
}
|
||||
@ -404,7 +404,7 @@ public final class Bidi
|
||||
{
|
||||
// Mark this character for removal.
|
||||
if (formatterIndices == null)
|
||||
formatterIndices = new ArrayList();
|
||||
formatterIndices = new ArrayList<Integer>();
|
||||
formatterIndices.add(Integer.valueOf(i));
|
||||
}
|
||||
else if (directionalOverride != -1)
|
||||
@ -427,7 +427,7 @@ public final class Bidi
|
||||
if (i == size)
|
||||
nextFmt = length;
|
||||
else
|
||||
nextFmt = ((Integer) formatterIndices.get(i)).intValue();
|
||||
nextFmt = formatterIndices.get(i).intValue();
|
||||
// Non-formatter codes are from 'input' to 'nextFmt'.
|
||||
int len = nextFmt - input;
|
||||
System.arraycopy(levels, input, levels, output, len);
|
||||
@ -716,7 +716,7 @@ public final class Bidi
|
||||
// Process from the end as we are copying the array over itself here.
|
||||
for (int index = formatterIndices.size() - 1; index >= 0; --index)
|
||||
{
|
||||
int nextFmt = ((Integer) formatterIndices.get(index)).intValue();
|
||||
int nextFmt = formatterIndices.get(index).intValue();
|
||||
|
||||
// nextFmt points to a location in the original array. So,
|
||||
// nextFmt+1 is the target of our copying. output is the location
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* BreakIterator.java -- Breaks text into elements
|
||||
Copyright (C) 1998, 1999, 2001, 2004, 2005, 2007
|
||||
Copyright (C) 1998, 1999, 2001, 2004, 2005, 2007, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
@ -160,7 +160,7 @@ public abstract class BreakIterator implements Cloneable
|
||||
}
|
||||
try
|
||||
{
|
||||
Class k = Class.forName(className);
|
||||
Class<?> k = Class.forName(className);
|
||||
return (BreakIterator) k.newInstance();
|
||||
}
|
||||
catch (ClassNotFoundException x1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ChoiceFormat.java -- Format over a range of numbers
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
@ -98,8 +98,8 @@ public class ChoiceFormat extends NumberFormat
|
||||
// This isn't explicitly documented. But for instance we accept
|
||||
// '#' as a literal hash in a format string.
|
||||
int index = 0, max = newPattern.length();
|
||||
Vector stringVec = new Vector ();
|
||||
Vector limitVec = new Vector ();
|
||||
Vector<String> stringVec = new Vector<String> ();
|
||||
Vector<Double> limitVec = new Vector<Double> ();
|
||||
final CPStringBuilder buf = new CPStringBuilder ();
|
||||
|
||||
while (true)
|
||||
@ -159,7 +159,7 @@ public class ChoiceFormat extends NumberFormat
|
||||
choiceLimits = new double[limitVec.size()];
|
||||
for (int i = 0; i < choiceLimits.length; ++i)
|
||||
{
|
||||
Double d = (Double) limitVec.elementAt(i);
|
||||
Double d = limitVec.elementAt(i);
|
||||
choiceLimits[i] = d.doubleValue();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* CollationElementIterator.java -- Walks through collation elements
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Free Software Foundation
|
||||
Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2012 Free Software Foundation
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -91,12 +91,12 @@ public final class CollationElementIterator
|
||||
* Array containing the collation decomposition of the
|
||||
* text given to the constructor.
|
||||
*/
|
||||
private RuleBasedCollator.CollationElement[] text_decomposition;
|
||||
private RuleBasedCollator.CollationElement[] textDecomposition;
|
||||
|
||||
/**
|
||||
* Array containing the index of the specified block.
|
||||
*/
|
||||
private int[] text_indexes;
|
||||
private int[] textIndexes;
|
||||
|
||||
/**
|
||||
* This method initializes a new instance of <code>CollationElementIterator</code>
|
||||
@ -130,12 +130,12 @@ public final class CollationElementIterator
|
||||
|
||||
RuleBasedCollator.CollationElement nextBlock()
|
||||
{
|
||||
if (index >= text_decomposition.length)
|
||||
if (index >= textDecomposition.length)
|
||||
return null;
|
||||
|
||||
RuleBasedCollator.CollationElement e = text_decomposition[index];
|
||||
RuleBasedCollator.CollationElement e = textDecomposition[index];
|
||||
|
||||
textIndex = text_indexes[index+1];
|
||||
textIndex = textIndexes[index+1];
|
||||
|
||||
index++;
|
||||
|
||||
@ -148,9 +148,9 @@ public final class CollationElementIterator
|
||||
return null;
|
||||
|
||||
index--;
|
||||
RuleBasedCollator.CollationElement e = text_decomposition[index];
|
||||
RuleBasedCollator.CollationElement e = textDecomposition[index];
|
||||
|
||||
textIndex = text_indexes[index+1];
|
||||
textIndex = textIndexes[index+1];
|
||||
|
||||
return e;
|
||||
}
|
||||
@ -268,23 +268,23 @@ public final class CollationElementIterator
|
||||
|
||||
String work_text = text.intern();
|
||||
|
||||
ArrayList a_element = new ArrayList();
|
||||
ArrayList a_idx = new ArrayList();
|
||||
ArrayList<RuleBasedCollator.CollationElement> aElement = new ArrayList<RuleBasedCollator.CollationElement>();
|
||||
ArrayList<Integer> aIdx = new ArrayList<Integer>();
|
||||
|
||||
// Build element collection ordered as they come in "text".
|
||||
while (idx < work_text.length())
|
||||
{
|
||||
String key, key_old;
|
||||
String key, keyOld;
|
||||
|
||||
Object object = null;
|
||||
int p = 1;
|
||||
|
||||
// IMPROVE: use a TreeMap with a prefix-ordering rule.
|
||||
key_old = key = null;
|
||||
keyOld = key = null;
|
||||
do
|
||||
{
|
||||
if (object != null)
|
||||
key_old = key;
|
||||
keyOld = key;
|
||||
key = work_text.substring (idx, idx+p);
|
||||
object = collator.prefix_tree.get (key);
|
||||
if (object != null && idx < alreadyExpanded)
|
||||
@ -294,7 +294,7 @@ public final class CollationElementIterator
|
||||
prefix.expansion.startsWith(work_text.substring(0, idx)))
|
||||
{
|
||||
object = null;
|
||||
key = key_old;
|
||||
key = keyOld;
|
||||
}
|
||||
}
|
||||
p++;
|
||||
@ -302,7 +302,7 @@ public final class CollationElementIterator
|
||||
while (idx+p <= work_text.length());
|
||||
|
||||
if (object == null)
|
||||
key = key_old;
|
||||
key = keyOld;
|
||||
|
||||
RuleBasedCollator.CollationElement prefix =
|
||||
(RuleBasedCollator.CollationElement) collator.prefix_tree.get (key);
|
||||
@ -322,8 +322,8 @@ public final class CollationElementIterator
|
||||
RuleBasedCollator.CollationElement e =
|
||||
collator.getDefaultAccentedElement (work_text.charAt (idx));
|
||||
|
||||
a_element.add (e);
|
||||
a_idx.add (new Integer(idx_idx));
|
||||
aElement.add (e);
|
||||
aIdx.add (Integer.valueOf(idx_idx));
|
||||
idx++;
|
||||
alreadyExpanded--;
|
||||
if (alreadyExpanded == 0)
|
||||
@ -342,15 +342,15 @@ public final class CollationElementIterator
|
||||
/* This is a normal character. */
|
||||
RuleBasedCollator.CollationElement e =
|
||||
collator.getDefaultElement (work_text.charAt (idx));
|
||||
Integer i_ref = new Integer(idx_idx);
|
||||
Integer iRef = Integer.valueOf(idx_idx);
|
||||
|
||||
/* Don't forget to mark it as a special sequence so the
|
||||
* string can be ordered.
|
||||
*/
|
||||
a_element.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ);
|
||||
a_idx.add (i_ref);
|
||||
a_element.add (e);
|
||||
a_idx.add (i_ref);
|
||||
aElement.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ);
|
||||
aIdx.add (iRef);
|
||||
aElement.add (e);
|
||||
aIdx.add (iRef);
|
||||
idx_idx++;
|
||||
idx++;
|
||||
}
|
||||
@ -367,8 +367,8 @@ public final class CollationElementIterator
|
||||
work_text = prefix.expansion
|
||||
+ work_text.substring (idx+prefix.key.length());
|
||||
idx = 0;
|
||||
a_element.add (prefix);
|
||||
a_idx.add (new Integer(idx_idx));
|
||||
aElement.add (prefix);
|
||||
aIdx.add (Integer.valueOf(idx_idx));
|
||||
if (alreadyExpanded == 0)
|
||||
idxToMove = prefix.key.length();
|
||||
alreadyExpanded += prefix.expansion.length()-prefix.key.length();
|
||||
@ -378,8 +378,8 @@ public final class CollationElementIterator
|
||||
/* Third case: the simplest. We have got the prefix and it
|
||||
* has not to be expanded.
|
||||
*/
|
||||
a_element.add (prefix);
|
||||
a_idx.add (new Integer(idx_idx));
|
||||
aElement.add (prefix);
|
||||
aIdx.add (Integer.valueOf(idx_idx));
|
||||
idx += prefix.key.length();
|
||||
/* If the sequence is in an expansion, we must decrease the
|
||||
* counter.
|
||||
@ -398,14 +398,13 @@ public final class CollationElementIterator
|
||||
}
|
||||
}
|
||||
|
||||
text_decomposition = (RuleBasedCollator.CollationElement[])
|
||||
a_element.toArray(new RuleBasedCollator.CollationElement[a_element.size()]);
|
||||
text_indexes = new int[a_idx.size()+1];
|
||||
for (int i = 0; i < a_idx.size(); i++)
|
||||
textDecomposition = aElement.toArray(new RuleBasedCollator.CollationElement[aElement.size()]);
|
||||
textIndexes = new int[aIdx.size()+1];
|
||||
for (int i = 0; i < aIdx.size(); i++)
|
||||
{
|
||||
text_indexes[i] = ((Integer)a_idx.get(i)).intValue();
|
||||
textIndexes[i] = aIdx.get(i).intValue();
|
||||
}
|
||||
text_indexes[a_idx.size()] = text.length();
|
||||
textIndexes[aIdx.size()] = text.length();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -460,19 +459,19 @@ public final class CollationElementIterator
|
||||
if (offset > (text.getEndIndex() - 1))
|
||||
throw new IllegalArgumentException("Offset too large: " + offset);
|
||||
|
||||
for (index = 0; index < text_decomposition.length; index++)
|
||||
for (index = 0; index < textDecomposition.length; index++)
|
||||
{
|
||||
if (offset <= text_indexes[index])
|
||||
if (offset <= textIndexes[index])
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* As text_indexes[0] == 0, we should not have to take care whether index is
|
||||
* As textIndexes[0] == 0, we should not have to take care whether index is
|
||||
* greater than 0. It is always.
|
||||
*/
|
||||
if (text_indexes[index] == offset)
|
||||
if (textIndexes[index] == offset)
|
||||
textIndex = offset;
|
||||
else
|
||||
textIndex = text_indexes[index-1];
|
||||
textIndex = textIndexes[index-1];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -56,6 +56,11 @@ import java.util.ResourceBundle;
|
||||
import java.util.ServiceLoader;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import java.util.spi.TimeZoneNameProvider;
|
||||
|
||||
/**
|
||||
@ -71,14 +76,6 @@ import java.util.spi.TimeZoneNameProvider;
|
||||
*/
|
||||
public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
{
|
||||
String[] ampms;
|
||||
String[] eras;
|
||||
private String localPatternChars;
|
||||
String[] months;
|
||||
String[] shortMonths;
|
||||
String[] shortWeekdays;
|
||||
String[] weekdays;
|
||||
|
||||
/**
|
||||
* The set of properties for obtaining the metazone data.
|
||||
*/
|
||||
@ -100,6 +97,173 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
}
|
||||
}
|
||||
|
||||
private static final Pattern ZONE_SEP = Pattern.compile("\u00a9");
|
||||
|
||||
private static final Pattern FIELD_SEP = Pattern.compile("\u00ae");
|
||||
|
||||
/**
|
||||
* Class for storing DateFormatSymbols data parsed from the property files.
|
||||
*/
|
||||
private static class DFSData
|
||||
{
|
||||
private String[] ampms;
|
||||
private String[] eras;
|
||||
private String localPatternChars;
|
||||
private String[] months;
|
||||
private String[] shortMonths;
|
||||
private String[] weekdays;
|
||||
private String[] shortWeekdays;
|
||||
private String[] dateFormats;
|
||||
private String[] timeFormats;
|
||||
private String[][] runtimeZoneStrings;
|
||||
|
||||
/**
|
||||
* Construct a new instance with the parsed data.
|
||||
*
|
||||
* @param ampms strings for "am" and "pm".
|
||||
* @param eras strings for calendar eras.
|
||||
* @param localPatternChars localised pattern characters.
|
||||
* @param months strings for the months of the year.
|
||||
* @param shortMonths short strings for the months of the year.
|
||||
* @param weekdays strings for the days of the week.
|
||||
* @param shortWeekdays short strings for the days of the week.
|
||||
* @param dateFormats localised date formats.
|
||||
* @param timeFormats localised time formats.
|
||||
* @param runtimeZoneStrings localised time zone names.
|
||||
*/
|
||||
public DFSData(String[] ampms, String[] eras, String localPatternChars,
|
||||
String[] months, String[] shortMonths, String[] weekdays,
|
||||
String[] shortWeekdays, String[] dateFormats,
|
||||
String[] timeFormats, String[][] runtimeZoneStrings)
|
||||
{
|
||||
this.ampms = ampms;
|
||||
this.eras = eras;
|
||||
this.localPatternChars = localPatternChars;
|
||||
this.months = months;
|
||||
this.shortMonths = shortMonths;
|
||||
this.weekdays = weekdays;
|
||||
this.shortWeekdays = shortWeekdays;
|
||||
this.dateFormats = dateFormats;
|
||||
this.timeFormats = timeFormats;
|
||||
this.runtimeZoneStrings = runtimeZoneStrings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the AM/PM data.
|
||||
*
|
||||
* @return the AM/PM strings.
|
||||
*/
|
||||
public String[] getAMPMs()
|
||||
{
|
||||
return ampms.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the era data.
|
||||
*
|
||||
* @return the era strings.
|
||||
*/
|
||||
public String[] getEras()
|
||||
{
|
||||
return eras.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the local pattern characters.
|
||||
*
|
||||
* @return the local pattern characters.
|
||||
*/
|
||||
public String getLocalPatternChars()
|
||||
{
|
||||
return localPatternChars;
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the months of the year (long form).
|
||||
*
|
||||
* @return the months of the year (long form).
|
||||
*/
|
||||
public String[] getMonths()
|
||||
{
|
||||
return months.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the months of the year (short form).
|
||||
*
|
||||
* @return the months of the year (short form).
|
||||
*/
|
||||
public String[] getShortMonths()
|
||||
{
|
||||
return shortMonths.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the days of the week (long form).
|
||||
*
|
||||
* @return the days of the week (long form).
|
||||
*/
|
||||
public String[] getWeekdays()
|
||||
{
|
||||
return weekdays.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the days of the week (short form).
|
||||
*
|
||||
* @return the days of the week (short form).
|
||||
*/
|
||||
public String[] getShortWeekdays()
|
||||
{
|
||||
return shortWeekdays.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the date formats.
|
||||
*
|
||||
* @return the date formats.
|
||||
*/
|
||||
public String[] getDateFormats()
|
||||
{
|
||||
return dateFormats.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the time formats.
|
||||
*
|
||||
* @return the time formats.
|
||||
*/
|
||||
public String[] getTimeFormats()
|
||||
{
|
||||
return timeFormats.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor for the zone strings.
|
||||
*
|
||||
* @return the zone strings.
|
||||
*/
|
||||
public String[][] getZoneStrings()
|
||||
{
|
||||
// Perform a deep clone so subarrays aren't modifiable
|
||||
String[][] clone = runtimeZoneStrings.clone();
|
||||
for (int a = 0; a < clone.length; ++a)
|
||||
clone[a] = runtimeZoneStrings[a].clone();
|
||||
return clone;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static final ConcurrentMap<Locale, DFSData> dataCache = new ConcurrentHashMap<Locale, DFSData>();
|
||||
|
||||
String[] ampms;
|
||||
String[] eras;
|
||||
private String localPatternChars;
|
||||
String[] months;
|
||||
String[] shortMonths;
|
||||
String[] shortWeekdays;
|
||||
String[] weekdays;
|
||||
|
||||
/**
|
||||
* The timezone strings supplied by the runtime.
|
||||
*/
|
||||
@ -161,7 +325,7 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
for (int a = 0; a < bundles.size(); ++a)
|
||||
{
|
||||
String localeData = bundles.get(a).getString(name);
|
||||
String[] array = localeData.split("\u00ae", size);
|
||||
String[] array = FIELD_SEP.split(localeData, size);
|
||||
for (int b = 0; b < data.length; ++b)
|
||||
{
|
||||
if (array.length > b && array[b] != null && data[b].isEmpty() && !array[b].isEmpty())
|
||||
@ -180,21 +344,20 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
return data;
|
||||
}
|
||||
|
||||
private String[][] getZoneStrings(ResourceBundle res, Locale locale)
|
||||
private static String[][] getZoneStrings(List<ResourceBundle> bundles, Locale locale)
|
||||
{
|
||||
List<String[]> allZones = new ArrayList<String[]>();
|
||||
try
|
||||
{
|
||||
Map<String,String[]> systemZones = new HashMap<String,String[]>();
|
||||
while (true)
|
||||
for (ResourceBundle bundle : bundles)
|
||||
{
|
||||
int index = 0;
|
||||
String country = locale.getCountry();
|
||||
String data = res.getString("zoneStrings");
|
||||
String[] zones = data.split("\u00a9");
|
||||
String data = bundle.getString("zoneStrings");
|
||||
String[] zones = ZONE_SEP.split(data);
|
||||
for (int a = 0; a < zones.length; ++a)
|
||||
{
|
||||
String[] strings = zones[a].split("\u00ae");
|
||||
String[] strings = FIELD_SEP.split(zones[a]);
|
||||
String type = properties.getProperty(strings[0] + "." + country);
|
||||
if (type == null)
|
||||
type = properties.getProperty(strings[0] + ".DEFAULT");
|
||||
@ -217,12 +380,6 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
}
|
||||
systemZones.put(strings[0], strings);
|
||||
}
|
||||
if (res.getLocale() == Locale.ROOT)
|
||||
break;
|
||||
else
|
||||
res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
|
||||
LocaleHelper.getFallbackLocale(res.getLocale()),
|
||||
ClassLoader.getSystemClassLoader());
|
||||
}
|
||||
/* Final sanity check for missing values */
|
||||
for (String[] zstrings : systemZones.values())
|
||||
@ -288,16 +445,94 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
return allZones.toArray(new String[allZones.size()][]);
|
||||
}
|
||||
|
||||
private String[] formatsForKey(ResourceBundle res, String key)
|
||||
/**
|
||||
* Retrieve the date or time formats for a specific key e.g.
|
||||
* asking for "DateFormat" will return an array containing the
|
||||
* full, long, medium and short date formats localised for
|
||||
* the locales in the specified bundle.
|
||||
*
|
||||
* @param bundles the stack of bundles to check, most-specific first.
|
||||
* @param key the type of format to retrieve.
|
||||
* @param an array of localised strings for each format prefix.
|
||||
*/
|
||||
private static String[] formatsForKey(List<ResourceBundle> bundles, String key)
|
||||
{
|
||||
String[] values = new String[formatPrefixes.length];
|
||||
|
||||
for (int i = 0; i < formatPrefixes.length; i++)
|
||||
values[i] = res.getString(formatPrefixes[i] + key);
|
||||
values[i] = getString(bundles, formatPrefixes[i] + key);
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple wrapper around extracting a {@code String} from a
|
||||
* {@code ResourceBundle}. Keep searching less-specific locales
|
||||
* until a non-null non-empty value is found.
|
||||
*
|
||||
* @param bundles the stack of bundles to check, most-specific first.
|
||||
* @param key the key of the value to retrieve.
|
||||
* @return the first non-null non-empty String found or the last
|
||||
* retrieved if one isn't found.
|
||||
*/
|
||||
private static String getString(List<ResourceBundle> bundles, String key)
|
||||
{
|
||||
String val = null;
|
||||
for (ResourceBundle bundle : bundles)
|
||||
{
|
||||
val = bundle.getString(key);
|
||||
if (val != null && !val.isEmpty())
|
||||
return val;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the locale data from the property files and constructs a
|
||||
* {@code DFSData} instance for it.
|
||||
*
|
||||
* @param the locale for which data should be retrieved.
|
||||
* @return the parsed data.
|
||||
* @throws MissingResourceException if the resources for the specified
|
||||
* locale could not be found or loaded.
|
||||
*/
|
||||
private static DFSData retrieveData(Locale locale)
|
||||
throws MissingResourceException
|
||||
{
|
||||
DFSData data = dataCache.get(locale);
|
||||
if (data == null)
|
||||
{
|
||||
ClassLoader ldr = ClassLoader.getSystemClassLoader();
|
||||
List<ResourceBundle> bundles = new ArrayList<ResourceBundle>();
|
||||
ResourceBundle res
|
||||
= ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ldr);
|
||||
bundles.add(res);
|
||||
Locale resLocale = res.getLocale();
|
||||
while (resLocale != Locale.ROOT)
|
||||
{
|
||||
res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
|
||||
LocaleHelper.getFallbackLocale(resLocale), ldr);
|
||||
bundles.add(res);
|
||||
resLocale = res.getLocale();
|
||||
}
|
||||
String[] lMonths = getStringArray(bundles, "months", 13);
|
||||
String[] lWeekdays = getStringArray(bundles, "weekdays", 8);
|
||||
data = new DFSData(getStringArray(bundles, "ampms", 2),
|
||||
getStringArray(bundles, "eras", 2),
|
||||
getString(bundles, "localPatternChars"),
|
||||
lMonths, getStringArray(bundles, "shortMonths", 13, lMonths),
|
||||
lWeekdays, getStringArray(bundles, "shortWeekdays", 8, lWeekdays),
|
||||
formatsForKey(bundles, "DateFormat"),
|
||||
formatsForKey(bundles, "TimeFormat"),
|
||||
getZoneStrings(bundles, locale));
|
||||
DFSData cachedData = dataCache.putIfAbsent(locale, data);
|
||||
// Use the earlier version if another thread beat us to it.
|
||||
if (cachedData != null)
|
||||
data = cachedData;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method initializes a new instance of <code>DateFormatSymbols</code>
|
||||
* by loading the date format information for the specified locale.
|
||||
@ -314,29 +549,17 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
|
||||
public DateFormatSymbols (Locale locale)
|
||||
throws MissingResourceException
|
||||
{
|
||||
ClassLoader ldr = ClassLoader.getSystemClassLoader();
|
||||
List<ResourceBundle> bundles = new ArrayList<ResourceBundle>();
|
||||
ResourceBundle res
|
||||
= ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ldr);
|
||||
bundles.add(res);
|
||||
Locale resLocale = res.getLocale();
|
||||
while (resLocale != Locale.ROOT)
|
||||
{
|
||||
res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
|
||||
LocaleHelper.getFallbackLocale(resLocale), ldr);
|
||||
bundles.add(res);
|
||||
resLocale = res.getLocale();
|
||||
}
|
||||
ampms = getStringArray(bundles, "ampms", 2);
|
||||
eras = getStringArray(bundles, "eras", 2);
|
||||
localPatternChars = res.getString("localPatternChars");
|
||||
months = getStringArray(bundles, "months", 13);
|
||||
shortMonths = getStringArray(bundles, "shortMonths", 13, months);
|
||||
weekdays = getStringArray(bundles, "weekdays", 8);
|
||||
shortWeekdays = getStringArray(bundles, "shortWeekdays", 8, weekdays);
|
||||
dateFormats = formatsForKey(res, "DateFormat");
|
||||
timeFormats = formatsForKey(res, "TimeFormat");
|
||||
runtimeZoneStrings = getZoneStrings(res, locale);
|
||||
DFSData data = retrieveData(locale);
|
||||
ampms = data.getAMPMs();
|
||||
eras = data.getEras();
|
||||
localPatternChars = data.getLocalPatternChars();
|
||||
months = data.getMonths();
|
||||
shortMonths = data.getShortMonths();
|
||||
weekdays = data.getWeekdays();
|
||||
shortWeekdays = data.getShortWeekdays();
|
||||
dateFormats = data.getDateFormats();
|
||||
timeFormats = data.getTimeFormats();
|
||||
runtimeZoneStrings = data.getZoneStrings();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* DecimalFormat.java -- Formats and parses numbers
|
||||
Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -177,7 +177,7 @@ public class DecimalFormat extends NumberFormat
|
||||
private boolean hasFractionalPattern;
|
||||
|
||||
/** Stores a list of attributes for use by formatToCharacterIterator. */
|
||||
private ArrayList attributes = new ArrayList();
|
||||
private ArrayList<FieldPosition> attributes = new ArrayList<FieldPosition>();
|
||||
|
||||
/**
|
||||
* Constructs a <code>DecimalFormat</code> which uses the default
|
||||
@ -438,7 +438,7 @@ public class DecimalFormat extends NumberFormat
|
||||
// add NumberFormat field attributes to the AttributedString
|
||||
for (int i = 0; i < attributes.size(); i++)
|
||||
{
|
||||
FieldPosition pos = (FieldPosition) attributes.get(i);
|
||||
FieldPosition pos = attributes.get(i);
|
||||
Format.Field attribute = pos.getFieldAttribute();
|
||||
|
||||
as.addAttribute(attribute, attribute, pos.getBeginIndex(),
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* MessageFormat.java - Localized message formatting.
|
||||
Copyright (C) 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2001, 2002, 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -164,7 +164,6 @@ public class MessageFormat extends Format
|
||||
public static final MessageFormat.Field ARGUMENT = new MessageFormat.Field("argument");
|
||||
|
||||
// For deserialization
|
||||
@SuppressWarnings("unused")
|
||||
private Field()
|
||||
{
|
||||
super("");
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* NumberFormat.java -- Formats and parses numbers
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
@ -177,7 +177,6 @@ public abstract class NumberFormat extends Format implements Cloneable
|
||||
* This constructor is only used by the deserializer. Without it,
|
||||
* it would fail to construct a valid object.
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
private Field()
|
||||
{
|
||||
super("");
|
||||
|
@ -120,10 +120,10 @@ public class Collections
|
||||
* @return an empty parameterized set.
|
||||
* @since 1.5
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static final <T> Set<T> emptySet()
|
||||
{
|
||||
/* FIXME: Could this be optimized? */
|
||||
return new EmptySet<T>();
|
||||
return (Set<T>) EMPTY_SET;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -161,6 +161,7 @@ public class Collections
|
||||
* @return A non-iterating iterator.
|
||||
*/
|
||||
// This is really cheating! I think it's perfectly valid, though.
|
||||
@SuppressWarnings("unchecked")
|
||||
public Iterator<T> iterator()
|
||||
{
|
||||
return (Iterator<T>) EMPTY_LIST.iterator();
|
||||
@ -196,7 +197,7 @@ public class Collections
|
||||
*/
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
return o instanceof Set && ((Set) o).isEmpty();
|
||||
return o instanceof Set<?> && ((Set<?>) o).isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -288,10 +289,10 @@ public class Collections
|
||||
* @return an empty parameterized list.
|
||||
* @since 1.5
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static final <T> List<T> emptyList()
|
||||
{
|
||||
/* FIXME: Could this be optimized? */
|
||||
return new EmptyList<T>();
|
||||
return (List<T>) EMPTY_LIST;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -369,7 +370,7 @@ public class Collections
|
||||
*/
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
return o instanceof List && ((List) o).isEmpty();
|
||||
return o instanceof List<?> && ((List<?>) o).isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -480,10 +481,10 @@ public class Collections
|
||||
* @return an empty parameterized map.
|
||||
* @since 1.5
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static final <K,V> Map<K,V> emptyMap()
|
||||
{
|
||||
/* FIXME: Could this be optimized? */
|
||||
return new EmptyMap<K,V>();
|
||||
return (Map<K,V>) EMPTY_MAP;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -511,9 +512,10 @@ public class Collections
|
||||
* There are no entries.
|
||||
* @return The empty set.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Set<Map.Entry<K, V>> entrySet()
|
||||
{
|
||||
return EMPTY_SET;
|
||||
return (Set<Map.Entry<K, V>>) EMPTY_SET;
|
||||
}
|
||||
|
||||
// The remaining methods are optional, but provide a performance
|
||||
@ -546,7 +548,7 @@ public class Collections
|
||||
*/
|
||||
public boolean equals(Object o)
|
||||
{
|
||||
return o instanceof Map && ((Map) o).isEmpty();
|
||||
return o instanceof Map<?,?> && ((Map<?,?>) o).isEmpty();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -572,9 +574,10 @@ public class Collections
|
||||
* No entries.
|
||||
* @return The empty set.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Set<K> keySet()
|
||||
{
|
||||
return EMPTY_SET;
|
||||
return (Set<K>) EMPTY_SET;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -601,9 +604,10 @@ public class Collections
|
||||
* Collection, will work. Besides, that's what the JDK uses!
|
||||
* @return The empty set.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Collection<V> values()
|
||||
{
|
||||
return EMPTY_SET;
|
||||
return (Collection<V>) EMPTY_SET;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1854,7 +1858,7 @@ public class Collections
|
||||
public List<T> subList(int from, int to)
|
||||
{
|
||||
if (from == to && (to == 0 || to == 1))
|
||||
return EMPTY_LIST;
|
||||
return emptyList();
|
||||
if (from == 0 && to == 1)
|
||||
return this;
|
||||
if (from > to)
|
||||
@ -2480,7 +2484,7 @@ public class Collections
|
||||
* @throws ArrayStoreException if the type of any element of the
|
||||
* collection is not a subtype of the element type of a.
|
||||
*/
|
||||
public <T> T[] toArray(T[] a)
|
||||
public <E> E[] toArray(E[] a)
|
||||
{
|
||||
synchronized (mutex)
|
||||
{
|
||||
|
@ -678,6 +678,12 @@ public final class Formatter
|
||||
conversion);
|
||||
noPrecision(precision);
|
||||
|
||||
if (arg == null)
|
||||
{
|
||||
genericFormat("null", flags, width, precision);
|
||||
return;
|
||||
}
|
||||
|
||||
int theChar;
|
||||
if (arg instanceof Character)
|
||||
theChar = ((Character) arg).charValue();
|
||||
@ -748,6 +754,12 @@ public final class Formatter
|
||||
int radix, char conversion)
|
||||
{
|
||||
assert radix == 8 || radix == 10 || radix == 16;
|
||||
|
||||
if (arg == null)
|
||||
{
|
||||
return new CPStringBuilder("null");
|
||||
}
|
||||
|
||||
noPrecision(precision);
|
||||
|
||||
// Some error checking.
|
||||
@ -1353,9 +1365,12 @@ public final class Formatter
|
||||
argumentIndex = previousArgumentIndex;
|
||||
// Argument indices start at 1 but array indices at 0.
|
||||
--argumentIndex;
|
||||
if (argumentIndex < 0 || argumentIndex >= args.length)
|
||||
throw new MissingFormatArgumentException(format.substring(start, index));
|
||||
argument = args[argumentIndex];
|
||||
if (args != null)
|
||||
{
|
||||
if (argumentIndex < 0 || argumentIndex >= args.length)
|
||||
throw new MissingFormatArgumentException(format.substring(start, index));
|
||||
argument = args[argumentIndex];
|
||||
}
|
||||
}
|
||||
|
||||
switch (conversion)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* java.util.TimeZone
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
@ -102,10 +102,10 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
/* Look up default timezone */
|
||||
if (defaultZone0 == null)
|
||||
{
|
||||
defaultZone0 = (TimeZone) AccessController.doPrivileged
|
||||
(new PrivilegedAction()
|
||||
defaultZone0 = AccessController.doPrivileged
|
||||
(new PrivilegedAction<TimeZone>()
|
||||
{
|
||||
public Object run()
|
||||
public TimeZone run()
|
||||
{
|
||||
TimeZone zone = null;
|
||||
|
||||
@ -146,21 +146,21 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
/**
|
||||
* JDK 1.1.x compatibility aliases.
|
||||
*/
|
||||
private static HashMap aliases0;
|
||||
private static HashMap<String,String> aliases0;
|
||||
|
||||
/**
|
||||
* HashMap for timezones by ID.
|
||||
*/
|
||||
private static HashMap timezones0;
|
||||
private static HashMap<String,TimeZone> timezones0;
|
||||
/* initialize this static field lazily to overhead if
|
||||
* it is not needed:
|
||||
*/
|
||||
// Package-private to avoid a trampoline.
|
||||
static HashMap timezones()
|
||||
static HashMap<String,TimeZone> timezones()
|
||||
{
|
||||
if (timezones0 == null)
|
||||
{
|
||||
HashMap timezones = new HashMap();
|
||||
HashMap<String,TimeZone> timezones = new HashMap<String,TimeZone>();
|
||||
timezones0 = timezones;
|
||||
|
||||
zoneinfo_dir = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir");
|
||||
@ -169,7 +169,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
|
||||
if (zoneinfo_dir != null)
|
||||
{
|
||||
aliases0 = new HashMap();
|
||||
aliases0 = new HashMap<String,String>();
|
||||
|
||||
// These deprecated aliases for JDK 1.1.x compatibility
|
||||
// should take precedence over data files read from
|
||||
@ -1469,7 +1469,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
{
|
||||
synchronized (TimeZone.class)
|
||||
{
|
||||
tz = (TimeZone) timezones().get(ID);
|
||||
tz = timezones().get(ID);
|
||||
if (tz != null)
|
||||
{
|
||||
if (!tz.getID().equals(ID))
|
||||
@ -1497,7 +1497,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
|
||||
// aliases0 is never changing after first timezones(), so should
|
||||
// be safe without synchronization.
|
||||
String zonename = (String) aliases0.get(ID);
|
||||
String zonename = aliases0.get(ID);
|
||||
if (zonename == null)
|
||||
zonename = ID;
|
||||
|
||||
@ -1605,17 +1605,17 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
{
|
||||
synchronized (TimeZone.class)
|
||||
{
|
||||
HashMap h = timezones();
|
||||
HashMap<String,TimeZone> h = timezones();
|
||||
int count = 0;
|
||||
if (zoneinfo_dir == null)
|
||||
{
|
||||
Iterator iter = h.entrySet().iterator();
|
||||
Iterator<Map.Entry<String,TimeZone>> iter = h.entrySet().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
// Don't iterate the values, since we want to count
|
||||
// doubled values (aliases)
|
||||
Map.Entry entry = (Map.Entry) iter.next();
|
||||
if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset)
|
||||
Map.Entry<String,TimeZone> entry = iter.next();
|
||||
if (entry.getValue().getRawOffset() == rawOffset)
|
||||
count++;
|
||||
}
|
||||
|
||||
@ -1624,8 +1624,8 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
iter = h.entrySet().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
Map.Entry entry = (Map.Entry) iter.next();
|
||||
if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset)
|
||||
Map.Entry<String,TimeZone> entry = iter.next();
|
||||
if (entry.getValue().getRawOffset() == rawOffset)
|
||||
ids[count++] = (String) entry.getKey();
|
||||
}
|
||||
return ids;
|
||||
@ -1651,7 +1651,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
return ids;
|
||||
}
|
||||
|
||||
private static int getAvailableIDs(File d, String prefix, ArrayList list)
|
||||
private static int getAvailableIDs(File d, String prefix, ArrayList<String[]> list)
|
||||
{
|
||||
String[] files = d.list();
|
||||
int count = files.length;
|
||||
@ -1691,9 +1691,9 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
{
|
||||
synchronized (TimeZone.class)
|
||||
{
|
||||
HashMap h = timezones();
|
||||
HashMap<String,TimeZone> h = timezones();
|
||||
if (zoneinfo_dir == null)
|
||||
return (String[]) h.keySet().toArray(new String[h.size()]);
|
||||
return h.keySet().toArray(new String[h.size()]);
|
||||
|
||||
if (availableIDs != null)
|
||||
{
|
||||
@ -1704,7 +1704,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
}
|
||||
|
||||
File d = new File(zoneinfo_dir);
|
||||
ArrayList list = new ArrayList(30);
|
||||
ArrayList<String[]> list = new ArrayList<String[]>(30);
|
||||
int count = getAvailableIDs(d, "", list) + aliases0.size();
|
||||
availableIDs = new String[count];
|
||||
String[] ids = new String[count];
|
||||
@ -1712,7 +1712,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
count = 0;
|
||||
for (int i = 0; i < list.size(); i++)
|
||||
{
|
||||
String[] s = (String[]) list.get(i);
|
||||
String[] s = list.get(i);
|
||||
for (int j = 0; j < s.length; j++)
|
||||
if (s[j] != null)
|
||||
{
|
||||
@ -1721,12 +1721,12 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
|
||||
}
|
||||
}
|
||||
|
||||
Iterator iter = aliases0.entrySet().iterator();
|
||||
Iterator<Map.Entry<String,String>> iter = aliases0.entrySet().iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
Map.Entry entry = (Map.Entry) iter.next();
|
||||
availableIDs[count] = (String) entry.getKey();
|
||||
ids[count++] = (String) entry.getKey();
|
||||
Map.Entry<String,String> entry = iter.next();
|
||||
availableIDs[count] = entry.getKey();
|
||||
ids[count++] = entry.getKey();
|
||||
}
|
||||
|
||||
return ids;
|
||||
|
@ -102,6 +102,28 @@ public final class Matcher implements MatchResult
|
||||
anchoringBounds = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the pattern used by the {@link Matcher} to
|
||||
* the one specified. Existing match information is lost,
|
||||
* but the input and the matcher's position within it is
|
||||
* retained.
|
||||
*
|
||||
* @param newPattern the new pattern to use.
|
||||
* @return this matcher.
|
||||
* @throws IllegalArgumentException if {@code newPattern} is
|
||||
* {@code null}.
|
||||
* @since 1.5
|
||||
*/
|
||||
public Matcher usePattern(Pattern newPattern)
|
||||
{
|
||||
if (newPattern == null)
|
||||
throw new IllegalArgumentException("The new pattern was null.");
|
||||
pattern = newPattern;
|
||||
match = null;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param sb The target string buffer
|
||||
* @param replacement The replacement string
|
||||
@ -620,7 +642,7 @@ public final class Matcher implements MatchResult
|
||||
*
|
||||
* @param s the string to literalize.
|
||||
* @return the literalized string.
|
||||
* @since 1.5
|
||||
* @since 1.5
|
||||
*/
|
||||
public static String quoteReplacement(String s)
|
||||
{
|
||||
|
@ -63,7 +63,7 @@ public class ActivationDataFlavor extends DataFlavor
|
||||
* flavor
|
||||
*/
|
||||
// Raw types enforced as part of spec.
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public ActivationDataFlavor(Class representationClass, String mimeType,
|
||||
String humanPresentableName)
|
||||
{
|
||||
@ -80,7 +80,7 @@ public class ActivationDataFlavor extends DataFlavor
|
||||
* flavor
|
||||
*/
|
||||
// Raw types enforced as part of spec.
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public ActivationDataFlavor(Class representationClass,
|
||||
String humanPresentableName)
|
||||
{
|
||||
@ -110,7 +110,7 @@ public class ActivationDataFlavor extends DataFlavor
|
||||
}
|
||||
|
||||
// Raw types enforced as part of spec.
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Class getRepresentationClass()
|
||||
{
|
||||
return representationClass;
|
||||
|
@ -224,7 +224,7 @@ public class MimeTypeParameterList
|
||||
* Returns an enumeration of all the parameter names.
|
||||
*/
|
||||
// Raw type is forced by public spec.
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public synchronized Enumeration getNames()
|
||||
{
|
||||
return new IteratorEnumeration(parameterNames.iterator());
|
||||
|
@ -78,7 +78,7 @@ import java.util.List;
|
||||
* to load the class.
|
||||
*/
|
||||
// API issue with lack of <?> on Class
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static Class loadClass(String name)
|
||||
throws ClassNotFoundException
|
||||
{
|
||||
@ -127,7 +127,7 @@ import java.util.List;
|
||||
* to load the class.
|
||||
*/
|
||||
// API issue with lack of <?> on Class
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static Class loadClassWithout(ClassLoader exclude, String name)
|
||||
throws ClassNotFoundException
|
||||
{
|
||||
|
@ -76,7 +76,7 @@ public class MBeanConstructorInfo
|
||||
* @param cons the constructor.
|
||||
*/
|
||||
// API issue with lack of <?> on Constructor
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
public MBeanConstructorInfo(String desc, Constructor cons)
|
||||
{
|
||||
super(cons.getName(), desc);
|
||||
|
@ -152,7 +152,7 @@ public interface RMIConnection
|
||||
* NotificationFilter,
|
||||
* Object)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
void addNotificationListener(ObjectName name, ObjectName listener,
|
||||
MarshalledObject filter, MarshalledObject passback,
|
||||
Subject delegationSubject)
|
||||
@ -224,7 +224,7 @@ public interface RMIConnection
|
||||
* NotificationFilter,
|
||||
* Object)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters,
|
||||
Subject[] delegationSubjects)
|
||||
throws InstanceNotFoundException, IOException;
|
||||
@ -298,7 +298,7 @@ public interface RMIConnection
|
||||
* @throws IOException if an I/O error occurred in communicating with
|
||||
* the bean server.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
ObjectInstance createMBean(String className, ObjectName name,
|
||||
MarshalledObject params, String[] sig,
|
||||
Subject delegationSubject)
|
||||
@ -367,7 +367,7 @@ public interface RMIConnection
|
||||
* @throws IOException if an I/O error occurred in communicating with
|
||||
* the bean server.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
ObjectInstance createMBean(String className, ObjectName name,
|
||||
ObjectName loaderName, MarshalledObject params,
|
||||
String[] sig, Subject delegationSubject)
|
||||
@ -767,7 +767,7 @@ public interface RMIConnection
|
||||
* the bean server.
|
||||
* @see DynamicMBean#invoke(String, Object[], String[])
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
Object invoke(ObjectName bean, String name, MarshalledObject params,
|
||||
String[] sig, Subject delegationSubject)
|
||||
throws InstanceNotFoundException, MBeanException,
|
||||
@ -871,7 +871,7 @@ public interface RMIConnection
|
||||
* @throws SecurityException if the client or delegated subject (if any) does
|
||||
* not have permission to invoke this operation.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query,
|
||||
Subject delegationSubject)
|
||||
throws IOException;
|
||||
@ -914,7 +914,7 @@ public interface RMIConnection
|
||||
* @throws IOException if an I/O error occurred in communicating with
|
||||
* the bean server.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
Set<ObjectName> queryNames(ObjectName name, MarshalledObject query,
|
||||
Subject delegationSubject)
|
||||
throws IOException;
|
||||
@ -960,7 +960,7 @@ public interface RMIConnection
|
||||
* NotificationFilter,
|
||||
* Object)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
void removeNotificationListener(ObjectName name,
|
||||
ObjectName listener,
|
||||
MarshalledObject filter,
|
||||
@ -1080,7 +1080,7 @@ public interface RMIConnection
|
||||
* @see #getAttribute(ObjectName, String, Subject)
|
||||
* @see javax.management.DynamicMBean#setAttribute(Attribute)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
void setAttribute(ObjectName name, MarshalledObject attribute,
|
||||
Subject delegationSubject)
|
||||
throws InstanceNotFoundException, AttributeNotFoundException,
|
||||
@ -1121,7 +1121,7 @@ public interface RMIConnection
|
||||
* @see #getAttributes(ObjectName, String[])
|
||||
* @see DynamicMBean#setAttributes(AttributeList)
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@SuppressWarnings("rawtypes")
|
||||
AttributeList setAttributes(ObjectName name, MarshalledObject attributes,
|
||||
Subject delegationSubject)
|
||||
throws InstanceNotFoundException, ReflectionException,
|
||||
|
@ -265,6 +265,16 @@ public class Sasl
|
||||
*/
|
||||
public static final String REUSE = "javax.security.sasl.reuse";
|
||||
|
||||
/**
|
||||
* <p>The name of a property which specifies the credentials to use.
|
||||
* The value of the property is a mechanism-specific object which can
|
||||
* be used to supply credentials to a mechanism which provides delegated
|
||||
* authentication.</p>
|
||||
*
|
||||
* <p>The value of this constant is <code>"javax.security.sasl.credentials"</code>.</p>
|
||||
*/
|
||||
public static final String CREDENTIALS = "javax.security.sasl.credentials";
|
||||
|
||||
private static final String CLIENT_FACTORY_SVC = "SaslClientFactory.";
|
||||
private static final String SERVER_FACTORY_SVC = "SaslServerFactory.";
|
||||
private static final String ALIAS = "Alg.Alias.";
|
||||
|
@ -120,10 +120,12 @@ public class MetaMessage extends MidiMessage
|
||||
|
||||
// Now compute the length representation
|
||||
long buffer = length & 0x7F;
|
||||
while ((length >>= 7) > 0)
|
||||
// Avoid altering length variable; PR42551
|
||||
lengthValue = length;
|
||||
while ((lengthValue >>= 7) > 0)
|
||||
{
|
||||
buffer <<= 8;
|
||||
buffer |= ((length & 0x7F) | 0x80);
|
||||
buffer |= ((lengthValue & 0x7F) | 0x80);
|
||||
}
|
||||
|
||||
// Now store the variable length length value
|
||||
|
@ -46,6 +46,7 @@ package javax.sound.midi;
|
||||
*
|
||||
*/
|
||||
public interface MidiDevice
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* Get the Info object describing this device.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* MidiSystem.java -- Access system MIDI resources
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -76,9 +76,9 @@ public class MidiSystem
|
||||
*/
|
||||
public static MidiDevice.Info[] getMidiDeviceInfo()
|
||||
{
|
||||
Iterator deviceProviders =
|
||||
Iterator<MidiDeviceProvider> deviceProviders =
|
||||
ServiceFactory.lookupProviders(MidiDeviceProvider.class);
|
||||
List infoList = new ArrayList();
|
||||
List<MidiDevice.Info> infoList = new ArrayList<MidiDevice.Info>();
|
||||
|
||||
while (deviceProviders.hasNext())
|
||||
{
|
||||
@ -88,8 +88,7 @@ public class MidiSystem
|
||||
infoList.add(infos[--i]);
|
||||
}
|
||||
|
||||
return (MidiDevice.Info[])
|
||||
infoList.toArray(new MidiDevice.Info[infoList.size()]);
|
||||
return infoList.toArray(new MidiDevice.Info[infoList.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +102,7 @@ public class MidiSystem
|
||||
public static MidiDevice getMidiDevice(MidiDevice.Info info)
|
||||
throws MidiUnavailableException
|
||||
{
|
||||
Iterator deviceProviders =
|
||||
Iterator<MidiDeviceProvider> deviceProviders =
|
||||
ServiceFactory.lookupProviders(MidiDeviceProvider.class);
|
||||
|
||||
if (! deviceProviders.hasNext())
|
||||
@ -216,10 +215,11 @@ public class MidiSystem
|
||||
public static Soundbank getSoundbank(InputStream stream)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
Iterator<SoundbankReader> readers =
|
||||
ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
SoundbankReader sr = (SoundbankReader) readers.next();
|
||||
SoundbankReader sr = readers.next();
|
||||
Soundbank sb = sr.getSoundbank(stream);
|
||||
if (sb != null)
|
||||
return sb;
|
||||
@ -238,10 +238,11 @@ public class MidiSystem
|
||||
public static Soundbank getSoundbank(URL url)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
Iterator<SoundbankReader> readers =
|
||||
ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
SoundbankReader sr = (SoundbankReader) readers.next();
|
||||
SoundbankReader sr = readers.next();
|
||||
Soundbank sb = sr.getSoundbank(url);
|
||||
if (sb != null)
|
||||
return sb;
|
||||
@ -260,7 +261,8 @@ public class MidiSystem
|
||||
public static Soundbank getSoundbank(File file)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
Iterator<SoundbankReader> readers =
|
||||
ServiceFactory.lookupProviders(SoundbankReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
SoundbankReader sr = (SoundbankReader) readers.next();
|
||||
@ -283,10 +285,11 @@ public class MidiSystem
|
||||
public static MidiFileFormat getMidiFileFormat(InputStream stream)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
MidiFileFormat sb = sr.getMidiFileFormat(stream);
|
||||
if (sb != null)
|
||||
return sb;
|
||||
@ -305,10 +308,11 @@ public class MidiSystem
|
||||
public static MidiFileFormat getMidiFileFormat(URL url)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
MidiFileFormat sb = sr.getMidiFileFormat(url);
|
||||
if (sb != null)
|
||||
return sb;
|
||||
@ -327,10 +331,11 @@ public class MidiSystem
|
||||
public static MidiFileFormat getMidiFileFormat(File file)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
MidiFileFormat sb = sr.getMidiFileFormat(file);
|
||||
if (sb != null)
|
||||
return sb;
|
||||
@ -350,10 +355,11 @@ public class MidiSystem
|
||||
public static Sequence getSequence(InputStream stream)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
Sequence sq = sr.getSequence(stream);
|
||||
if (sq != null)
|
||||
return sq;
|
||||
@ -372,10 +378,11 @@ public class MidiSystem
|
||||
public static Sequence getSequence(URL url)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
Sequence sq = sr.getSequence(url);
|
||||
if (sq != null)
|
||||
return sq;
|
||||
@ -394,10 +401,11 @@ public class MidiSystem
|
||||
public static Sequence getSequence(File file)
|
||||
throws InvalidMidiDataException, IOException
|
||||
{
|
||||
Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
Iterator<MidiFileReader> readers =
|
||||
ServiceFactory.lookupProviders(MidiFileReader.class);
|
||||
while (readers.hasNext())
|
||||
{
|
||||
MidiFileReader sr = (MidiFileReader) readers.next();
|
||||
MidiFileReader sr = readers.next();
|
||||
Sequence sq = sr.getSequence(file);
|
||||
if (sq != null)
|
||||
return sq;
|
||||
@ -417,10 +425,11 @@ public class MidiSystem
|
||||
boolean supported[] = new boolean[3];
|
||||
// The number of supported formats.
|
||||
int count = 0;
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers =
|
||||
ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
MidiFileWriter fw = writers.next();
|
||||
int types[] = fw.getMidiFileTypes();
|
||||
for (int i = types.length; i > 0;)
|
||||
{
|
||||
@ -449,10 +458,10 @@ public class MidiSystem
|
||||
*/
|
||||
public static boolean isFileTypeSupported(int fileType)
|
||||
{
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
MidiFileWriter fw = writers.next();
|
||||
|
||||
if (fw.isFileTypeSupported(fileType))
|
||||
return true;
|
||||
@ -473,7 +482,7 @@ public class MidiSystem
|
||||
boolean supported[] = new boolean[3];
|
||||
// The number of supported formats.
|
||||
int count = 0;
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
@ -507,7 +516,7 @@ public class MidiSystem
|
||||
*/
|
||||
public static boolean isFileTypeSupported(int fileType, Sequence sequence)
|
||||
{
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
@ -531,7 +540,7 @@ public class MidiSystem
|
||||
public static int write(Sequence in, int fileType, OutputStream out)
|
||||
throws IOException
|
||||
{
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
@ -556,7 +565,7 @@ public class MidiSystem
|
||||
public static int write(Sequence in, int fileType, File out)
|
||||
throws IOException
|
||||
{
|
||||
Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
Iterator<MidiFileWriter> writers = ServiceFactory.lookupProviders(MidiFileWriter.class);
|
||||
while (writers.hasNext())
|
||||
{
|
||||
MidiFileWriter fw = (MidiFileWriter) writers.next();
|
||||
|
@ -47,6 +47,7 @@ package javax.sound.midi;
|
||||
*
|
||||
*/
|
||||
public interface Receiver
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* Send a MIDI message and timestamp. Some receivers don't support
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* SoundbankResource.java -- An audio resource from a sound bank
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -49,7 +49,7 @@ public abstract class SoundbankResource
|
||||
{
|
||||
private final Soundbank soundbank;
|
||||
private final String name;
|
||||
private final Class dataClass;
|
||||
private final Class<?> dataClass;
|
||||
|
||||
/**
|
||||
* Create a SoundbankResource object.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Track.java -- A track of MIDI events
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -54,10 +54,10 @@ public class Track
|
||||
/**
|
||||
* The list of MidiEvents for this track.
|
||||
*/
|
||||
Vector events = new Vector();
|
||||
Vector<MidiEvent> events = new Vector<MidiEvent>();
|
||||
|
||||
// A HashSet to speed processing
|
||||
private HashSet eventSet = new HashSet();
|
||||
private HashSet<MidiEvent> eventSet = new HashSet<MidiEvent>();
|
||||
|
||||
// This is only instantiable within this package.
|
||||
Track()
|
||||
@ -83,7 +83,7 @@ public class Track
|
||||
|
||||
long targetTick = event.getTick();
|
||||
int i = events.size() - 1;
|
||||
while (i >= 0 && (((MidiEvent)events.get(i)).getTick() > targetTick))
|
||||
while (i >= 0 && (events.get(i).getTick() > targetTick))
|
||||
i--;
|
||||
events.add(i+1, event);
|
||||
return true;
|
||||
@ -127,7 +127,7 @@ public class Track
|
||||
{
|
||||
try
|
||||
{
|
||||
return (MidiEvent) events.get(index);
|
||||
return events.get(index);
|
||||
}
|
||||
catch (IndexOutOfBoundsException e)
|
||||
{
|
||||
@ -158,7 +158,7 @@ public class Track
|
||||
synchronized (events)
|
||||
{
|
||||
int size = events.size();
|
||||
return ((MidiEvent) events.get(size - 1)).getTick();
|
||||
return events.get(size - 1).getTick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ package javax.sound.midi;
|
||||
*
|
||||
*/
|
||||
public interface Transmitter
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* Set the Receiver to which MIDI events will be sent.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Main interface to audio system
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -84,10 +84,10 @@ public class AudioSystem
|
||||
public static AudioFileFormat getAudioFileFormat(File f)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioFileFormat(f);
|
||||
@ -111,10 +111,10 @@ public class AudioSystem
|
||||
public static AudioFileFormat getAudioFileFormat(InputStream is)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioFileFormat(is);
|
||||
@ -138,10 +138,10 @@ public class AudioSystem
|
||||
public static AudioFileFormat getAudioFileFormat(URL url)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioFileFormat(url);
|
||||
@ -162,10 +162,10 @@ public class AudioSystem
|
||||
{
|
||||
HashSet<AudioFileFormat.Type> result
|
||||
= new HashSet<AudioFileFormat.Type>();
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
Iterator<AudioFileWriter> i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileWriter writer = (AudioFileWriter) i.next();
|
||||
AudioFileWriter writer = i.next();
|
||||
AudioFileFormat.Type[] types = writer.getAudioFileTypes();
|
||||
for (int j = 0; j < types.length; ++j)
|
||||
result.add(types[j]);
|
||||
@ -183,10 +183,10 @@ public class AudioSystem
|
||||
{
|
||||
HashSet<AudioFileFormat.Type> result
|
||||
= new HashSet<AudioFileFormat.Type>();
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
Iterator<AudioFileWriter> i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileWriter writer = (AudioFileWriter) i.next();
|
||||
AudioFileWriter writer = i.next();
|
||||
AudioFileFormat.Type[] types = writer.getAudioFileTypes(ais);
|
||||
for (int j = 0; j < types.length; ++j)
|
||||
result.add(types[j]);
|
||||
@ -206,10 +206,11 @@ public class AudioSystem
|
||||
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targ,
|
||||
AudioInputStream ais)
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
Iterator<FormatConversionProvider> i =
|
||||
ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
if (! prov.isConversionSupported(targ, ais.getFormat()))
|
||||
continue;
|
||||
return prov.getAudioInputStream(targ, ais);
|
||||
@ -229,10 +230,11 @@ public class AudioSystem
|
||||
public static AudioInputStream getAudioInputStream(AudioFormat targ,
|
||||
AudioInputStream ais)
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
Iterator<FormatConversionProvider> i =
|
||||
ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
if (! prov.isConversionSupported(targ, ais.getFormat()))
|
||||
continue;
|
||||
return prov.getAudioInputStream(targ, ais);
|
||||
@ -251,10 +253,10 @@ public class AudioSystem
|
||||
public static AudioInputStream getAudioInputStream(File f)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioInputStream(f);
|
||||
@ -278,10 +280,10 @@ public class AudioSystem
|
||||
public static AudioInputStream getAudioInputStream(InputStream is)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioInputStream(is);
|
||||
@ -305,10 +307,10 @@ public class AudioSystem
|
||||
public static AudioInputStream getAudioInputStream(URL url)
|
||||
throws UnsupportedAudioFileException, IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
Iterator<AudioFileReader> i = ServiceFactory.lookupProviders(AudioFileReader.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileReader reader = (AudioFileReader) i.next();
|
||||
AudioFileReader reader = i.next();
|
||||
try
|
||||
{
|
||||
return reader.getAudioInputStream(url);
|
||||
@ -401,10 +403,10 @@ public class AudioSystem
|
||||
*/
|
||||
public static Mixer getMixer(Mixer.Info info)
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(MixerProvider.class);
|
||||
Iterator<MixerProvider> i = ServiceFactory.lookupProviders(MixerProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
MixerProvider prov = (MixerProvider) i.next();
|
||||
MixerProvider prov = i.next();
|
||||
if (prov.isMixerSupported(info))
|
||||
return prov.getMixer(info);
|
||||
}
|
||||
@ -417,10 +419,10 @@ public class AudioSystem
|
||||
public static Mixer.Info[] getMixerInfo()
|
||||
{
|
||||
HashSet<Mixer.Info> result = new HashSet<Mixer.Info>();
|
||||
Iterator i = ServiceFactory.lookupProviders(MixerProvider.class);
|
||||
Iterator<MixerProvider> i = ServiceFactory.lookupProviders(MixerProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
MixerProvider prov = (MixerProvider) i.next();
|
||||
MixerProvider prov = i.next();
|
||||
Mixer.Info[] is = prov.getMixerInfo();
|
||||
for (int j = 0; j < is.length; ++j)
|
||||
result.add(is[j]);
|
||||
@ -536,10 +538,11 @@ public class AudioSystem
|
||||
{
|
||||
HashSet<AudioFormat.Encoding> result
|
||||
= new HashSet<AudioFormat.Encoding>();
|
||||
Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
Iterator<FormatConversionProvider> i =
|
||||
ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
if (! prov.isSourceEncodingSupported(source))
|
||||
continue;
|
||||
AudioFormat.Encoding[] es = prov.getTargetEncodings();
|
||||
@ -558,10 +561,11 @@ public class AudioSystem
|
||||
{
|
||||
HashSet<AudioFormat.Encoding> result
|
||||
= new HashSet<AudioFormat.Encoding>();
|
||||
Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
Iterator<FormatConversionProvider> i =
|
||||
ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
AudioFormat.Encoding[] es = prov.getTargetEncodings(source);
|
||||
for (int j = 0; j < es.length; ++j)
|
||||
result.add(es[j]);
|
||||
@ -579,10 +583,11 @@ public class AudioSystem
|
||||
AudioFormat sourceFmt)
|
||||
{
|
||||
HashSet<AudioFormat> result = new HashSet<AudioFormat>();
|
||||
Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
Iterator<FormatConversionProvider> i =
|
||||
ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
AudioFormat[] es = prov.getTargetFormats(encoding, sourceFmt);
|
||||
for (int j = 0; j < es.length; ++j)
|
||||
result.add(es[j]);
|
||||
@ -618,11 +623,11 @@ public class AudioSystem
|
||||
public static boolean isConversionSupported(AudioFormat.Encoding targ,
|
||||
AudioFormat source)
|
||||
{
|
||||
Iterator i
|
||||
Iterator<FormatConversionProvider> i
|
||||
= ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
if (prov.isConversionSupported(targ, source))
|
||||
return true;
|
||||
}
|
||||
@ -638,11 +643,11 @@ public class AudioSystem
|
||||
public static boolean isConversionSupported(AudioFormat targ,
|
||||
AudioFormat source)
|
||||
{
|
||||
Iterator i
|
||||
Iterator<FormatConversionProvider> i
|
||||
= ServiceFactory.lookupProviders(FormatConversionProvider.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
FormatConversionProvider prov = (FormatConversionProvider) i.next();
|
||||
FormatConversionProvider prov = i.next();
|
||||
if (prov.isConversionSupported(targ, source))
|
||||
return true;
|
||||
}
|
||||
@ -714,10 +719,10 @@ public class AudioSystem
|
||||
File out)
|
||||
throws IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
Iterator<AudioFileWriter> i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileWriter w = (AudioFileWriter) i.next();
|
||||
AudioFileWriter w = i.next();
|
||||
if (w.isFileTypeSupported(type, ais))
|
||||
return w.write(ais, type, out);
|
||||
}
|
||||
@ -739,10 +744,10 @@ public class AudioSystem
|
||||
OutputStream os)
|
||||
throws IOException
|
||||
{
|
||||
Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
Iterator<AudioFileWriter> i = ServiceFactory.lookupProviders(AudioFileWriter.class);
|
||||
while (i.hasNext())
|
||||
{
|
||||
AudioFileWriter w = (AudioFileWriter) i.next();
|
||||
AudioFileWriter w = i.next();
|
||||
if (w.isFileTypeSupported(type, ais))
|
||||
return w.write(ais, type, os);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* An input or output line
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@ -43,6 +43,7 @@ package javax.sound.sampled;
|
||||
* @since 1.3
|
||||
*/
|
||||
public interface Line
|
||||
extends AutoCloseable
|
||||
{
|
||||
/**
|
||||
* An object of this type holds information about a Line.
|
||||
@ -50,7 +51,7 @@ public interface Line
|
||||
*/
|
||||
class Info
|
||||
{
|
||||
private Class klass;
|
||||
private Class<?> klass;
|
||||
|
||||
/**
|
||||
* Create a new Info object. The argument is the class of the line,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user