IvyContext
Date: 2014-12-13

org.apache.ivy.core

## Class IvyContext

- java.lang.Object
- - org.apache.ivy.core.IvyContext

-     public class IvyContext
      extends java.lang.Object

  This class represents an execution context of an Ivy action. It contains several getters to retrieve information, like the used Ivy instance, the cache location...
  See Also:
    `IvyThread`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IvyContext()`
    `IvyContext(IvyContext ctx)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkInterrupted()`
    `java.lang.Object` | `get(java.lang.String key)`
    `CircularDependencyStrategy` | `getCircularDependencyStrategy()`
    `static IvyContext` | `getContext()`
    `DependencyDescriptor` | `getDependencyDescriptor()`
    `EventManager` | `getEventManager()`
    `Ivy` | `getIvy()` Returns the current ivy instance.
    `MessageLogger` | `getMessageLogger()`
    `java.lang.Thread` | `getOperatingThread()`
    `ResolveData` | `getResolveData()`
    `IvySettings` | `getSettings()`
    `java.lang.Object` | `peek(java.lang.String key)` Reads the first object from the list saved under given key in the context.
    `static java.lang.Object` | `peekInContextStack(java.lang.String key)` Reads the first object from the list saved under given key in the first context from the context stack in which this key is defined.
    `Ivy` | `peekIvy()` Returns the Ivy instance associated with this context, or `null` if no such instance is currently associated with this context.
    `java.lang.Object` | `pop(java.lang.String key)` Removes and returns first object from the list saved under given key in the context.
    `boolean` | `pop(java.lang.String key, java.lang.Object expectedValue)` Removes and returns first object from the list saved under given key in the context but only if it equals the given expectedValue - if not a false value is returned.
    `static IvyContext` | `popContext()` Pops one context used with this thread.
    `void` | `push(java.lang.String key, java.lang.Object value)` Puts a new object at the start of the list saved under given key in the context.
    `static IvyContext` | `pushContext(IvyContext context)` Changes the context associated with this thread.
    `static IvyContext` | `pushNewContext()` Creates a new IvyContext and pushes it as the current context in the current thread.
    `static IvyContext` | `pushNewCopyContext()` Creates a new IvyContext as a copy of the current one and pushes it as the current context in the current thread.
    `void` | `set(java.lang.String key, java.lang.Object value)`
    `void` | `setDependencyDescriptor(DependencyDescriptor dd)`
    `void` | `setIvy(Ivy ivy)`
    `void` | `setResolveData(ResolveData data)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### IvyContext

          public IvyContext()

    - #### IvyContext

          public IvyContext(IvyContext ctx)

  - ### Method Detail

    - #### getContext

          public static IvyContext getContext()

    - #### pushNewContext

          public static IvyContext pushNewContext()

      Creates a new IvyContext and pushes it as the current context in the current thread.

      `popContext()` should usually be called when the job for which this context has been pushed is finished.

      Returns:
        the newly pushed context

    - #### pushNewCopyContext

          public static IvyContext pushNewCopyContext()

      Creates a new IvyContext as a copy of the current one and pushes it as the current context in the current thread.

      `popContext()` should usually be called when the job for which this context has been pushed is finished.

      Returns:
        the newly pushed context

    - #### pushContext

          public static IvyContext pushContext(IvyContext context)

      Changes the context associated with this thread. This is especially useful when launching a new thread, to associate it with the same context as the initial one. Do not forget to call `popContext()` when done.
      Parameters:
        `context` - the new context to use in this thread.
      Returns:
        the pushed context

    - #### popContext

          public static IvyContext popContext()

      Pops one context used with this thread. This is usually called after having finished a task for which a call to `pushNewContext()` or `pushContext(IvyContext)` was done prior to beginning the task.
      Returns:
        the popped context

    - #### peekInContextStack

          public static java.lang.Object peekInContextStack(java.lang.String key)

      Reads the first object from the list saved under given key in the first context from the context stack in which this key is defined. If value under key in any of the contexts form the stack represents non List object then a RuntimeException is thrown.

      This methods does a similar job to `peek(String)`, except that it considers the whole context stack and not only one instance.

      Parameters:
        `key` - context key for the string
      Returns:
        top object from the list (index 0) of the first context in the stack containing this key or null if no key or list empty in all contexts from the context stack
      See Also:
        `peek(String)`

    - #### getIvy

          public Ivy getIvy()

      Returns the current ivy instance.

      When calling any public ivy method on an ivy instance, a reference to this instance is put in this context, and thus accessible using this method, until no code reference this instance and the garbage collector collects it.

      Then, or if no ivy method has been called, a default ivy instance is returned by this method, so that it never returns `null`.

      Returns:
        the current ivy instance

    - #### peekIvy

          public Ivy peekIvy()

      Returns the Ivy instance associated with this context, or `null` if no such instance is currently associated with this context.

      If you want get a default Ivy instance in case no instance if currently associated, use `getIvy()`.

      Returns:
        the current ivy instance, or `null` if there is no current ivy instance.

    - #### setIvy

          public void setIvy(Ivy ivy)

    - #### getSettings

          public IvySettings getSettings()

    - #### getCircularDependencyStrategy

          public CircularDependencyStrategy getCircularDependencyStrategy()

    - #### get

          public java.lang.Object get(java.lang.String key)

    - #### set

          public void set(java.lang.String key,
                 java.lang.Object value)

    - #### peek

          public java.lang.Object peek(java.lang.String key)

      Reads the first object from the list saved under given key in the context. If value under key represents non List object then a RuntimeException is thrown.
      Parameters:
        `key` - context key for the string
      Returns:
        top object from the list (index 0) or null if no key or list empty

    - #### pop

          public java.lang.Object pop(java.lang.String key)

      Removes and returns first object from the list saved under given key in the context. If value under key represents non List object then a RuntimeException is thrown.
      Parameters:
        `key` - context key for the string
      Returns:
        top object from the list (index 0) or null if no key or list empty

    - #### pop

          public boolean pop(java.lang.String key,
                    java.lang.Object expectedValue)

      Removes and returns first object from the list saved under given key in the context but only if it equals the given expectedValue - if not a false value is returned. If value under key represents non List object then a RuntimeException is thrown.
      Parameters:
        `key` - context key for the string
      Returns:
        true if the r

    - #### push

          public void push(java.lang.String key,
                  java.lang.Object value)

      Puts a new object at the start of the list saved under given key in the context. If value under key represents non List object then a RuntimeException is thrown. If no list exists under given key a new LinkedList is created. This is kept without WeakReference in opposite to the put() results.
      Parameters:
        `key` - key context key for the string
        `value` - value to be saved under the key

    - #### getOperatingThread

          public java.lang.Thread getOperatingThread()

    - #### getMessageLogger

          public MessageLogger getMessageLogger()

    - #### getEventManager

          public EventManager getEventManager()

    - #### checkInterrupted

          public void checkInterrupted()

    - #### setResolveData

          public void setResolveData(ResolveData data)

    - #### getResolveData

          public ResolveData getResolveData()

    - #### setDependencyDescriptor

          public void setDependencyDescriptor(DependencyDescriptor dd)

    - #### getDependencyDescriptor

          public DependencyDescriptor getDependencyDescriptor()