Avoid committing temporary vi files

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Implement DataInputStream

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Fix DataOutputStream#writeUTF

This developer did not read the specs closely enough and missed that
the length of the byte array needs to be written out first, so that
DataInputStream#readUTF has a chance of reading the string back.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #103 from dscho/data-input-stream

Data input stream
Automatically generate and commit Javadoc.
This will only generate on pushes to master, and not pull requests.
Merge pull request #104 from l1m5/master

Automatically generate and commit Javadoc.
Do not use 'echo -e' unnecessarily

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Use subdirectory in build/ for temporary gh-pages checkout

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Fix Travis' automatic javadoc update

The script used the wrong directory to copy the JavaDocs from.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #106 from dscho/fix-travis-javadoc

Fix travis javadoc
Compile the annotation tests with the annotations in the class path

Earlier, if the annotations were already up-to-date (but
Annotations.class not), the compilation would fail.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Proxy: make all methods public

Proxies implement interfaces whose methods *must* be public, as per the
specification of the Java language.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
AnnotationInvocationHandler: avoid calling Method#getName too often

This is only a cosmetic change, but we should not call getName()
over and over again ;-)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Implement Method#getDefaultValue()

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Use the default value in annotations' proxies

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Delete temporary test file afterwards

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Pass the correct Method instance to the InvocationHandlers

We should pass the method of the original interface to the
InvocationHandler, not the method of the interface.

That way, proxy instances of annotations will have easy access to
the default values.

This happens to be compatible with the way Oracle Java does it, too.

To accomplish our goal, we keep a global map between proxy classes and
Method references and assign the appropriate list to a field of the
Proxy subclass. This means that we now have to call the super-class
constructor in the generated constructor (which is the correct thing to
do anyway... ;-)).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that Proxy instances have access to annotations' default values

For quick access, the sezpoz library stores lists in
META-INF/annotations/ of classes that have been annotated in a
special way.

To support the use case where the annotations actually changed since
sezpoz stored said lists, sezpoz then creates proxy instances for the
annotations to provide some backwards compatibility: as long as there
are default values for any newly-introduced annotation values,
everything is groovy.

Therefore, let's make sure that proxy instances inherit the
annotations' default values.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Fix parsing of recursive annotations

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Test complicated annotation constructs

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>