Commit Graph

256 Commits

Author SHA1 Message Date
Joshua Warner
fd81e126ef fix Dates test for openjdk and stub out java.util.TimeZone 2013-11-07 20:44:02 -07:00
Joshua Warner
76b0bb4872 remove non-conforming ZipEntry.getJavaTime API and associated tests (which failed the openjdk build) 2013-11-07 19:13:13 -07:00
Joshua Warner
4cf3d9de88 Merge pull request #95 from dscho/compatible-serialization
Java-compatible (de)serialization of TreeMap, ArrayList and Number
2013-11-06 09:02:12 -08:00
Johannes Schindelin
2a9ab48137 Make ArrayList's serialization compatible with OpenJDK's
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:12:18 -06:00
Johannes Schindelin
a90b3ae574 Make TreeMap (de)serialization compatible with Java
This is done by implementing the readObject()/writeObject() method
pair as demanded by the serialization specification. The specifics
were reverse-engineered from serializing trivial TreeMap instances
with OpenJDK.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:12:18 -06:00
Johannes Schindelin
afe09e32de Add a 'comparator' field to TreeMap
This will be needed for Java-compatible serialization of tree maps.

Note that the field should be null when the TreeMap uses the default
comparator.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:12:17 -06:00
Johannes Schindelin
f8028c9864 Add a dummy implementation of EmptyStackException
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:07:58 -06:00
Johannes Schindelin
6159f5cd3c Support Logger#log(Level,String,Object)
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:07:58 -06:00
Johannes Schindelin
874bf4ef4c Initialize Logger instances to the 'INFO' level by default
... otherwise, logging would throw an exception when trying to
determine whether the current level allows the message to be logged.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-06 09:07:58 -06:00
Joshua Warner
da69b735f4 Merge branch 'addzip' of git://github.com/CUBoulderBoy/avian into CUBoulderBoy-addzip 2013-11-04 17:38:27 -07:00
Johannes Schindelin
7fe3979280 Implement LinkedHashSet
This implementation is intentionally simple. If and when the need arises,
we can always implement a more performant version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 15:11:19 -06:00
Johannes Schindelin
58ea1442fd Implement LinkedHashMap
This implementation is intentionally simple. If and when the need arises,
we can always implement a more performant version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 15:11:19 -06:00
Johannes Schindelin
c023bd8654 Implement TreeSet#descendingIterator
If need be, this functionality can be sped up by implementing a
descending iterator on the tree without copying it into an ArrayList.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 15:11:19 -06:00
Johannes Schindelin
1ed90c38ab Implement rest of the Arrays#fill family
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 15:11:19 -06:00
Johannes Schindelin
6a81623690 Implement the Arrays#copyOf family
... as introduced in Java 6.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 15:11:00 -06:00
Johannes Schindelin
46a55bd024 Implement ArrayList#ensureCapacity
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 14:33:25 -06:00
Johannes Schindelin
eab3b8e448 Implement Collections#reverse
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 14:33:25 -06:00
Johannes Schindelin
a61bcf824f Implement Collections#binarySearch
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 14:33:25 -06:00
Johannes Schindelin
d37b5ada37 Implement Collections#sort
This is really a verbatim translation of Arrays#sort.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 12:08:22 -06:00
Johannes Schindelin
605701e40a Replace Arrays.sort() with an efficient sort algorithm
This change reuses the existing insertion sort (which was previously what
Arrays.sort() executed) in a full intro sort pipeline.

The implementation is based on the Musser paper on intro sort (Musser,
David R. "Introspective sorting and selection algorithms." Softw., Pract.
Exper. 27.8 (1997): 983-993.) and Wikipedia's current description of the
heap sort: http://en.wikipedia.org/wiki/Heapsort.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-11-04 00:27:04 -06:00
Johannes Schindelin
6c46fe3f1a Make Vector a Cloneable
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-25 15:32:33 -05:00
Johannes Schindelin
056c65947e Add Collections#singletonList
This is a very dumb implementation that wastes space and time by
constructing a full-blown ArrayList as backend. However, it is
better to have a dumb implementation than none at all, and we can
always do something about the performance when, and if, that should
become necessary.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-25 15:32:33 -05:00
Johannes Schindelin
86c735e649 Add Collections#synchronizedSet
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-25 15:32:33 -05:00
Joshua Warner
b20dcd268c Merge pull request #85 from dscho/simple-regex
Simple regex
2013-10-21 13:30:57 -07:00
Johannes Schindelin
728473e9ad Support escaped octal and hexadecimal characters in regular expressions
In the previous commit, we did not support characters in regular
expressions specified via \0..., \x... or \u... yet. This is a bit more
involved, therefore support for them is added in its own commit.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-21 13:34:33 -05:00
Johannes Schindelin
f55ac46602 Support trivial regular expressions with special escaped characters
When a regular expression contains escaped characters such as the
backslash, it is actually still a literal string. So let's support the
trivially-escaped characters, too, that are documented in

	http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-21 12:00:17 -05:00
