صادر کردن ثابت‌ها

در مواردی که یک میانای کاربر با جاوا سازگار نیست (مثلاً چون از اتحادیه‌ها استفاده می‌کند)، ممکن است همچنان مطلوب باشد که ثابت‌ها (مقادیر شمارشی) به دنیای جاوا صادر شوند. این سناریو توسط hidl-gen -Ljava-constants … پشتیبانی می‌شود که اعلامیه‌های شمارشی حاشیه‌گذاری‌شده را از فایل(های) میانای در بسته استخراج می‌کند و کتابخانه جاوا با نام [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants تولید می‌کند. هر اعلان شمارشی را که باید صادر شود به‌صورت زیر حاشیه‌نویسی کنید:

@export
enum Foo : int32_t {
  SOME_VALUE,
  SOME_OTHER_VALUE,
};

درصورت لزوم، نامی که این نوع تحت آن به دنیای Java صادر می‌شود می‌تواند با نام انتخاب‌شده در بیانیه میانای با افزودن پارامتر گزارمان name متفاوت باشد:

@export(name="JavaFoo")
enum Foo : int32_t {
  SOME_VALUE,
  SOME_OTHER_VALUE,
};

اگر قراردادهای Java یا اولویت شخصی ایجاب می‌کند که پیشوند مشترکی به مقادیر نوع enum اضافه شود، از پارامتر حاشیه‌نویسی 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,
};

کلاس Java حاصل به‌صورت زیر ظاهر می‌شود:

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;
  };
};

درنهایت، اعلان نوع Java برای انواع enum اعلام‌شده در types.hal در کلاس Constants در بسته ارائه‌شده گروه‌بندی می‌شود. انواع شمارشی که به‌عنوان فرزندان یک میان‌کار اعلام می‌شوند در زیر اعلام کلاس Java آن میان‌کار گروه‌بندی می‌شوند.