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

com.memority.domino.shared.api.sync.SyncAction Maven / Gradle / Ivy

Go to download

This artifact provides the API classes that are necessary to implement synchronization configuration Rules on the Memority IM platform.

There is a newer version: 3.43.1
Show newest version
/*
 * Copyright (c) 2016-2023 Memority. All Rights Reserved.
 *
 * This file is part of Memority Domino API , a Memority project.
 *
 * This file is released under the Memority Public Artifacts End-User License Agreement,
 * see 
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 */
package com.memority.domino.shared.api.sync;

import com.memority.domino.shared.api.XmlConstants;

import javax.xml.bind.annotation.XmlType;

/**
 * Possible synchronization actions following synchronization situations (see {@link SyncSituation}).
 *
 * @see SyncSituation
 */
@XmlType(name = XmlConstants.NAME_TYPE_SYNCACTION)
public enum SyncAction {

    // Do nothing
    NO_OP,

    CUSTOM,

    /*
     * Actions targeting the IDM object
     */
    SYNCHRONIZE_IDM_OBJECT(true),

    ADD_IDM_OBJECT(true),

    DELETE_IDM_OBJECT(true),

    SOFT_DELETE_IDM_OBJECT(true),

    INACTIVATE_IDM_OBJECT(true),

    /*
     * Actions targeting the remote Application object
     */
    // This is a rare case, where we want to recreate an account that was accidentally deleted. Would "SYNCHRONIZE" do the job?
    ADD_APPLICATION_OBJECT,

    DELETE_APPLICATION_OBJECT,

    INACTIVATE_APPLICATION_OBJECT,

    LOCK_APPLICATION_OBJECT,

    IGNORE_APPLICATION_OBJECT,

    UNIGNORE_APPLICATION_OBJECT,

    /*
     * "Meta" Actions that may have further consequences on objects
     */
    // Imply "SYNCHRONIZE_IDM_OBJECT"
    LINK,

    UNLINK,

    ;

    private final boolean async;

    SyncAction() {
        this(false);
    }

    SyncAction(boolean async) {
        this.async = async;
    }

    /**
     * Indicates whether or not this action is performed asynchronously. Useful to orchestrate the
     * execution of actions on a object.
     *
     * @return true if execution is asynchronous, false otherwise
     */
    public boolean isAsync() {
        return async;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy