//
// This file was generated by //third_party/jni_zero/jni_zero.py
//
package org.jni_zero;

import javax.annotation.processing.Generated;
import org.jni_zero.CheckDiscard;
import org.jni_zero.GEN_JNI;
import org.jni_zero.JniTestInstanceHolder;
import org.jni_zero.SampleUniqueAnnotations;
import org.jni_zero.internal.NullUnmarked;
import org.jni_zero.internal.Nullable;

@CheckDiscard("crbug.com/993421")
@Generated("JNI Zero")
@SuppressWarnings({"rawtypes", "unchecked"})
@NullUnmarked
class SampleUniqueAnnotationsJni implements SampleUniqueAnnotations.Natives {
  private static @Nullable JniTestInstanceHolder sOverride;

  public static SampleUniqueAnnotations.Natives get() {
    JniTestInstanceHolder holder = sOverride;
    if (holder != null && holder.value != null) {
      return (SampleUniqueAnnotations.Natives) holder.value;
    }
    return new SampleUniqueAnnotationsJni();
  }

  public static void setInstanceForTesting(SampleUniqueAnnotations.Natives impl) {
    if (sOverride == null) {
      sOverride = JniTestInstanceHolder.create();
    }
    sOverride.value = impl;
  }


  @Override
  public int bar(int x, int y) {
    return (int) GEN_JNI.org_jni_1zero_SampleUniqueAnnotations_bar(x, y);
  }

  @Override
  public void baz(SampleUniqueAnnotations.Handle handle) {
    assert handle != null : "Parameter \"handle\" was null. Add @Nullable to it?";
    GEN_JNI.org_jni_1zero_SampleUniqueAnnotations_baz(handle);
  }

  @Override
  public void foo(long nativePtr, String arg) {
    assert nativePtr != 0;
    GEN_JNI.org_jni_1zero_SampleUniqueAnnotations_foo(nativePtr, arg);
  }
}
