InvocationLocal

public class InvocationLocal
extends Object

java.lang.Object
com.android.tradefed.invoker.logger.InvocationLocal<T>


Cette classe fournit des variables de portée d'appel.

Le mécanisme fonctionne de la même manière que ThreadLocal . Ces variables diffèrent de leurs homologues normales dans la mesure où le code dans un appel qui y accède (via sa méthode get ) possède sa propre copie initialisée indépendamment de la variable. Les instances InvocationLocal sont généralement des champs statiques privés dans des classes qui souhaitent associer un état à une invocation.

Chaque appel est associé à une copie d'une variable de portée d'appel tant que l'appel est en cours et que l'instance InvocationLocal est accessible. Une fois un appel terminé, toutes ses copies d'instances locales d'appel sont soumises au garbage collection (sauf si d'autres références à ces copies existent).

Notez que contrairement aux instances ThreadLocal qui ne sont plus référencées alors que l'invocation est toujours en cours, elles ne sont pas récupérées. La création d'instances locales ou non statiques n'est donc pas recommandée car elles pourraient croître sans limite.

Avertissement : utilisez cette classe avec parcimonie, car les variables locales d'invocation sont des variables globales glorifiées présentant bon nombre des mêmes pièges.

Résumé

Constructeurs publics

InvocationLocal ()

Méthodes publiques

final T get ()

Renvoie la copie de l'invocation en cours d'exécution de cette variable locale d'invocation.

Méthodes protégées

T initialValue ()

Renvoie la « valeur initiale » de l’appel actuel pour cette variable locale d’appel.

Constructeurs publics

InvocationLocal

public InvocationLocal ()

Méthodes publiques

obtenir

public final T get ()

Renvoie la copie de l'invocation en cours d'exécution de cette variable locale d'invocation. Si la variable n'a aucune valeur pour l'invocation en cours, elle est d'abord initialisée à la valeur renvoyée par un appel à la méthode initialValue() .

Retour
T la copie de l'invocation en cours d'exécution de cet invocation-local.

Méthodes protégées

valeur initiale

protected T initialValue ()

Renvoie la « valeur initiale » de l’appel actuel pour cette variable locale d’appel. Cette méthode sera invoquée lors du premier time code exécuté dans le contexte de l'invocation qui accède à la variable avec la méthode get() . Il est garanti que cette méthode sera invoquée au plus une fois par appel.

Cette implémentation renvoie simplement null mais peut être modifiée en sous-classant InvocationLocal et en remplaçant cette méthode.

Retour
T la valeur initiale de cette variable de portée d'appel