যে ক্ষেত্রে একটি ইন্টারফেস জাভা-সামঞ্জস্যপূর্ণ নয় (কারণ এটি উদাহরণস্বরূপ ইউনিয়ন ব্যবহার করে) তখনও জাভা বিশ্বে ধ্রুবক (এনাম মান) রপ্তানি করা বাঞ্ছনীয় হতে পারে। এই দৃশ্যটি hidl-gen -Ljava-constants …
যা একটি প্যাকেজের ইন্টারফেস ফাইল(গুলি) থেকে টীকাযুক্ত enum ঘোষণাগুলি বের করে এবং [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants
নামে একটি জাভা লাইব্রেরি তৈরি করে . নিম্নলিখিত হিসাবে রপ্তানি করা প্রতিটি enum ঘোষণা টীকা করুন:
@export enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
প্রয়োজনে, যে নামটির অধীনে এই ধরনের জাভা বিশ্বে রপ্তানি করা হয় তা টীকা-প্যারামিটার name
যোগ করে ইন্টারফেস ঘোষণায় নির্বাচিত নাম থেকে ভিন্ন হতে পারে:
@export(name="JavaFoo") enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
যদি জাভা কনভেনশন বা ব্যক্তিগত পছন্দ এনাম টাইপের মানগুলিতে একটি সাধারণ উপসর্গ যোগ করতে বলে, তাহলে টীকা-প্যারামিটার value_prefix
ব্যবহার করুন:
// File "types.hal". package android.hardware.bar@1.0; @export(name="JavaFoo", value_prefix="JAVA_") enum Foo : int32_t { SOME_VALUE, SOME_OTHER_VALUE, };
ফলস্বরূপ জাভা ক্লাস নিম্নরূপ প্রদর্শিত হয়:
package android.hardware.bar.V1_0; public class Constants { public final class JavaFoo { public static final int JAVA_SOME_VALUE = 0; public static final int JAVA_SOME_OTHER_VALUE = 1; }; };
অবশেষে, types.hal
এ ঘোষিত enum প্রকারের জন্য জাভা টাইপ ডিক্লেয়ারেশন প্রদত্ত প্যাকেজে একটি ক্লাস Constants
মধ্যে গোষ্ঠীভুক্ত করা হয়েছে। একটি ইন্টারফেসের শিশু হিসাবে ঘোষিত Enum প্রকারগুলিকে সেই ইন্টারফেসের জাভা ক্লাস ঘোষণার অধীনে গোষ্ঠীভুক্ত করা হয়।