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

org.zodiac.plugin.support.PluginOperatorInfo Maven / Gradle / Ivy

There is a newer version: 1.6.8
Show newest version
package org.zodiac.plugin.support;

import java.util.concurrent.atomic.AtomicBoolean;

/**
 * 操作插件信息。为了解决连续上传安装后停止后无法启动的问题。
 *
 */
public class PluginOperatorInfo {

    /**
     * 当前操作类型
     */
    private OperatorType operatorType;

    /**
     * 是否锁定。如果锁定, 则不允许更新操作类型。 该参数主要解决在安装插件时 setOperatorType 一次操作类型,但是它又调用了启动插件,而启动插件也要 setOperatorType 一次操作类型 所以, 使用该参数,
     * 用于在安装插件时, 锁定 setOperatorType, 在启动时就无法再 setOperatorType 了, 就不会覆盖该值
     */
    private final AtomicBoolean isLock = new AtomicBoolean(false);

    /**
     * 设置操作类型
     * 
     * @param operatorType
     *            操作类型
     */
    public void setOperatorType(OperatorType operatorType) {
        if (operatorType != null && !isLock.get()) {
            // 如果锁定了, 则不能更新操作类型
            this.operatorType = operatorType;
        }
    }

    /**
     * 主要用于锁定或者解锁。
     * 
     * @param isLock
     *            是否锁定。true 锁定, false 解锁
     */
    public void setLock(boolean isLock) {
        this.isLock.set(isLock);
    }

    public OperatorType getOperatorType() {
        return operatorType;
    }

    /**
     * 操作类型
     */
    public enum OperatorType {
        /**
         * 启动插件
         */
        START,

        /**
         * 安装插件
         */
        INSTALL,
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy