package org.hcjf.layers;

import java.lang.reflect.InvocationHandler;

/**
 * @author javaito
 *
 */
public interface LayerInterface extends InvocationHandler {

    /**
     * Return the layer implementation name.
     * @return Layer implementation name.
     */
    String getImplName();

    /**
     * Returns true if the layer is stateful or false in the otherwise.
     * @return Stateful
     */
    boolean isStateful();

    /**
     * Returns true if the layer is a plugin or false in the otherwise.
     * @return Plugin status.
     */
    boolean isPlugin();

}

@@ -19,16 +19,70 @@
 ayers;%0A%0A
+import org.hcjf.layers.distributed.DistributedLayer;%0A%0A
 import j
@@ -621,10 +621,325 @@
 gin();%0A%0A
+    /**%0A     * Returns true if the layer implementation is instance of %7B@link DistributedLayer%7D.%0A     * @return True if the layer implementation is instance of %7B@link DistributedLayer%7D and false in the otherwise.%0A     */%0A    default boolean isDistributed() %7B%0A        return this instanceof DistributedLayer;%0A    %7D%0A%0A
 %7D%0A

Add in the layer interface the capability of knows if the implementation is distributed or not.