From f4baadf7e823cf46ff2c95f0679084fbca5e6a21 Mon Sep 17 00:00:00 2001 From: Yauheni Khnykin Date: Sun, 22 Oct 2023 19:08:02 +0200 Subject: [PATCH] Hides internals from Javadoc (OpenJDK 17) Signed-off-by: Yauheni Khnykin --- .../templates/java/JavaEnumeration.mustache | 3 + .../templates/java/JavaException.mustache | 7 ++ .../templates/java/NativeBase.mustache | 5 + .../smoke/AttributesCrashException.java | 12 ++ .../com/example/smoke/AttributesEnum.java | 8 ++ .../android/com/example/smoke/Comments.java | 103 +++++++++++++++ .../com/example/smoke/CommentsInterface.java | 49 +++++++- .../example/smoke/DeprecationComments.java | 32 +++++ .../smoke/DeprecationCommentsOnly.java | 25 ++++ .../com/example/smoke/ExcludedComments.java | 56 +++++++++ .../example/smoke/ExcludedCommentsOnly.java | 64 ++++++++++ .../com/example/smoke/PlatformComments.java | 42 +++++++ .../android/com/example/smoke/Constants.java | 11 ++ .../com/example/smoke/ConstantsInterface.java | 16 ++- .../com/example/smoke/Constructors.java | 43 +++++++ .../com/example/smoke/EnumWithAlias.java | 10 ++ .../android/com/example/smoke/Enums.java | 35 ++++++ .../example/smoke/EnumsInTypeCollection.java | 11 ++ .../android/com/example/smoke/Equatable.java | 29 +++++ .../android/com/example/smoke/Errors.java | 50 ++++++++ .../com/example/smoke/ErrorsInterface.java | 41 ++++++ .../com/example/smoke/SomeTypeCollection.java | 19 +++ .../example/smoke/WithPayloadException.java | 12 ++ .../android/com/example/package/Types.java | 23 ++++ .../android/com/example/smoke/Enums.java | 22 ++++ .../com/example/smoke/ExternalClass.java | 26 +++- .../com/example/smoke/ExternalInterface.java | 18 ++- .../smoke/GenericTypesWithCompoundTypes.java | 52 +++++++- .../example/namerules/NAME_RULES_DROID.java | 52 ++++++++ .../com/example/foo/bar/NativeBase.java | 19 ++- .../android/com/example/smoke/FreeEnum.java | 9 +- .../android/com/example/smoke/LevelOne.java | 39 ++++++ .../com/example/smoke/OuterStruct.java | 79 ++++++++++++ .../android/com/example/smoke/Nullable.java | 117 ++++++++++++++++++ .../android/com/example/smoke/barTypes.java | 18 +++ .../android/com/example/smoke/Properties.java | 73 +++++++++++ .../com/example/smoke/Serialization.java | 33 +++++ .../example/smoke/SkipEnumeratorAutoTag.java | 8 ++ .../smoke/SkipEnumeratorExplicitTag.java | 8 ++ .../android/com/example/smoke/Structs.java | 59 +++++++++ .../com/example/smoke/PublicClass.java | 36 ++++++ 41 files changed, 1367 insertions(+), 7 deletions(-) diff --git a/gluecodium/src/main/resources/templates/java/JavaEnumeration.mustache b/gluecodium/src/main/resources/templates/java/JavaEnumeration.mustache index 7ae3572c63..c440ac0049 100644 --- a/gluecodium/src/main/resources/templates/java/JavaEnumeration.mustache +++ b/gluecodium/src/main/resources/templates/java/JavaEnumeration.mustache @@ -27,6 +27,9 @@ "}}{{/set}} {{/if}} + /** + * @hidden + */ {{resolveName "visibility"}}final int value; {{resolveName}}(final int value) { diff --git a/gluecodium/src/main/resources/templates/java/JavaException.mustache b/gluecodium/src/main/resources/templates/java/JavaException.mustache index 25b453a167..fa8e8d9473 100644 --- a/gluecodium/src/main/resources/templates/java/JavaException.mustache +++ b/gluecodium/src/main/resources/templates/java/JavaException.mustache @@ -21,10 +21,17 @@ {{>java/JavaDocComment}}{{>java/JavaAttributes}} {{resolveName "visibility"}}{{#if forceStatic}}static {{/if}}{{!! }}final class {{resolveName}} extends Exception { + /** + * @hidden + * @param error The error. + */ {{resolveName "visibility"}}{{resolveName}}(final {{resolveName errorType}} error) { super(error.toString()); this.error = error; } + /** + * @hidden + */ {{resolveName "visibility"}}final {{resolveName errorType}} error; } \ No newline at end of file diff --git a/gluecodium/src/main/resources/templates/java/NativeBase.mustache b/gluecodium/src/main/resources/templates/java/NativeBase.mustache index 8e77530da7..ad1f444c63 100644 --- a/gluecodium/src/main/resources/templates/java/NativeBase.mustache +++ b/gluecodium/src/main/resources/templates/java/NativeBase.mustache @@ -108,6 +108,11 @@ public abstract class NativeBase { } } + /** + * @hidden + * @param nativeHandle The native handle + * @param disposer The disposer + */ protected NativeBase(final long nativeHandle, final Disposer disposer) { this.nativeHandle = nativeHandle; REFERENCES.add(new DisposableReference(this, nativeHandle, disposer)); diff --git a/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesCrashException.java b/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesCrashException.java index 2823d2a83c..a8095dd016 100644 --- a/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesCrashException.java +++ b/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesCrashException.java @@ -1,12 +1,24 @@ /* + * */ + package com.example.smoke; + + @OnException public final class AttributesCrashException extends Exception { + /** + * @hidden + * @param error The error. + */ public AttributesCrashException(final String error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final String error; } diff --git a/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesEnum.java b/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesEnum.java index c437597003..eafde3d314 100644 --- a/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesEnum.java +++ b/gluecodium/src/test/resources/smoke/attributes/output/android/com/example/smoke/AttributesEnum.java @@ -1,12 +1,20 @@ /* + * */ + package com.example.smoke; + + @OnEnumeration public enum AttributesEnum { @OnEnumerator NOPE(0); + /** + * @hidden + */ public final int value; + AttributesEnum(final int value) { this.value = value; } diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/Comments.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/Comments.java index 5277e8d522..a0ece4bb91 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/Comments.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/Comments.java @@ -1,10 +1,14 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.example.NativeBase; + /** *

