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

io.aeon.experiment.mixture.HLoadSmart Maven / Gradle / Ivy

The newest version!
package io.aeon.experiment.mixture;

import io.horizon.specification.modeler.HAtom;
import io.vertx.up.extension.pointer.PluginExtension;
import io.horizon.uca.cache.Cc;

import java.util.Objects;

/**
 * @author Lang
 */
public class HLoadSmart implements HLoad {
    private static final Cc CC_NORM = Cc.openThread();

    private final transient HLoad loader;

    public HLoadSmart() {
        this.loader = CC_NORM.pick(HLoadNorm::new, HLoadNorm.class.getName());
    }

    @Override
    public HAtom atom(final String appName, final String identifier) {
        /*
         * Load Sequence calculation
         *
         * 1. after = true
         *    HLoadNorm -> extension loader
         * 2. after = false
         *    extension loader -> HLoadNorm
         */
        // Default Situation
        // Static
        HAtom atom = this.loader.atom(appName, identifier);
        if (Objects.isNull(atom)) {
            // Dynamic
            atom = PluginExtension.Loader.atom(appName, identifier);
        }
        return atom;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy