Package org.apache.logging.log4j.spi
Class DefaultThreadContextStack
- java.lang.Object
-
- org.apache.logging.log4j.spi.DefaultThreadContextStack
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<java.lang.String>
,java.util.Collection<java.lang.String>
,ThreadContextStack
,ThreadContext.ContextStack
,org.apache.logging.log4j.util.StringBuilderFormattable
public class DefaultThreadContextStack extends java.lang.Object implements ThreadContextStack, org.apache.logging.log4j.util.StringBuilderFormattable
A copy-on-write thread-safe variant oforg.apache.logging.log4j.spi.ThreadContextStack
in which all mutative operations (add, pop, and so on) are implemented by making a fresh copy of the underlying list.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DefaultThreadContextStack(boolean useStack)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(java.lang.String s)
boolean
addAll(java.util.Collection<? extends java.lang.String> strings)
java.util.List<java.lang.String>
asList()
Returns all the elements in the stack in a List.void
clear()
boolean
contains(java.lang.Object o)
boolean
containsAll(java.util.Collection<?> objects)
ThreadContextStack
copy()
Returns a copy of the ContextStack.boolean
equals(java.lang.Object obj)
void
formatTo(java.lang.StringBuilder buffer)
int
getDepth()
Returns the number of elements in the stack.ThreadContext.ContextStack
getImmutableStackOrNull()
Returns a ContextStack with the same contents as this ContextStack ornull
.int
hashCode()
boolean
isEmpty()
java.util.Iterator<java.lang.String>
iterator()
java.lang.String
peek()
Returns the element at the top of the stack without removing it or null if the stack is empty.java.lang.String
pop()
Returns the element at the top of the stack.void
push(java.lang.String message)
Pushes an element onto the stack.boolean
remove(java.lang.Object o)
boolean
removeAll(java.util.Collection<?> objects)
boolean
retainAll(java.util.Collection<?> objects)
int
size()
java.lang.Object[]
toArray()
<T> T[]
toArray(T[] ts)
java.lang.String
toString()
void
trim(int depth)
Trims elements from the end of the stack.
-
-
-
Method Detail
-
add
public boolean add(java.lang.String s)
- Specified by:
add
in interfacejava.util.Collection<java.lang.String>
-
addAll
public boolean addAll(java.util.Collection<? extends java.lang.String> strings)
- Specified by:
addAll
in interfacejava.util.Collection<java.lang.String>
-
asList
public java.util.List<java.lang.String> asList()
Description copied from interface:ThreadContext.ContextStack
Returns all the elements in the stack in a List.- Specified by:
asList
in interfaceThreadContext.ContextStack
- Returns:
- all the elements in the stack in a List.
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection<java.lang.String>
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection<java.lang.String>
-
containsAll
public boolean containsAll(java.util.Collection<?> objects)
- Specified by:
containsAll
in interfacejava.util.Collection<java.lang.String>
-
copy
public ThreadContextStack copy()
Description copied from interface:ThreadContext.ContextStack
Returns a copy of the ContextStack.- Specified by:
copy
in interfaceThreadContext.ContextStack
- Returns:
- a copy of the ContextStack.
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equals
in interfacejava.util.Collection<java.lang.String>
- Overrides:
equals
in classjava.lang.Object
-
getDepth
public int getDepth()
Description copied from interface:ThreadContext.ContextStack
Returns the number of elements in the stack.- Specified by:
getDepth
in interfaceThreadContext.ContextStack
- Returns:
- the number of elements in the stack.
-
hashCode
public int hashCode()
- Specified by:
hashCode
in interfacejava.util.Collection<java.lang.String>
- Overrides:
hashCode
in classjava.lang.Object
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection<java.lang.String>
-
iterator
public java.util.Iterator<java.lang.String> iterator()
- Specified by:
iterator
in interfacejava.util.Collection<java.lang.String>
- Specified by:
iterator
in interfacejava.lang.Iterable<java.lang.String>
-
peek
public java.lang.String peek()
Description copied from interface:ThreadContext.ContextStack
Returns the element at the top of the stack without removing it or null if the stack is empty.- Specified by:
peek
in interfaceThreadContext.ContextStack
- Returns:
- the element at the top of the stack or null if the stack is empty.
-
pop
public java.lang.String pop()
Description copied from interface:ThreadContext.ContextStack
Returns the element at the top of the stack.- Specified by:
pop
in interfaceThreadContext.ContextStack
- Returns:
- The element at the top of the stack.
-
push
public void push(java.lang.String message)
Description copied from interface:ThreadContext.ContextStack
Pushes an element onto the stack.- Specified by:
push
in interfaceThreadContext.ContextStack
- Parameters:
message
- The element to add.
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection<java.lang.String>
-
removeAll
public boolean removeAll(java.util.Collection<?> objects)
- Specified by:
removeAll
in interfacejava.util.Collection<java.lang.String>
-
retainAll
public boolean retainAll(java.util.Collection<?> objects)
- Specified by:
retainAll
in interfacejava.util.Collection<java.lang.String>
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection<java.lang.String>
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection<java.lang.String>
-
toArray
public <T> T[] toArray(T[] ts)
- Specified by:
toArray
in interfacejava.util.Collection<java.lang.String>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
formatTo
public void formatTo(java.lang.StringBuilder buffer)
- Specified by:
formatTo
in interfaceorg.apache.logging.log4j.util.StringBuilderFormattable
-
trim
public void trim(int depth)
Description copied from interface:ThreadContext.ContextStack
Trims elements from the end of the stack.- Specified by:
trim
in interfaceThreadContext.ContextStack
- Parameters:
depth
- The maximum number of items in the stack to keep.
-
getImmutableStackOrNull
public ThreadContext.ContextStack getImmutableStackOrNull()
Description copied from interface:ThreadContext.ContextStack
Returns a ContextStack with the same contents as this ContextStack ornull
. Attempts to modify the returned stack may or may not throw an exception, but will not affect the contents of this ContextStack.- Specified by:
getImmutableStackOrNull
in interfaceThreadContext.ContextStack
- Returns:
- a ContextStack with the same contents as this ContextStack or
null
.
-
-