This is some very useful interface. */ @@ -25,7 +29,11 @@ public enum SomeEnum { *

Somewhat useful */ USEFUL(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -34,10 +42,18 @@ public enum SomeEnum { *

This is some very useful exception. */ public static final class SomethingWrongException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomethingWrongException(final Comments.SomeEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Comments.SomeEnum error; } /** @@ -54,6 +70,7 @@ public static final class SomeStruct { */ @Nullable public String nullableField; + /** *

This is how easy it is to construct. * @param someField

How useful this struct is @@ -63,15 +80,26 @@ public SomeStruct(final boolean someField) { this.someField = someField; this.nullableField = null; } + /** *

This is some struct method that does nothing. */ + + + public native void someStructMethod(); + /** *

This is some static struct method that does nothing. */ + + + public static native void someStaticStructMethod(); + + } + /** * @hidden */ @@ -84,15 +112,24 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** *

This is some very useful lambda that does it. * @param p0

Very useful input parameter * @param index

Slightly less useful input parameter * @return

Usefulness of the input */ + + + public native double doIt(@NonNull final String p0, final int index); + + } + /** *

This is some very useful lambda that does it. */ @@ -104,8 +141,13 @@ public interface SomeLambda { * @param index

Slightly less useful input parameter * @return

Usefulness of the input */ + + + double doIt(@NonNull final String p0, final int index); } + + /** * For internal use only. * @hidden @@ -120,80 +162,141 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** *

This is some very useful method that measures the usefulness of its input. * @param inputParameter

Very useful input parameter * @return

Usefulness of the input * @throws Comments.SomethingWrongException

Sometimes it happens. */ + + + public native boolean someMethodWithAllComments(@NonNull final String inputParameter) throws Comments.SomethingWrongException; + /** *

This is some very useful method that measures the usefulness of its input. * @param input

Very useful input parameter * @return */ + + + public native boolean someMethodWithInputComments(@NonNull final String input); + /** *

This is some very useful method that measures the usefulness of its input. * @param input * @return

Usefulness of the input */ + + + public native boolean someMethodWithOutputComments(@NonNull final String input); + /** *

This is some very useful method that measures the usefulness of its input. * @param input * @return */ + + + public native boolean someMethodWithNoComments(@NonNull final String input); + /** *

This is some very useful method that does not measure the usefulness of its input. * @param input

Very useful input parameter */ + + + public native void someMethodWithoutReturnTypeWithAllComments(@NonNull final String input); + /** *

This is some very useful method that does not measure the usefulness of its input. * @param input */ + + + public native void someMethodWithoutReturnTypeWithNoComments(@NonNull final String input); + /** *

This is some very useful method that measures the usefulness of something. * @return

Usefulness of the input */ + + + public native boolean someMethodWithoutInputParametersWithAllComments(); + /** *

This is some very useful method that measures the usefulness of something. * @return */ + + + public native boolean someMethodWithoutInputParametersWithNoComments(); + + + public native void someMethodWithNothing(); + /** *

This is some very useful method that does nothing. */ + + + public native void someMethodWithoutReturnTypeOrInputParameters(); + /** * * @param undocumented * @param documented

nicely documented * @return */ + + + @NonNull public native String oneParameterCommentOnly(@NonNull final String undocumented, @NonNull final String documented); + /** * * @param undocumented * @return

nicely documented */ + + + @NonNull public native String returnCommentOnly(@NonNull final String undocumented); + /** *

Gets some very useful property. * @return

Some very useful property. */ + + + public native boolean isSomeProperty(); + /** *

Sets some very useful property. * @param value

Some very useful property. */ + + + public native void setSomeProperty(final boolean value); + + + } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/CommentsInterface.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/CommentsInterface.java index 48f25e0508..7a5493f864 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/CommentsInterface.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/CommentsInterface.java @@ -1,9 +1,12 @@ /* - * + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + /** *

This is some very useful interface. */ @@ -24,7 +27,11 @@ public enum SomeEnum { *

Somewhat useful */ USEFUL(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -37,67 +44,107 @@ public static final class SomeStruct { *

How useful this struct is */ public boolean someField; + public SomeStruct(final boolean someField) { this.someField = someField; } + + } + /** *

This is some very useful method that measures the usefulness of its input. * @param input

Very useful input parameter * @return

Usefulness of the input */ + + + boolean someMethodWithAllComments(@NonNull final String input); /** *

This is some very useful method that measures the usefulness of its input. * @param input

Very useful input parameter * @return */ + + + boolean someMethodWithInputComments(@NonNull final String input); /** *

This is some very useful method that measures the usefulness of its input. * @param input * @return

Usefulness of the input */ + + + boolean someMethodWithOutputComments(@NonNull final String input); /** *

This is some very useful method that measures the usefulness of its input. * @param input * @return */ + + + boolean someMethodWithNoComments(@NonNull final String input); /** *

This is some very useful method that does not measure the usefulness of its input. * @param input

Very useful input parameter */ + + + void someMethodWithoutReturnTypeWithAllComments(@NonNull final String input); /** *

This is some very useful method that does not measure the usefulness of its input. * @param input */ + + + void someMethodWithoutReturnTypeWithNoComments(@NonNull final String input); /** *

This is some very useful method that measures the usefulness of something. * @return

Usefulness of the input */ + + + boolean someMethodWithoutInputParametersWithAllComments(); /** *

This is some very useful method that measures the usefulness of something. * @return */ + + + boolean someMethodWithoutInputParametersWithNoComments(); + + void someMethodWithNothing(); /** *

This is some very useful method that does nothing. */ + + + void someMethodWithoutReturnTypeOrInputParameters(); /** *

Gets some very useful property. * @return

Some very useful property. */ + + + boolean isSomeProperty(); /** *

Sets some very useful property. * @param value

Some very useful property. */ + + + void setSomeProperty(final boolean value); } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationComments.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationComments.java index 73aa106577..d5edfeea52 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationComments.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationComments.java @@ -1,8 +1,12 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + /** *

This is some very useful interface. * @deprecated

Unfortunately, this interface is deprecated. Use {@link com.example.smoke.Comments} instead. @@ -28,20 +32,33 @@ public enum SomeEnum { */ @Deprecated USELESS(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } } /** + * @deprecated

Unfortunately, this exception is deprecated, please use {@link com.example.smoke.Comments.SomethingWrongException} instead. */ @Deprecated public static final class SomethingWrongException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomethingWrongException(final DeprecationComments.SomeEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final DeprecationComments.SomeEnum error; } /** @@ -57,10 +74,14 @@ public static final class SomeStruct { */ @Deprecated public boolean someField; + public SomeStruct() { this.someField = false; } + + } + /** *

This is some very useful method that measures the usefulness of its input. * @deprecated

Unfortunately, this method is deprecated. @@ -69,6 +90,8 @@ public SomeStruct() { * @return

Usefulness of the input */ @Deprecated + + boolean someMethodWithAllComments(@NonNull final String input); /** *

Gets some very useful property. @@ -77,6 +100,8 @@ public SomeStruct() { * @return

Some very useful property. */ @Deprecated + + boolean isSomeProperty(); /** *

Sets some very useful property. @@ -85,6 +110,8 @@ public SomeStruct() { * @param value

Some very useful property. */ @Deprecated + + void setSomeProperty(final boolean value); /** *

Gets the property but not accessors. @@ -92,6 +119,8 @@ public SomeStruct() { * @return

Describes the property but not accessors. */ @Deprecated + + @NonNull String getPropertyButNotAccessors(); /** @@ -100,5 +129,8 @@ public SomeStruct() { * @param value

Describes the property but not accessors. */ @Deprecated + + void setPropertyButNotAccessors(@NonNull final String value); } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationCommentsOnly.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationCommentsOnly.java index 508c6912c8..da5642a4e4 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationCommentsOnly.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/DeprecationCommentsOnly.java @@ -1,47 +1,65 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + /** + * @deprecated

Unfortunately, this interface is deprecated. */ @Deprecated public interface DeprecationCommentsOnly { /** + * @deprecated

Unfortunately, this constant is deprecated. */ @Deprecated public static final boolean VERY_USEFUL = true; /** + * @deprecated

Unfortunately, this enum is deprecated. */ @Deprecated public enum SomeEnum { /** + * @deprecated

Unfortunately, this item is deprecated. */ @Deprecated USELESS(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } } /** + * @deprecated

Unfortunately, this struct is deprecated. */ @Deprecated public static final class SomeStruct { /** + * @deprecated

Unfortunately, this field is deprecated. */ @Deprecated public boolean someField; + public SomeStruct() { this.someField = false; } + + } + /** * * @deprecated

Unfortunately, this method is deprecated. @@ -49,6 +67,8 @@ public SomeStruct() { * @return

Usefulness of the input */ @Deprecated + + boolean someMethodWithAllComments(@NonNull final String input); /** * @@ -56,6 +76,8 @@ public SomeStruct() { * @return */ @Deprecated + + boolean isSomeProperty(); /** * @@ -63,5 +85,8 @@ public SomeStruct() { * @param value */ @Deprecated + + void setSomeProperty(final boolean value); } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedComments.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedComments.java index eaa7e3ff7e..4ce83b147a 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedComments.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedComments.java @@ -1,9 +1,13 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + /** *

This is some very useful class. * @hidden @@ -24,7 +28,11 @@ public enum SomeEnum { * @hidden */ USELESS(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -34,10 +42,18 @@ public enum SomeEnum { * @hidden */ public static final class SomethingWrongException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomethingWrongException(final ExcludedComments.SomeEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final ExcludedComments.SomeEnum error; } /** @@ -51,6 +67,7 @@ public static final class SomeStruct { * @hidden */ public boolean someField; + /** *

This is how easy it is to construct. * @param someField

How useful this struct is @@ -59,7 +76,10 @@ public static final class SomeStruct { public SomeStruct(final boolean someField) { this.someField = someField; } + + } + /** * @hidden */ @@ -72,7 +92,10 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** *

This is some very useful lambda that does it. * @hidden @@ -80,8 +103,14 @@ public void disposeNative(long handle) { * @param index

Slightly less useful input parameter * @return

Usefulness of the input */ + + + public native double doIt(@NonNull final String p0, final int index); + + } + /** *

This is some very useful lambda that does it. * @hidden @@ -95,8 +124,13 @@ public interface SomeLambda { * @param index

Slightly less useful input parameter * @return

Usefulness of the input */ + + + double doIt(@NonNull final String p0, final int index); } + + /** * For internal use only. * @hidden @@ -111,7 +145,10 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** *

This is some very useful method that measures the usefulness of its input. * @hidden @@ -119,22 +156,41 @@ public void disposeNative(long handle) { * @return

Usefulness of the input * @throws ExcludedComments.SomethingWrongException

Sometimes it happens. */ + + + public native boolean someMethodWithAllComments(@NonNull final String inputParameter) throws ExcludedComments.SomethingWrongException; + /** *

This is some very useful method that does nothing. * @hidden */ + + + public native void someMethodWithoutReturnTypeOrInputParameters(); + /** *

Gets some very useful property. * @hidden * @return

Some very useful property. */ + + + public native boolean isSomeProperty(); + /** *

Sets some very useful property. * @hidden * @param value

Some very useful property. */ + + + public native void setSomeProperty(final boolean value); + + + } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedCommentsOnly.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedCommentsOnly.java index 882b351b2c..d84c31171f 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedCommentsOnly.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/ExcludedCommentsOnly.java @@ -1,52 +1,79 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + /** + * @hidden */ public final class ExcludedCommentsOnly extends NativeBase { /** + * @hidden */ public static final boolean VERY_USEFUL = true; /** + * @hidden */ public enum SomeEnum { /** + * @hidden */ USELESS(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } } /** + * @hidden */ public static final class SomethingWrongException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomethingWrongException(final ExcludedCommentsOnly.SomeEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final ExcludedCommentsOnly.SomeEnum error; } /** + * @hidden */ public static final class SomeStruct { /** + * @hidden */ public boolean someField; + public SomeStruct(final boolean someField) { this.someField = someField; } + + } + /** * @hidden */ @@ -59,7 +86,10 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** * * @hidden @@ -67,9 +97,16 @@ public void disposeNative(long handle) { * @param index * @return */ + + + public native double doIt(@NonNull final String p0, final int index); + + } + /** + * @hidden */ @FunctionalInterface @@ -81,8 +118,13 @@ public interface SomeLambda { * @param index * @return */ + + + double doIt(@NonNull final String p0, final int index); } + + /** * For internal use only. * @hidden @@ -97,7 +139,10 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** * * @hidden @@ -105,22 +150,41 @@ public void disposeNative(long handle) { * @return * @throws ExcludedCommentsOnly.SomethingWrongException */ + + + public native boolean someMethodWithAllComments(@NonNull final String inputParameter) throws ExcludedCommentsOnly.SomethingWrongException; + /** * * @hidden */ + + + public native void someMethodWithoutReturnTypeOrInputParameters(); + /** * * @hidden * @return */ + + + public native boolean isSomeProperty(); + /** * * @hidden * @param value */ + + + public native void setSomeProperty(final boolean value); + + + } + diff --git a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/PlatformComments.java b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/PlatformComments.java index 0a6d7d0e01..74d1090107 100644 --- a/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/PlatformComments.java +++ b/gluecodium/src/test/resources/smoke/comments/output/android/com/example/smoke/PlatformComments.java @@ -1,9 +1,13 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class PlatformComments extends NativeBase { public enum SomeEnum { /** @@ -11,7 +15,11 @@ public enum SomeEnum { */ USELESS(0), USEFUL(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -20,10 +28,18 @@ public enum SomeEnum { *

An exception when something goes wrong. */ public static final class SomethingWrongException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomethingWrongException(final PlatformComments.SomeEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final PlatformComments.SomeEnum error; } /** @@ -32,10 +48,15 @@ public SomethingWrongException(final PlatformComments.SomeEnum error) { public static final class Something { @NonNull public String nothing; + public Something(@NonNull final String nothing) { this.nothing = nothing; } + + } + + /** * For internal use only. * @hidden @@ -50,26 +71,47 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + /** *

This is some very useless method that makes some coffee. */ + + + public native void doNothing(); + /** *

Makes some coffee. */ + + + public native void doMagic(); + /** *

This is some very useful method that measures the usefulness of its input or \esc@pe{s}. * @param input

Very useful parameter that [\esc@pe{s}] * @return

Uselessness {@link com.example.smoke.PlatformComments.SomeEnum} of the input * @throws PlatformComments.SomethingWrongException

Sometimes it happens. */ + + + public native boolean someMethodWithAllComments(@NonNull final String input) throws PlatformComments.SomethingWrongException; + /** * * @deprecated

A very useless method that is deprecated. */ @Deprecated + + public native void someDeprecatedMethod(); + + + } + diff --git a/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/Constants.java b/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/Constants.java index fc3afa3078..88f637c3f1 100644 --- a/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/Constants.java +++ b/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/Constants.java @@ -1,7 +1,11 @@ /* + * */ + package com.example.smoke; + + public final class Constants { public static final boolean BOOL_CONSTANT = true; public static final int INT_CONSTANT = -11; @@ -13,9 +17,16 @@ public final class Constants { public enum StateEnum { OFF(0), ON(1); + /** + * @hidden + */ public final int value; + StateEnum(final int value) { this.value = value; } } + + } + diff --git a/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/ConstantsInterface.java b/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/ConstantsInterface.java index 34dde87aeb..1ce26d2e7b 100644 --- a/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/ConstantsInterface.java +++ b/gluecodium/src/test/resources/smoke/constants/output/android/com/example/smoke/ConstantsInterface.java @@ -1,9 +1,12 @@ /* - * + * */ + package com.example.smoke; + import com.example.NativeBase; + public final class ConstantsInterface extends NativeBase { public static final boolean BOOL_CONSTANT = true; public static final int INT_CONSTANT = -11; @@ -15,11 +18,16 @@ public final class ConstantsInterface extends NativeBase { public enum StateEnum { OFF(0), ON(1); + /** + * @hidden + */ public final int value; + StateEnum(final int value) { this.value = value; } } + /** * For internal use only. * @hidden @@ -34,5 +42,11 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + } + diff --git a/gluecodium/src/test/resources/smoke/constructors/output/android/com/example/smoke/Constructors.java b/gluecodium/src/test/resources/smoke/constructors/output/android/com/example/smoke/Constructors.java index 3f35364acb..d808362633 100644 --- a/gluecodium/src/test/resources/smoke/constructors/output/android/com/example/smoke/Constructors.java +++ b/gluecodium/src/test/resources/smoke/constructors/output/android/com/example/smoke/Constructors.java @@ -1,46 +1,78 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; import java.util.List; + public class Constructors extends NativeBase { public enum ErrorEnum { NONE(0), CRASHED(1); + /** + * @hidden + */ public final int value; + ErrorEnum(final int value) { this.value = value; } } public static final class ConstructorExplodedException extends Exception { + /** + * @hidden + * @param error The error. + */ public ConstructorExplodedException(final Constructors.ErrorEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Constructors.ErrorEnum error; } + + + public Constructors() { this(create(), (Object)null); cacheThisInstance(); } + + + public Constructors(@NonNull final Constructors other) { this(create(other), (Object)null); cacheThisInstance(); } + + + public Constructors(@NonNull final String foo, final long bar) { this(create(foo, bar), (Object)null); cacheThisInstance(); } + + + public Constructors(@NonNull final String input) throws Constructors.ConstructorExplodedException { this(create(input), (Object)null); cacheThisInstance(); } + + + public Constructors(@NonNull final List input) { this(create(input), (Object)null); cacheThisInstance(); } + /** * For internal use only. * @hidden @@ -55,11 +87,22 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); private native void cacheThisInstance(); + + private static native long create(); + private static native long create(@NonNull final Constructors other); + private static native long create(@NonNull final String foo, final long bar); + private static native long create(@NonNull final String input) throws Constructors.ConstructorExplodedException; + private static native long create(@NonNull final List input); + + + } + diff --git a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumWithAlias.java b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumWithAlias.java index af18b9b60d..fe56947339 100644 --- a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumWithAlias.java +++ b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumWithAlias.java @@ -1,14 +1,24 @@ /* + * */ + package com.example.smoke; + + public enum EnumWithAlias { ONE(2), TWO(3), THREE(4); + public final static EnumWithAlias FIRST = EnumWithAlias.ONE; public final static EnumWithAlias THE_BEST = EnumWithAlias.FIRST; + + /** + * @hidden + */ public final int value; + EnumWithAlias(final int value) { this.value = value; } diff --git a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/Enums.java b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/Enums.java index 2ae1f4e39d..e0e4541655 100644 --- a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/Enums.java +++ b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/Enums.java @@ -1,14 +1,22 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class Enums extends NativeBase { public enum SimpleEnum { FIRST(0), SECOND(1); + /** + * @hidden + */ public final int value; + SimpleEnum(final int value) { this.value = value; } @@ -16,7 +24,11 @@ public enum SimpleEnum { public enum InternalErrorCode { ERROR_NONE(0), ERROR_FATAL(999); + /** + * @hidden + */ public final int value; + InternalErrorCode(final int value) { this.value = value; } @@ -26,11 +38,16 @@ public static final class ErrorStruct { public Enums.InternalErrorCode type; @NonNull public String message; + public ErrorStruct(@NonNull final Enums.InternalErrorCode type, @NonNull final String message) { this.type = type; this.message = message; } + + } + + /** * For internal use only. * @hidden @@ -45,13 +62,31 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public static native Enums.SimpleEnum methodWithEnumeration(@NonNull final Enums.SimpleEnum input); + + + @NonNull public static native Enums.InternalErrorCode flipEnumValue(@NonNull final Enums.InternalErrorCode input); + + + @NonNull public static native Enums.InternalErrorCode extractEnumFromStruct(@NonNull final Enums.ErrorStruct input); + + + @NonNull public static native Enums.ErrorStruct createStructWithEnumInside(@NonNull final Enums.InternalErrorCode type, @NonNull final String message); + + + } + diff --git a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumsInTypeCollection.java b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumsInTypeCollection.java index 8f2e9c4fbd..9b1d07872a 100644 --- a/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumsInTypeCollection.java +++ b/gluecodium/src/test/resources/smoke/enums/output/android/com/example/smoke/EnumsInTypeCollection.java @@ -1,14 +1,25 @@ /* + * */ + package com.example.smoke; + + public final class EnumsInTypeCollection { public enum TCEnum { FIRST(0), SECOND(1); + /** + * @hidden + */ public final int value; + TCEnum(final int value) { this.value = value; } } + + } + diff --git a/gluecodium/src/test/resources/smoke/equatable/output/android/com/example/smoke/Equatable.java b/gluecodium/src/test/resources/smoke/equatable/output/android/com/example/smoke/Equatable.java index 3117c0e52f..04082993bc 100644 --- a/gluecodium/src/test/resources/smoke/equatable/output/android/com/example/smoke/Equatable.java +++ b/gluecodium/src/test/resources/smoke/equatable/output/android/com/example/smoke/Equatable.java @@ -1,16 +1,24 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.List; import java.util.Map; + public final class Equatable { public enum SomeEnum { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -31,6 +39,7 @@ public static final class EquatableStruct { public List arrayField; @NonNull public Map mapField; + public EquatableStruct(final boolean boolField, final int intField, final long longField, final float floatField, final double doubleField, @NonNull final String stringField, @NonNull final Equatable.NestedEquatableStruct structField, @NonNull final Equatable.SomeEnum enumField, @NonNull final List arrayField, @NonNull final Map mapField) { this.boolField = boolField; this.intField = intField; @@ -59,6 +68,7 @@ public boolean equals(Object obj) { java.util.Objects.equals(this.arrayField, other.arrayField) && java.util.Objects.equals(this.mapField, other.mapField); } + @Override public int hashCode() { int hash = 7; @@ -74,7 +84,11 @@ public int hashCode() { hash = 31 * hash + (this.mapField != null ? this.mapField.hashCode() : 0); return hash; } + + + } + public static final class EquatableNullableStruct { @Nullable public Boolean boolField; @@ -94,6 +108,7 @@ public static final class EquatableNullableStruct { public List arrayField; @Nullable public Map mapField; + public EquatableNullableStruct() { this.boolField = null; this.intField = null; @@ -120,6 +135,7 @@ public boolean equals(Object obj) { java.util.Objects.equals(this.arrayField, other.arrayField) && java.util.Objects.equals(this.mapField, other.mapField); } + @Override public int hashCode() { int hash = 7; @@ -134,10 +150,15 @@ public int hashCode() { hash = 31 * hash + (this.mapField != null ? this.mapField.hashCode() : 0); return hash; } + + + } + public static final class NestedEquatableStruct { @NonNull public String fooField; + public NestedEquatableStruct(@NonNull final String fooField) { this.fooField = fooField; } @@ -148,11 +169,19 @@ public boolean equals(Object obj) { final NestedEquatableStruct other = (NestedEquatableStruct) obj; return java.util.Objects.equals(this.fooField, other.fooField); } + @Override public int hashCode() { int hash = 7; hash = 31 * hash + (this.fooField != null ? this.fooField.hashCode() : 0); return hash; } + + + } + + + } + diff --git a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/Errors.java b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/Errors.java index 7eadea0768..760f37ced9 100644 --- a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/Errors.java +++ b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/Errors.java @@ -1,14 +1,22 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class Errors extends NativeBase { public enum InternalErrorCode { ERROR_NONE(0), ERROR_FATAL(1); + /** + * @hidden + */ public final int value; + InternalErrorCode(final int value) { this.value = value; } @@ -17,25 +25,46 @@ public enum ExternalErrors { NONE(0), BOOM(1), BUST(2); + /** + * @hidden + */ public final int value; + ExternalErrors(final int value) { this.value = value; } } public static final class InternalException extends Exception { + /** + * @hidden + * @param error The error. + */ public InternalException(final Errors.InternalErrorCode error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Errors.InternalErrorCode error; } public static final class ExternalException extends Exception { + /** + * @hidden + * @param error The error. + */ public ExternalException(final Errors.ExternalErrors error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Errors.ExternalErrors error; } + /** * For internal use only. * @hidden @@ -50,12 +79,33 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + public static native void methodWithErrors() throws Errors.InternalException; + + + public static native void methodWithExternalErrors() throws Errors.ExternalException; + + + @NonNull public static native String methodWithErrorsAndReturnValue() throws Errors.InternalException; + + + public static native void methodWithPayloadError() throws WithPayloadException; + + + @NonNull public static native String methodWithPayloadErrorAndReturnValue() throws WithPayloadException; + + + } + diff --git a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/ErrorsInterface.java b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/ErrorsInterface.java index 5906c6e4f6..e32a19f782 100644 --- a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/ErrorsInterface.java +++ b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/ErrorsInterface.java @@ -1,13 +1,21 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + public interface ErrorsInterface { public enum InternalError { ERROR_NONE(0), ERROR_FATAL(1); + /** + * @hidden + */ public final int value; + InternalError(final int value) { this.value = value; } @@ -16,34 +24,67 @@ public enum ExternalErrors { NONE(0), BOOM(1), BUST(2); + /** + * @hidden + */ public final int value; + ExternalErrors(final int value) { this.value = value; } } public static final class InternalException extends Exception { + /** + * @hidden + * @param error The error. + */ public InternalException(final ErrorsInterface.InternalError error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final ErrorsInterface.InternalError error; } public static final class ExternalException extends Exception { + /** + * @hidden + * @param error The error. + */ public ExternalException(final ErrorsInterface.ExternalErrors error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final ErrorsInterface.ExternalErrors error; } + + void methodWithErrors() throws ErrorsInterface.InternalException; + + void methodWithExternalErrors() throws ErrorsInterface.ExternalException; + + @NonNull String methodWithErrorsAndReturnValue() throws ErrorsInterface.InternalException; + + static void methodWithPayloadError() throws WithPayloadException { ErrorsInterfaceImpl.methodWithPayloadError(); } + + + @NonNull static String methodWithPayloadErrorAndReturnValue() throws WithPayloadException { return ErrorsInterfaceImpl.methodWithPayloadErrorAndReturnValue(); } + } + diff --git a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/SomeTypeCollection.java b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/SomeTypeCollection.java index 94523eee11..b083d41fdc 100644 --- a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/SomeTypeCollection.java +++ b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/SomeTypeCollection.java @@ -1,21 +1,40 @@ /* + * */ + package com.example.smoke; + + public final class SomeTypeCollection { public enum SomeTypeCollectionError { ERROR_A(0), ERROR_B(1); + /** + * @hidden + */ public final int value; + SomeTypeCollectionError(final int value) { this.value = value; } } public static final class SomeException extends Exception { + /** + * @hidden + * @param error The error. + */ public SomeException(final SomeTypeCollection.SomeTypeCollectionError error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final SomeTypeCollection.SomeTypeCollectionError error; } + + } + diff --git a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/WithPayloadException.java b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/WithPayloadException.java index ab29a2ae23..88631174a2 100644 --- a/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/WithPayloadException.java +++ b/gluecodium/src/test/resources/smoke/errors/output/android/com/example/smoke/WithPayloadException.java @@ -1,11 +1,23 @@ /* + * */ + package com.example.smoke; + + public final class WithPayloadException extends Exception { + /** + * @hidden + * @param error The error. + */ public WithPayloadException(final Payload error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Payload error; } diff --git a/gluecodium/src/test/resources/smoke/escaped_names/output/android/com/example/package/Types.java b/gluecodium/src/test/resources/smoke/escaped_names/output/android/com/example/package/Types.java index 429f1afa60..3dbdac6d80 100644 --- a/gluecodium/src/test/resources/smoke/escaped_names/output/android/com/example/package/Types.java +++ b/gluecodium/src/test/resources/smoke/escaped_names/output/android/com/example/package/Types.java @@ -1,29 +1,52 @@ /* + * */ + package com.example.package; + import android.support.annotation.NonNull; + public final class Types { public static final Types.Enum CONST = Types.Enum.NA_N; public enum Enum { NA_N(0); + /** + * @hidden + */ public final int value; + Enum(final int value) { this.value = value; } } public static final class ExceptionException extends Exception { + /** + * @hidden + * @param error The error. + */ public ExceptionException(final Types.Enum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final Types.Enum error; } public static final class Struct { @NonNull public Types.Enum null; + public Struct() { this.null = Types.Enum.NA_N; } + + } + + + } + diff --git a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/Enums.java b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/Enums.java index 661b09e9bf..14acc9ee34 100644 --- a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/Enums.java +++ b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/Enums.java @@ -1,14 +1,22 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class Enums extends NativeBase { public enum ExternalEnum { FOO_VALUE(0), BAR_VALUE(1); + /** + * @hidden + */ public final int value; + ExternalEnum(final int value) { this.value = value; } @@ -16,11 +24,16 @@ public enum ExternalEnum { public enum VeryExternalEnum { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + VeryExternalEnum(final int value) { this.value = value; } } + /** * For internal use only. * @hidden @@ -35,6 +48,15 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + public static native void methodWithExternalEnum(@NonNull final Enums.ExternalEnum input); + + + } + diff --git a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalClass.java b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalClass.java index cc0d11e74b..00de99255a 100644 --- a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalClass.java +++ b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalClass.java @@ -1,14 +1,21 @@ /* - * + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class ExternalClass extends NativeBase { public enum SomeEnum { SOME_VALUE(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -16,10 +23,15 @@ public enum SomeEnum { public static final class SomeStruct { @NonNull public String someField; + public SomeStruct(@NonNull final String someField) { this.someField = someField; } + + } + + /** * For internal use only. * @hidden @@ -34,8 +46,20 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + public native void someMethod(final byte someParameter); + + + @NonNull public native String getSomeProperty(); + + + } + diff --git a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalInterface.java b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalInterface.java index efa8615093..87c202daf5 100644 --- a/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalInterface.java +++ b/gluecodium/src/test/resources/smoke/external_types/output/android/com/example/smoke/ExternalInterface.java @@ -1,13 +1,20 @@ /* - * + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + public interface ExternalInterface { public enum SomeEnum { SOME_VALUE(0); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -15,11 +22,20 @@ public enum SomeEnum { public static final class SomeStruct { @NonNull public String someField; + public SomeStruct(@NonNull final String someField) { this.someField = someField; } + + } + + + void someMethod(final byte someParameter); + + @NonNull String getSomeProperty(); } + diff --git a/gluecodium/src/test/resources/smoke/generic_types/output/android/com/example/smoke/GenericTypesWithCompoundTypes.java b/gluecodium/src/test/resources/smoke/generic_types/output/android/com/example/smoke/GenericTypesWithCompoundTypes.java index 630a34b4f2..bfc4b614ac 100644 --- a/gluecodium/src/test/resources/smoke/generic_types/output/android/com/example/smoke/GenericTypesWithCompoundTypes.java +++ b/gluecodium/src/test/resources/smoke/generic_types/output/android/com/example/smoke/GenericTypesWithCompoundTypes.java @@ -1,18 +1,25 @@ /* - * + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; import java.util.List; import java.util.Map; import java.util.Set; + public final class GenericTypesWithCompoundTypes extends NativeBase { public enum SomeEnum { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -20,24 +27,37 @@ public enum SomeEnum { public enum ExternalEnum { ON(0), OFF(1); + /** + * @hidden + */ public final int value; + ExternalEnum(final int value) { this.value = value; } } public static final class BasicStruct { public double value; + public BasicStruct(final double value) { this.value = value; } + + } + public static final class ExternalStruct { @NonNull public String string; + public ExternalStruct(@NonNull final String string) { this.string = string; } + + } + + /** * For internal use only. * @hidden @@ -52,21 +72,51 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public native List methodWithStructList(@NonNull final List input); + + + @NonNull public native Map methodWithStructMap(@NonNull final Map input); + + + @NonNull public native List methodWithEnumList(@NonNull final List input); + + + @NonNull public native Map methodWithEnumMapKey(@NonNull final Map input); + + + @NonNull public native Map methodWithEnumMapValue(@NonNull final Map input); + + + @NonNull public native Set methodWithEnumSet(@NonNull final Set input); + + + @NonNull public native List methodWithInstancesList(@NonNull final List input); + + + @NonNull public native Map methodWithInstancesMap(@NonNull final Map input); + + + } + diff --git a/gluecodium/src/test/resources/smoke/name_rules/output/android/com/example/namerules/NAME_RULES_DROID.java b/gluecodium/src/test/resources/smoke/name_rules/output/android/com/example/namerules/NAME_RULES_DROID.java index 45badd1b3e..5d6d653f6f 100644 --- a/gluecodium/src/test/resources/smoke/name_rules/output/android/com/example/namerules/NAME_RULES_DROID.java +++ b/gluecodium/src/test/resources/smoke/name_rules/output/android/com/example/namerules/NAME_RULES_DROID.java @@ -1,37 +1,61 @@ /* + * */ + package com.example.namerules; + import com.example.NativeBase; import java.util.List; + public final class NAME_RULES_DROID extends NativeBase { public enum EXAMPLE_ERROR_CODE_DROID { NONE(0), FATAL(1); + /** + * @hidden + */ public final int value; + EXAMPLE_ERROR_CODE_DROID(final int value) { this.value = value; } } public static final class example_x extends Exception { + /** + * @hidden + * @param error The error. + */ public example_x(final NAME_RULES_DROID.EXAMPLE_ERROR_CODE_DROID error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final NAME_RULES_DROID.EXAMPLE_ERROR_CODE_DROID error; } public static final class EXAMPLE_STRUCT_DROID { public double j_value; public List j_int_value; + public EXAMPLE_STRUCT_DROID(final double j_value, final List j_int_value) { this.j_value = j_value; this.j_int_value = j_int_value; } + + } + + + + public NAME_RULES_DROID() { this(create(), (Object)null); cacheThisInstance(); } + /** * For internal use only. * @hidden @@ -46,14 +70,42 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); private native void cacheThisInstance(); + + private static native long create(); + + + public native double some_method(final NAME_RULES_DROID.EXAMPLE_STRUCT_DROID some_argument) throws NAME_RULES_DROID.example_x; + + + public native long loadIntProperty(); + + + public native void STORE_INT_PROPERTY(final long value); + + + public native boolean loadBooleanProperty(); + + + public native void STORE_BOOLEAN_PROPERTY(final boolean value); + + + public native NAME_RULES_DROID.EXAMPLE_STRUCT_DROID loadStructProperty(); + + + public native void STORE_STRUCT_PROPERTY(final NAME_RULES_DROID.EXAMPLE_STRUCT_DROID value); + + + } + diff --git a/gluecodium/src/test/resources/smoke/namespace_basic/output/android/com/example/foo/bar/NativeBase.java b/gluecodium/src/test/resources/smoke/namespace_basic/output/android/com/example/foo/bar/NativeBase.java index a79bae83f5..8db28947b7 100644 --- a/gluecodium/src/test/resources/smoke/namespace_basic/output/android/com/example/foo/bar/NativeBase.java +++ b/gluecodium/src/test/resources/smoke/namespace_basic/output/android/com/example/foo/bar/NativeBase.java @@ -16,7 +16,9 @@ * SPDX-License-Identifier: Apache-2.0 * License-Filename: LICENSE */ + package com.example.foo.bar; + import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; @@ -25,6 +27,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; + /** *

Internal base class for public non-POD objects to manage the lifecycle of underlying C++ objects. * While the class is public for technical reasons, but should be considered internal and not @@ -45,13 +48,17 @@ * So instead API designers should manually define methods if resource cleanup is necessary. */ public abstract class NativeBase { + private static final Logger LOGGER = Logger.getLogger(NativeBase.class.getName()); + // The set is to keep DisposableReference itself from being garbage-collected. // The set is backed by ConcurrentHashMap to make it thread-safe. private static final Set> REFERENCES = Collections.newSetFromMap(new ConcurrentHashMap, Boolean>()); + private static final ReferenceQueue REFERENCE_QUEUE = new ReferenceQueue<>(); private final long nativeHandle; + /** * This interface is used by subclasses to provide dispose functionality without * DisposableReference holding a reference to the instance of the subclass which would prevent @@ -62,9 +69,11 @@ public abstract class NativeBase { protected interface Disposer { void disposeNative(long handle); }; + private static class DisposableReference extends PhantomReference { private final long nativePointer; private final Disposer disposer; + private DisposableReference( final NativeBase disposable, final long nativePointer, final Disposer disposer) { super(disposable, REFERENCE_QUEUE); @@ -72,15 +81,23 @@ private DisposableReference( this.disposer = disposer; cleanUpQueue(); } + public void dispose() { REFERENCES.remove(this); disposer.disposeNative(nativePointer); } } + + /** + * @hidden + * @param nativeHandle The native handle + * @param disposer The disposer + */ protected NativeBase(final long nativeHandle, final Disposer disposer) { this.nativeHandle = nativeHandle; REFERENCES.add(new DisposableReference(this, nativeHandle, disposer)); } + private static void cleanUpQueue() { Reference reference; while ((reference = REFERENCE_QUEUE.poll()) != null) { @@ -92,4 +109,4 @@ private static void cleanUpQueue() { } } } -} \ No newline at end of file +} diff --git a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/FreeEnum.java b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/FreeEnum.java index 91dc8d8da8..c1d08c7313 100644 --- a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/FreeEnum.java +++ b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/FreeEnum.java @@ -1,12 +1,19 @@ /* - * + * */ + package com.example.smoke; + + public enum FreeEnum { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + FreeEnum(final int value) { this.value = value; } diff --git a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/LevelOne.java b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/LevelOne.java index eb6fdb8238..c40718ac49 100644 --- a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/LevelOne.java +++ b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/LevelOne.java @@ -1,15 +1,23 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class LevelOne extends NativeBase { public static final class LevelTwo extends NativeBase { public static final class LevelThree extends NativeBase { public enum LevelFourEnum { NONE(0); + /** + * @hidden + */ public final int value; + LevelFourEnum(final int value) { this.value = value; } @@ -18,12 +26,20 @@ public static final class LevelFour { public static final boolean FOO = false; @NonNull public String stringField; + public LevelFour(@NonNull final String stringField) { this.stringField = stringField; } + + + @NonNull public static native LevelOne.LevelTwo.LevelThree.LevelFour fooFactory(); + + } + + /** * For internal use only. * @hidden @@ -38,10 +54,20 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public native OuterInterface.InnerClass foo(@NonNull final OuterClass.InnerInterface input); + + + } + + /** * For internal use only. * @hidden @@ -56,8 +82,15 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + } + + /** * For internal use only. * @hidden @@ -72,5 +105,11 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + } + diff --git a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/OuterStruct.java b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/OuterStruct.java index dca36ccbdb..a0c395dde5 100644 --- a/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/OuterStruct.java +++ b/gluecodium/src/test/resources/smoke/nesting/output/android/com/example/smoke/OuterStruct.java @@ -1,7 +1,10 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; import java.util.Date; @@ -9,33 +12,54 @@ import java.util.Locale; import java.util.Map; import java.util.Set; + public final class OuterStruct { @NonNull public String field; public enum InnerEnum { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + InnerEnum(final int value) { this.value = value; } } public static final class InstantiationException extends Exception { + /** + * @hidden + * @param error The error. + */ public InstantiationException(final OuterStruct.InnerEnum error) { super(error.toString()); this.error = error; } + + /** + * @hidden + */ public final OuterStruct.InnerEnum error; } public static final class InnerStruct { @NonNull public List otherField; + public InnerStruct(@NonNull final List otherField) { this.otherField = otherField; } + + + public native void doSomething(); + + } + public static final class InnerClass extends NativeBase { + /** * For internal use only. * @hidden @@ -50,15 +74,28 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public native Set fooBar(); + + + } + public static final class Builder extends NativeBase { + + + public Builder() { this(create(), (Object)null); cacheThisInstance(); } + /** * For internal use only. * @hidden @@ -73,14 +110,27 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); private native void cacheThisInstance(); + + private static native long create(); + + + @NonNull public native OuterStruct.Builder field(@NonNull final String value); + + + @NonNull public native OuterStruct build(); + + + } + /** * @hidden */ @@ -93,10 +143,18 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public native Map barBaz(); + + } + /** * @hidden */ @@ -109,19 +167,40 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + public native void apply(); + + } + public interface InnerInterface { + + @NonNull Map barBaz(); } + @FunctionalInterface public interface InnerLambda { + + void apply(); } + + public OuterStruct(@NonNull final String field) { this.field = field; } + + + public native void doNothing() throws OuterStruct.InstantiationException; + + } + diff --git a/gluecodium/src/test/resources/smoke/nullable/output/android/com/example/smoke/Nullable.java b/gluecodium/src/test/resources/smoke/nullable/output/android/com/example/smoke/Nullable.java index 467accbc2d..19aa732148 100644 --- a/gluecodium/src/test/resources/smoke/nullable/output/android/com/example/smoke/Nullable.java +++ b/gluecodium/src/test/resources/smoke/nullable/output/android/com/example/smoke/Nullable.java @@ -1,17 +1,25 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.example.NativeBase; import java.util.List; import java.util.Map; + public final class Nullable extends NativeBase { public enum SomeEnum { ON(0), OFF(1); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } @@ -19,10 +27,14 @@ public enum SomeEnum { public static final class SomeStruct { @NonNull public String stringField; + public SomeStruct(@NonNull final String stringField) { this.stringField = stringField; } + + } + public static final class NullableStruct { @Nullable public String stringField; @@ -42,6 +54,7 @@ public static final class NullableStruct { public Map mapField; @Nullable public SomeInterface instanceField; + public NullableStruct() { this.stringField = null; this.boolField = null; @@ -53,7 +66,10 @@ public NullableStruct() { this.mapField = null; this.instanceField = null; } + + } + public static final class NullableIntsStruct { @Nullable public Byte int8Field; @@ -71,6 +87,7 @@ public static final class NullableIntsStruct { public Long uint32Field; @Nullable public Long uint64Field; + public NullableIntsStruct() { this.int8Field = null; this.int16Field = null; @@ -81,7 +98,11 @@ public NullableIntsStruct() { this.uint32Field = null; this.uint64Field = null; } + + } + + /** * For internal use only. * @hidden @@ -96,55 +117,151 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @Nullable public native String methodWithString(@Nullable final String input); + + + @Nullable public native Boolean methodWithBoolean(@Nullable final Boolean input); + + + @Nullable public native Double methodWithDouble(@Nullable final Double input); + + + @Nullable public native Long methodWithInt(@Nullable final Long input); + + + @Nullable public native Nullable.SomeStruct methodWithSomeStruct(@Nullable final Nullable.SomeStruct input); + + + @Nullable public native Nullable.SomeEnum methodWithSomeEnum(@Nullable final Nullable.SomeEnum input); + + + @Nullable public native List methodWithSomeArray(@Nullable final List input); + + + @Nullable public native List methodWithInlineArray(@Nullable final List input); + + + @Nullable public native Map methodWithSomeMap(@Nullable final Map input); + + + @Nullable public native SomeInterface methodWithInstance(@Nullable final SomeInterface input); + + + @Nullable public native String getStringProperty(); + + + public native void setStringProperty(@Nullable final String value); + + + @Nullable public native Boolean isBoolProperty(); + + + public native void setBoolProperty(@Nullable final Boolean value); + + + @Nullable public native Double getDoubleProperty(); + + + public native void setDoubleProperty(@Nullable final Double value); + + + @Nullable public native Long getIntProperty(); + + + public native void setIntProperty(@Nullable final Long value); + + + @Nullable public native Nullable.SomeStruct getStructProperty(); + + + public native void setStructProperty(@Nullable final Nullable.SomeStruct value); + + + @Nullable public native Nullable.SomeEnum getEnumProperty(); + + + public native void setEnumProperty(@Nullable final Nullable.SomeEnum value); + + + @Nullable public native List getArrayProperty(); + + + public native void setArrayProperty(@Nullable final List value); + + + @Nullable public native List getInlineArrayProperty(); + + + public native void setInlineArrayProperty(@Nullable final List value); + + + @Nullable public native Map getMapProperty(); + + + public native void setMapProperty(@Nullable final Map value); + + + @Nullable public native SomeInterface getInstanceProperty(); + + + public native void setInstanceProperty(@Nullable final SomeInterface value); + + + } + diff --git a/gluecodium/src/test/resources/smoke/platform_names/output/android/com/example/smoke/barTypes.java b/gluecodium/src/test/resources/smoke/platform_names/output/android/com/example/smoke/barTypes.java index 09b32d7d1f..8dc57f4520 100644 --- a/gluecodium/src/test/resources/smoke/platform_names/output/android/com/example/smoke/barTypes.java +++ b/gluecodium/src/test/resources/smoke/platform_names/output/android/com/example/smoke/barTypes.java @@ -1,12 +1,20 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; + public final class barTypes { public enum barEnum { bar_item(0); + /** + * @hidden + */ public final int value; + barEnum(final int value) { this.value = value; } @@ -14,10 +22,20 @@ public enum barEnum { public static final class barStruct { @NonNull public String BAR_FIELD; + + + public barStruct(@NonNull final String BarParameter) { barStruct _other = BarCreate(BarParameter); this.BAR_FIELD = _other.BAR_FIELD; } + private static native barStruct BarCreate(@NonNull final String BarParameter); + + } + + + } + diff --git a/gluecodium/src/test/resources/smoke/properties/output/android/com/example/smoke/Properties.java b/gluecodium/src/test/resources/smoke/properties/output/android/com/example/smoke/Properties.java index a9eb3943ab..1075f82344 100644 --- a/gluecodium/src/test/resources/smoke/properties/output/android/com/example/smoke/Properties.java +++ b/gluecodium/src/test/resources/smoke/properties/output/android/com/example/smoke/Properties.java @@ -1,25 +1,38 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; import java.util.List; + public final class Properties extends NativeBase { public enum InternalErrorCode { ERROR_NONE(0), ERROR_FATAL(999); + /** + * @hidden + */ public final int value; + InternalErrorCode(final int value) { this.value = value; } } public static final class ExampleStruct { public double value; + public ExampleStruct(final double value) { this.value = value; } + + } + + /** * For internal use only. * @hidden @@ -34,30 +47,90 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + public native long getBuiltInTypeProperty(); + + + public native void setBuiltInTypeProperty(final long value); + + + public native float getReadonlyProperty(); + + + @NonNull public native Properties.ExampleStruct getStructProperty(); + + + public native void setStructProperty(@NonNull final Properties.ExampleStruct value); + + + @NonNull public native List getArrayProperty(); + + + public native void setArrayProperty(@NonNull final List value); + + + @NonNull public native Properties.InternalErrorCode getComplexTypeProperty(); + + + public native void setComplexTypeProperty(@NonNull final Properties.InternalErrorCode value); + + + @NonNull public native byte[] getByteBufferProperty(); + + + public native void setByteBufferProperty(@NonNull final byte[] value); + + + @NonNull public native PropertiesInterface getInstanceProperty(); + + + public native void setInstanceProperty(@NonNull final PropertiesInterface value); + + + public native boolean isBooleanProperty(); + + + public native void setBooleanProperty(final boolean value); + + + @NonNull public static native String getStaticProperty(); + + + public static native void setStaticProperty(@NonNull final String value); + + + @NonNull public static native Properties.ExampleStruct getStaticReadonlyProperty(); + + + } + diff --git a/gluecodium/src/test/resources/smoke/serialization/output/android/com/example/smoke/Serialization.java b/gluecodium/src/test/resources/smoke/serialization/output/android/com/example/smoke/Serialization.java index 0307a3dc32..5273671002 100644 --- a/gluecodium/src/test/resources/smoke/serialization/output/android/com/example/smoke/Serialization.java +++ b/gluecodium/src/test/resources/smoke/serialization/output/android/com/example/smoke/Serialization.java @@ -1,7 +1,10 @@ /* + * */ + package com.example.smoke; + import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.NonNull; @@ -12,24 +15,32 @@ import java.util.List; import java.util.Map; import java.util.Set; + public final class Serialization { public enum SomeEnum { FOO(0), BAR(7); + /** + * @hidden + */ public final int value; + SomeEnum(final int value) { this.value = value; } } public static final class SerializableStruct implements Parcelable { public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public SerializableStruct createFromParcel(final Parcel in_parcel) { return new SerializableStruct(in_parcel); } + public SerializableStruct[] newArray(final int size) { return new SerializableStruct[size]; } }; + public boolean boolField; public byte byteField; public short shortField; @@ -55,6 +66,7 @@ public SerializableStruct[] newArray(final int size) { public Set enumSetField; @NonNull public Serialization.SomeEnum enumField; + public SerializableStruct(final boolean boolField, final byte byteField, final short shortField, final int intField, final long longField, final float floatField, final double doubleField, @NonNull final String stringField, @NonNull final Serialization.NestedSerializableStruct structField, @NonNull final byte[] byteBufferField, @NonNull final List arrayField, @NonNull final List structArrayField, @NonNull final Map mapField, @NonNull final Set setField, @NonNull final Set enumSetField, @NonNull final Serialization.SomeEnum enumField) { this.boolField = boolField; this.byteField = byteField; @@ -98,10 +110,12 @@ private SerializableStruct(final Parcel in_parcel) { this.enumSetField = EnumSet.copyOf(__enumSetField); this.enumField = Serialization.SomeEnum.values()[in_parcel.readInt()]; } + @Override public int describeContents() { return 0; } + @Override public void writeToParcel(final Parcel out_parcel, final int flags) { out_parcel.writeByte((byte)(boolField ? 1 : 0)); @@ -121,31 +135,50 @@ public void writeToParcel(final Parcel out_parcel, final int flags) { out_parcel.writeList(java.util.Arrays.asList(enumSetField.toArray())); out_parcel.writeInt(enumField.ordinal()); } + + + + } + public static final class NestedSerializableStruct implements Parcelable { public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public NestedSerializableStruct createFromParcel(final Parcel in_parcel) { return new NestedSerializableStruct(in_parcel); } + public NestedSerializableStruct[] newArray(final int size) { return new NestedSerializableStruct[size]; } }; + @NonNull public String someField; + public NestedSerializableStruct(@NonNull final String someField) { this.someField = someField; } private NestedSerializableStruct(final Parcel in_parcel) { this.someField = in_parcel.readString(); } + @Override public int describeContents() { return 0; } + @Override public void writeToParcel(final Parcel out_parcel, final int flags) { out_parcel.writeString(someField); } + + + + } + + + } + diff --git a/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorAutoTag.java b/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorAutoTag.java index ee0a8312ae..22786a8180 100644 --- a/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorAutoTag.java +++ b/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorAutoTag.java @@ -1,11 +1,19 @@ /* + * */ + package com.example.smoke; + + public enum SkipEnumeratorAutoTag { ONE(0), THREE(1); + /** + * @hidden + */ public final int value; + SkipEnumeratorAutoTag(final int value) { this.value = value; } diff --git a/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorExplicitTag.java b/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorExplicitTag.java index 950968dd7a..3e099baf7f 100644 --- a/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorExplicitTag.java +++ b/gluecodium/src/test/resources/smoke/skip/output/android/com/example/smoke/SkipEnumeratorExplicitTag.java @@ -1,12 +1,20 @@ /* + * */ + package com.example.smoke; + + public enum SkipEnumeratorExplicitTag { ZERO(0), ONE(3), THREE(4); + /** + * @hidden + */ public final int value; + SkipEnumeratorExplicitTag(final int value) { this.value = value; } diff --git a/gluecodium/src/test/resources/smoke/structs/output/android/com/example/smoke/Structs.java b/gluecodium/src/test/resources/smoke/structs/output/android/com/example/smoke/Structs.java index 21c54da713..a8604600db 100644 --- a/gluecodium/src/test/resources/smoke/structs/output/android/com/example/smoke/Structs.java +++ b/gluecodium/src/test/resources/smoke/structs/output/android/com/example/smoke/Structs.java @@ -1,15 +1,23 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; import java.util.List; + public final class Structs extends NativeBase { public enum FooBar { FOO(0), BAR(1); + /** + * @hidden + */ public final int value; + FooBar(final int value) { this.value = value; } @@ -17,21 +25,29 @@ public enum FooBar { public static final class Point { public double x; public double y; + public Point(final double x, final double y) { this.x = x; this.y = y; } + + } + public static final class Line { @NonNull public Structs.Point a; @NonNull public Structs.Point b; + public Line(@NonNull final Structs.Point a, @NonNull final Structs.Point b) { this.a = a; this.b = b; } + + } + public static final class AllTypesStruct { public final byte int8Field; public final short uint8Field; @@ -50,6 +66,7 @@ public static final class AllTypesStruct { public final byte[] bytesField; @NonNull public final Structs.Point pointField; + public AllTypesStruct(final byte int8Field, final short uint8Field, final short int16Field, final int uint16Field, final int int32Field, final long uint32Field, final long int64Field, final long uint64Field, final float floatField, final double doubleField, @NonNull final String stringField, final boolean booleanField, @NonNull final byte[] bytesField, @NonNull final Structs.Point pointField) { this.int8Field = int8Field; this.uint8Field = uint8Field; @@ -66,42 +83,66 @@ public AllTypesStruct(final byte int8Field, final short uint8Field, final short this.bytesField = bytesField; this.pointField = pointField; } + + } + public static final class NestingImmutableStruct { @NonNull public Structs.AllTypesStruct structField; + public NestingImmutableStruct(@NonNull final Structs.AllTypesStruct structField) { this.structField = structField; } + + } + public static final class DoubleNestingImmutableStruct { @NonNull public Structs.NestingImmutableStruct nestingStructField; + public DoubleNestingImmutableStruct(@NonNull final Structs.NestingImmutableStruct nestingStructField) { this.nestingStructField = nestingStructField; } + + } + public static final class StructWithArrayOfImmutable { @NonNull public List arrayField; + public StructWithArrayOfImmutable(@NonNull final List arrayField) { this.arrayField = arrayField; } + + } + public static final class ImmutableStructWithCppAccessors { @NonNull public final String stringField; + public ImmutableStructWithCppAccessors(@NonNull final String stringField) { this.stringField = stringField; } + + } + public static final class MutableStructWithCppAccessors { @NonNull public String stringField; + public MutableStructWithCppAccessors(@NonNull final String stringField) { this.stringField = stringField; } + + } + + /** * For internal use only. * @hidden @@ -116,13 +157,31 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull public static native Structs.Point swapPointCoordinates(@NonNull final Structs.Point input); + + + @NonNull public static native Structs.AllTypesStruct returnAllTypesStruct(@NonNull final Structs.AllTypesStruct input); + + + @NonNull public static native TypeCollection.Point createPoint(final double x, final double y); + + + @NonNull public static native TypeCollection.AllTypesStruct modifyAllTypesStruct(@NonNull final TypeCollection.AllTypesStruct input); + + + } + diff --git a/gluecodium/src/test/resources/smoke/visibility_attribute/output/android/com/example/smoke/PublicClass.java b/gluecodium/src/test/resources/smoke/visibility_attribute/output/android/com/example/smoke/PublicClass.java index 7b91e878cc..d0fb7e99f5 100644 --- a/gluecodium/src/test/resources/smoke/visibility_attribute/output/android/com/example/smoke/PublicClass.java +++ b/gluecodium/src/test/resources/smoke/visibility_attribute/output/android/com/example/smoke/PublicClass.java @@ -1,14 +1,22 @@ /* + * */ + package com.example.smoke; + import android.support.annotation.NonNull; import com.example.NativeBase; + public final class PublicClass extends NativeBase { enum InternalEnum { FOO(0), BAR(1); + /** + * @hidden + */ final int value; + InternalEnum(final int value) { this.value = value; } @@ -16,26 +24,39 @@ enum InternalEnum { static final class InternalStruct { @NonNull public String stringField; + InternalStruct(@NonNull final String stringField) { this.stringField = stringField; } + + } + public static final class PublicStruct { @NonNull PublicClass.InternalStruct internalField; + PublicStruct(@NonNull final PublicClass.InternalStruct internalField) { this.internalField = internalField; } + + } + public static final class PublicStructWithInternalDefaults { @NonNull String internalField; public float publicField; + public PublicStructWithInternalDefaults(final float publicField) { this.internalField = "foo"; this.publicField = publicField; } + + } + + /** * For internal use only. * @hidden @@ -50,10 +71,25 @@ public void disposeNative(long handle) { } }); } + private static native void disposeNativeHandle(long nativeHandle); + + + + @NonNull native PublicClass.InternalStruct internalMethod(@NonNull final PublicClass.InternalStruct input); + + + @NonNull native PublicClass.InternalStruct getInternalStructProperty(); + + + native void setInternalStructProperty(@NonNull final PublicClass.InternalStruct value); + + + } +