パブリックインターフェイスibaseはandroid.os.ihwinterfaceを拡張します{
    public static final string kinterfacename = "android.hidl.base@1.0 :: ibase";

    public static ibase asinterface（android.os.ihwbinderバインダー）{
        if（binder == null）{
            nullを返します。
        }

        android.os.ihwinterface iface = binder.querylocalinterface（kinterfaceName）;
        if（iface！= null && iface instance of ibase）{
            return（ibase）iface;
        }

        ibase proxy = new ibase.proxy（バインダー）;
        試す {
            Java.util.iterator <String> Decriptoritator = Proxy.InterfaceChain（）。iterator（）;
            while（descriptoriterator.hasnext（））{
                string descriptor = descriptoriterator.next（）;
                if（descriptor.equals（kinterfaceName））{
                    プロキシを返します。
                }
            }
        } catch（android.os.remoteexception e）{
            nullを返します。
        }

        nullを返します。
    }

    public static ibase castfrom（android.os.ihwinterface iface）{
        if（iface == null）{
            nullを返します。
        }

        AsInterface（iface.asbinder（））を返します。
    }
}
public interface IBase extends android.os.IHwInterface {
    public static final String kInterfaceName = "android.hidl.base@1.0::IBase";

    public static IBase asInterface(android.os.IHwBinder binder) {
        if (binder == null) {
            return null;
        }

        android.os.IHwInterface iface = binder.queryLocalInterface(kInterfaceName);
        if (iface != null && iface instanceof IBase) {
            return (IBase) iface;
        }

        IBase proxy = new IBase.Proxy(binder);
        try {
            java.util.Iterator<String> descriptorIterator = proxy.interfaceChain().iterator();
            while (descriptorIterator.hasNext()) {
                String descriptor = descriptorIterator.next();
                if (descriptor.equals(kInterfaceName)) {
                    return proxy;
                }
            }
        } catch (android.os.RemoteException e) {
            return null;
        }

        return null;
    }

    public static IBase castFrom(android.os.IHwInterface iface) {
        if (iface == null) {
            return null;
        }

        return asInterface(iface.asBinder());
    }
}