org.apache.ivy.core

Class IvyContext

public class IvyContext extends 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
IvyContext()
IvyContext(IvyContext ctx)
Method Summary
voidcheckInterrupted()
Objectget(String key)
CircularDependencyStrategygetCircularDependencyStrategy()
static IvyContextgetContext()
DependencyDescriptorgetDependencyDescriptor()
EventManagergetEventManager()
IvygetIvy()
Returns the current ivy instance.
MessageLoggergetMessageLogger()
ThreadgetOperatingThread()
ResolveDatagetResolveData()
IvySettingsgetSettings()
Objectpeek(String key)
Reads the first object from the list saved under given key in the context.
static ObjectpeekInContextStack(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.
IvypeekIvy()
Returns the Ivy instance associated with this context, or null if no such instance is currently associated with this context.
Objectpop(String key)
Removes and returns first object from the list saved under given key in the context.
booleanpop(String key, 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 IvyContextpopContext()
Pops one context used with this thread.
voidpush(String key, Object value)
Puts a new object at the start of the list saved under given key in the context.
static IvyContextpushContext(IvyContext context)
Changes the context associated with this thread.
static IvyContextpushNewContext()
Creates a new IvyContext and pushes it as the current context in the current thread.
static IvyContextpushNewCopyContext()
Creates a new IvyContext as a copy of the current one and pushes it as the current context in the current thread.
voidset(String key, Object value)
voidsetDependencyDescriptor(DependencyDescriptor dd)
voidsetIvy(Ivy ivy)
voidsetResolveData(ResolveData data)

Constructor Detail

IvyContext

public IvyContext()

IvyContext

public IvyContext(IvyContext ctx)

Method Detail

checkInterrupted

public void checkInterrupted()

get

public Object get(String key)

getCircularDependencyStrategy

public CircularDependencyStrategy getCircularDependencyStrategy()

getContext

public static IvyContext getContext()

getDependencyDescriptor

public DependencyDescriptor getDependencyDescriptor()

getEventManager

public EventManager getEventManager()

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

getMessageLogger

public MessageLogger getMessageLogger()

getOperatingThread

public Thread getOperatingThread()

getResolveData

public ResolveData getResolveData()

getSettings

public IvySettings getSettings()

peek

public Object peek(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

peekInContextStack

public static Object peekInContextStack(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, 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

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.

pop

public Object pop(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(String key, 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

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 was done prior to beginning the task.

Returns: the popped context

push

public void push(String key, 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

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

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

set

public void set(String key, Object value)

setDependencyDescriptor

public void setDependencyDescriptor(DependencyDescriptor dd)

setIvy

public void setIvy(Ivy ivy)

setResolveData

public void setResolveData(ResolveData data)