hudson.util
Class DescribableList<T extends Describable<T>,D extends Descriptor<T>>

java.lang.Object
  extended by hudson.util.PersistedList<T>
      extended by hudson.util.DescribableList<T,D>
All Implemented Interfaces:
Iterable<T>
Direct Known Subclasses:
Jenkins.CloudList, View.PropertyList

public class DescribableList<T extends Describable<T>,D extends Descriptor<T>>
extends PersistedList<T>

Persisted list of Describables with some operations specific to Descriptors.

This class allows multiple instances of the same descriptor. Some clients use this semantics, while other clients use it as "up to one instance per one descriptor" model. Some of the methods defined in this class only makes sense in the latter model, such as remove(Descriptor).

Author:
Kohsuke Kawaguchi

Nested Class Summary
static class DescribableList.ConverterImpl
          Converter implementation for XStream.
static interface DescribableList.Owner
          Deprecated. since 2008-08-15. Just implement Saveable.
 
Field Summary
 
Fields inherited from class hudson.util.PersistedList
data, owner
 
Constructor Summary
protected DescribableList()
           
  DescribableList(DescribableList.Owner owner)
          Deprecated. since 2008-08-15. Use DescribableList(Saveable)
  DescribableList(Saveable owner)
           
  DescribableList(Saveable owner, Collection<? extends T> initialList)
           
 
Method Summary
 void buildDependencyGraph(AbstractProject owner, DependencyGraph graph)
          Picks up DependencyDeclarers and allow it to build dependencies.
 boolean contains(D d)
           
<U extends T>
U
get(Class<U> type)
           
 T get(D descriptor)
           
 T getDynamic(String id)
          Binds items in the collection to URL.
 void rebuild(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject json, List<? extends Descriptor<T>> descriptors)
          Rebuilds the list by creating a fresh instances from the submitted form.
 void rebuild(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject json, List<? extends Descriptor<T>> descriptors, String prefix)
          Deprecated. as of 1.271 Use rebuild(StaplerRequest, JSONObject, List) instead.
 void rebuildHetero(org.kohsuke.stapler.StaplerRequest req, net.sf.json.JSONObject formData, Collection<? extends Descriptor<T>> descriptors, String key)
          Rebuilds the list by creating a fresh instances from the submitted form.
 void remove(D descriptor)
           
 void replace(T item)
          Removes all instances of the same type, then add the new one.
 void setOwner(DescribableList.Owner owner)
          Deprecated. since 2008-08-15. Use PersistedList.setOwner(Saveable)
 T[] toArray(T[] array)
          Gets all the Describables in an array.
 Map<D,T> toMap()
          Creates a detached map from the current snapshot of the data, keyed from a descriptor to an instance.
 
Methods inherited from class hudson.util.PersistedList
add, addAll, addAllTo, clear, contains, get, getAll, isEmpty, iterator, onModified, remove, remove, removeAll, replace, replaceBy, setOwner, size, toList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DescribableList

protected DescribableList()

DescribableList

public DescribableList(DescribableList.Owner owner)
Deprecated. since 2008-08-15. Use DescribableList(Saveable)


DescribableList

public DescribableList(Saveable owner)

DescribableList

public DescribableList(Saveable owner,
                       Collection<? extends T> initialList)
Method Detail

setOwner

public void setOwner(DescribableList.Owner owner)
Deprecated. since 2008-08-15. Use PersistedList.setOwner(Saveable)


replace

public void replace(T item)
             throws IOException
Removes all instances of the same type, then add the new one.

Throws:
IOException

getDynamic

public T getDynamic(String id)
Binds items in the collection to URL.


get

public T get(D descriptor)

contains

public boolean contains(D d)

remove

public void remove(D descriptor)
            throws IOException
Throws:
IOException

toMap

public Map<D,T> toMap()
Creates a detached map from the current snapshot of the data, keyed from a descriptor to an instance.


rebuild

public void rebuild(org.kohsuke.stapler.StaplerRequest req,
                    net.sf.json.JSONObject json,
                    List<? extends Descriptor<T>> descriptors)
             throws Descriptor.FormException,
                    IOException
Rebuilds the list by creating a fresh instances from the submitted form.

This method is almost always used by the owner. This method does not invoke the save method.

Parameters:
json - Structured form data that includes the data for nested descriptor list.
Throws:
Descriptor.FormException
IOException

rebuild

public void rebuild(org.kohsuke.stapler.StaplerRequest req,
                    net.sf.json.JSONObject json,
                    List<? extends Descriptor<T>> descriptors,
                    String prefix)
             throws Descriptor.FormException,
                    IOException
Deprecated. as of 1.271 Use rebuild(StaplerRequest, JSONObject, List) instead.

Throws:
Descriptor.FormException
IOException

rebuildHetero

public void rebuildHetero(org.kohsuke.stapler.StaplerRequest req,
                          net.sf.json.JSONObject formData,
                          Collection<? extends Descriptor<T>> descriptors,
                          String key)
                   throws Descriptor.FormException,
                          IOException
Rebuilds the list by creating a fresh instances from the submitted form.

This version works with the the <f:hetero-list> UI tag, where the user is allowed to create multiple instances of the same descriptor. Order is also significant.

Throws:
Descriptor.FormException
IOException

buildDependencyGraph

public void buildDependencyGraph(AbstractProject owner,
                                 DependencyGraph graph)
Picks up DependencyDeclarers and allow it to build dependencies.


get

public <U extends T> U get(Class<U> type)
Overrides:
get in class PersistedList<T extends Describable<T>>

toArray

public T[] toArray(T[] array)
Description copied from class: PersistedList
Gets all the Describables in an array.

Overrides:
toArray in class PersistedList<T extends Describable<T>>


Copyright © 2004-2013. All Rights Reserved.