All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.up.atom.container.VInstance Maven / Gradle / Ivy

The newest version!
package io.vertx.up.atom.container;

import io.horizon.uca.cache.Cc;

import java.lang.reflect.Proxy;

public class VInstance {

    private static final Cc, VInstance> CC_V_INSTANCE = Cc.open();
    private transient final Class interfaceCls;

    private VInstance(final Class interfaceCls) {
        this.interfaceCls = interfaceCls;
    }

    public static VInstance create(final Class interfaceCls) {
        return CC_V_INSTANCE.pick(() -> new VInstance(interfaceCls), interfaceCls);
        // return Fn.po?l(V_POOL, interfaceCls, () -> new VInstance(interfaceCls));
    }

    @SuppressWarnings("unchecked")
    public  T proxy() {
        final Class[] interfaces = new Class[]{this.interfaceCls};
        return (T) Proxy.newProxyInstance(this.interfaceCls.getClassLoader(), interfaces, new VInvoker());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy