Linguaggio

AbstractPreferences.Node(String) Metodo

Definizione

Implementa il node metodo in base alla specifica in Preferences#node(String).

[Android.Runtime.Register("node", "(Ljava/lang/String;)Ljava/util/prefs/Preferences;", "GetNode_Ljava_lang_String_Handler")]
public override Java.Util.Prefs.Preferences? Node(string? path);
[<Android.Runtime.Register("node", "(Ljava/lang/String;)Ljava/util/prefs/Preferences;", "GetNode_Ljava_lang_String_Handler")>]
override this.Node : string -> Java.Util.Prefs.Preferences

Parametri

path
String

nome del percorso del nodo preferenza da restituire.

Valori restituiti

nodo preferenza specificato.

Attributi

Commenti

Implementa il node metodo in base alla specifica in Preferences#node(String).

Questa implementazione ottiene il blocco del nodo preferenza e verifica che il nodo non sia stato rimosso. Se path è "", viene restituito questo nodo; se path è "/", viene restituita la radice del nodo. Se il primo carattere in path non '/'è , l'implementazione suddivide path i token e attraversa in modo ricorsivo il percorso da questo nodo al nodo denominato, "utilizzando" un nome e una barra da path ogni passaggio dell'attraversamento. In ogni passaggio, il nodo corrente è bloccato e la cache figlio del nodo viene verificata per il nodo denominato. Se non viene trovato, il nome viene controllato per assicurarsi che la lunghezza non superi MAX_NAME_LENGTH. Viene quindi richiamato il #childSpi(String) metodo e il risultato archiviato nella cache figlio di questo nodo. Se il campo dell'oggetto appena creato Preferences è #newNode e sono presenti listener di modifiche del true nodo, viene accodato un evento di notifica per l'elaborazione da parte del thread di invio dell'evento.

Quando non sono presenti più token, l'ultimo valore trovato nella cache figlio o restituito da childSpi viene restituito da questo metodo. Se durante l'attraversamento, due "/" token si verificano consecutivamente o il token finale è "/" (anziché un nome), viene generata un'eccezione appropriata IllegalArgumentException .

Se il primo carattere di è path (che indica un nome di percorso assoluto) il blocco del nodo preferenza viene eliminato prima di '/' suddividere path i token e questo metodo attraversa in modo ricorsivo il percorso a partire dalla radice (anziché a partire da questo nodo). L'attraversamento è altrimenti identico a quello descritto per i nomi di percorso relativi. Eliminare il blocco in questo nodo prima di modificare l'attraversamento nel nodo radice è essenziale per evitare la possibilità di deadlock, in base a #lock locking invariant.

per java.util.prefs.AbstractPreferences.node(java.lang.String).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a