Package hudson.util
Class DescribableList<T extends Describable<T>,D extends Descriptor<T>>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<T>
-
- hudson.util.PersistedList<T>
-
- hudson.util.DescribableList<T,D>
-
- All Implemented Interfaces:
Iterable<T>
,Collection<T>
,List<T>
- Direct Known Subclasses:
Jenkins.CloudList
,View.PropertyList
public class DescribableList<T extends Describable<T>,D extends Descriptor<T>> extends PersistedList<T>
Persisted list ofDescribable
s with some operations specific toDescriptor
s.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
Nested Classes Modifier and Type Class Description static class
DescribableList.ConverterImpl
Converter
implementation for XStream.static interface
DescribableList.Owner
Deprecated.since 2008-08-15.
-
Field Summary
-
Fields inherited from class hudson.util.PersistedList
data, owner
-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DescribableList()
DescribableList(Saveable owner)
DescribableList(Saveable owner, Collection<? extends T> initialList)
DescribableList(DescribableList.Owner owner)
Deprecated.since 2008-08-15.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
buildDependencyGraph(AbstractProject owner, DependencyGraph graph)
Picks upDependencyDeclarer
s and allow it to build dependencies.boolean
contains(D d)
T
get(D descriptor)
<U extends T>
Uget(Class<U> type)
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 Userebuild(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.T[]
toArray(T[] 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, toArray, toList, toString
-
Methods inherited from class java.util.AbstractList
add, addAll, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList
-
Methods inherited from class java.util.AbstractCollection
containsAll, removeAll, retainAll, toArray
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
containsAll, removeAll, replaceAll, retainAll, sort, spliterator, toArray
-
-
-
-
Constructor Detail
-
DescribableList
protected DescribableList()
-
DescribableList
@Deprecated public DescribableList(DescribableList.Owner owner)
Deprecated.since 2008-08-15. UseDescribableList(Saveable)
-
DescribableList
public DescribableList(Saveable owner)
-
DescribableList
public DescribableList(Saveable owner, Collection<? extends T> initialList)
-
-
Method Detail
-
setOwner
@Deprecated public void setOwner(DescribableList.Owner owner)
Deprecated.since 2008-08-15. UsePersistedList.setOwner(Saveable)
-
replace
public void replace(T item) throws IOException
Removes all instances of the same type, then add the new one.- Throws:
IOException
-
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
@Deprecated 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 Userebuild(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
<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 upDependencyDeclarer
s and allow it to build dependencies.
-
get
public <U extends T> U get(Class<U> type)
- Overrides:
get
in classPersistedList<T extends Describable<T>>
-
-