com.memority.citadel.shared.api.im.DisableAttributeDependenciesTracking Maven / Gradle / Ivy
Show all versions of citadel-api Show documentation
/*
* Copyright (c) 2016-2023 Memority. All Rights Reserved.
*
* This file is part of Memority Citadel 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.citadel.shared.api.im;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* This annotation is dedicated to Groovy scripts.
*
* In a perfect world this annotation should never be needed. Only very dubious Groovy scripts may require its usage,
* where circular dependencies need to be broken so that a DataSet can be imported. The presence of circular dependencies
* is intrinsically wrong, but it may happen with legacy Rules designed before the attribute tracking mechanism was put
* in place.
*
* When this annotation is put on a Groovy script, no attribute tracking is performed, meaning the Rule's attributes are
* simply ignored. As a consequence no attribute type inference can occur, and the script must explicitly define the
* type of all the object's attributes present in the script.
*
* @see DependsOnAttributes
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PACKAGE)
public @interface DisableAttributeDependenciesTracking {
String[] value();
}