Joshua Warner
e485a468f0 Merge pull request #82 from dscho/dates
Implement date parsing / formatting
2013-10-21 09:36:46 -07:00
Johannes Schindelin
a9ecf1eaed Complete the java.util.Arrays#toString family of methods
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-18 15:01:36 -05:00
Johannes Schindelin
dcfcd193be Implement Calendar#getTime
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-18 14:58:44 -05:00
Johannes Schindelin
466a7fc0c0 Be more verbose when complaining about a non-trivial regex
In particular when constructing regular expressions before compiling them,
it is a good idea to state which exact expression is non-trivial when
complaining about it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2013-10-18 14:56:05 -05:00
Mike Jensen
bfe7b9110a Removed exception message based on Josh's recommendation 2013-07-17 11:52:48 -06:00
Mike Jensen
7da59277e5 This solves a class cast exception from a call to .values() from an UnmodifiableMap. It also solves an issue where you can modify an unmodifiable collection through the Iterator or ListIterator (depending on the structure type). 2013-07-15 08:54:44 -06:00
Chris Jordan
8eec1a0339 fixing problems! 2013-07-08 16:30:17 -06:00
Aaron Davis
54484bc2eb add zipOutputStream and change DeflaterOutputStream 2013-07-08 14:13:08 -06:00
Chris Jordan
6970bb26ae updating zipentry 2013-07-08 13:55:00 -06:00
Chris Jordan
055f820cac adding zipentry and zipoutputstream classes 2013-07-05 14:39:30 -06:00
Joel Dice
87b02eb949 update copyright years
Previously, I used a shell script to extract modification date ranges
from the Git history, but that was complicated and unreliable, so now
every file just gets the same year range in its copyright header.  If
someone needs to know when a specific file was modified and by whom,
they can look at the Git history themselves; no need to include it
redundantly in the header.
2013-07-02 20:52:38 -06:00
Mike Jensen
bd2ebfce07 Merge branch 'master' of https://github.com/ReadyTalk/avian 2013-04-29 11:45:32 -06:00
Mike Jensen
a41f8c0103 Added more to the avian classpath for the collection interface as well as the list interface
Added to collection:
public boolean containsAll(Collection<?> c);
public boolean removeAll(Collection<?> c);

Added to list:
public boolean addAll(int startIndex, Collection<? extends T> c);

Also where possible for inner classes I made them extend the abstract version instead of just implement the interface.  This helps reduce code duplication where possible.

These changes were necessary to support protobuf 2.5.0
2013-04-29 11:32:56 -06:00
Simon Ochsenreither
b1eb4b9718 Adds code to get the Scala REPL working 2013-01-30 04:31:38 +01:00
Joel Dice
852d77d0b5 implement Arrays.toString(byte[]) 2012-08-04 16:08:32 -06:00
Joel Dice
e85d079cfa Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 11:34:18 -06:00
Joshua Warner
fffde5f445 add Arrays test for equals and hashCode, handle corner cases with null 2012-07-24 11:31:47 -06:00
Joel Dice
af34259a01 Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 10:21:37 -06:00
Joshua Warner
b034d11221 Ungenerify Arrays.{hashCode|equals}, make Arrays.equals consider nulls equal 2012-07-24 10:03:19 -06:00
Joel Dice
52a878fa3e Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 09:58:53 -06:00
Mike Keesey
b4ecec3034 Implementing add(T element) in AbstractList, which just calls add(size(), element) and returns true per the spec. 2012-07-23 18:55:11 -06:00
Joshua Warner
62ff8440ed implement Arrays.equals and Arrays.hashCode 2012-07-23 07:28:05 -06:00
Mike Keesey
59280c5780 Fixed isEmpty() on TreeSet, which actually returned !isEmpty(). 2012-07-13 15:46:01 -06:00
Joel Dice
2ab304acb8 Merge github.com:mkeesey/avian 2012-07-07 16:29:18 -06:00