juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject juneau git commit: Javadoc updates.
Date Wed, 10 Jan 2018 03:49:19 GMT
Repository: juneau
Updated Branches:
  refs/heads/master 4e501d6a3 -> aae7b5f52


Javadoc updates.

Project: http://git-wip-us.apache.org/repos/asf/juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/juneau/commit/aae7b5f5
Tree: http://git-wip-us.apache.org/repos/asf/juneau/tree/aae7b5f5
Diff: http://git-wip-us.apache.org/repos/asf/juneau/diff/aae7b5f5

Branch: refs/heads/master
Commit: aae7b5f52f641e8480bc3ea800dc8d63f24980b7
Parents: 4e501d6
Author: JamesBognar <jamesbognar@apache.org>
Authored: Tue Jan 9 22:49:12 2018 -0500
Committer: JamesBognar <jamesbognar@apache.org>
Committed: Tue Jan 9 22:49:12 2018 -0500

----------------------------------------------------------------------
 juneau-doc/src/main/javadoc/overview.html | 256 +++++++++++++++++++------
 1 file changed, 193 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juneau/blob/aae7b5f5/juneau-doc/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 5f90997..0524a9d 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -89,6 +89,7 @@
 			<li><p><a class='doclink' href='#juneau-marshall.Groups'>SerializerGroups
and ParserGroups</a></p>
 			<li><p><a class='doclink' href='#juneau-marshall.ObjectMap'>ObjectMap
and ObjectList</a></p>
 			<li><p><a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable
Properties</a></p>
+			<li><p><a class='doclink' href='#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts,
Builders, Sessions, and PropertyStores</a></p>
 			<li><p><a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a></p>
 			<ol>
 				<li><p><a class='doclink' href='#juneau-marshall.PojoSwaps'>PojoSwaps</a></p>
@@ -1000,31 +1001,143 @@
 					</ul>
 				</li>
 			</ul>
+		</div>
+		
+		<!-- =======================================================================================================
-->
+		<a id="juneau-marshall.ContextsBuildersSessionsPropertyStores"></a>
+		<h4 class='topic' onclick='toggle(this)'>2.1.6 - Contexts, Builders, Sessions, and
PropertyStores</h4>
+		<div class='topic'>
+			<p>
+				All the serializers, parsers, and REST server/client classes use the following design
pattern:
+			</p>
+			<ul class='spaced-list'>
+				<li>
+					<l>Context</l> - A thread-safe read-only object.
+					<br>Examples:  <code>BeanContext</code>, <code>JsonSerializer</code>
+				<li>
+					<l>ContextBuilder</l> - A thread-safe builder for contexts.
+					<br>Examples:  <code>BeanContextBuilder</code>, <code>JsonSerializerBuilder</code>
+				<li>
+					<l>Session</l> - A non-thread-safe single-use object with configuration
combined from context and 
+					runtime args such as locale/timezone and overridden properties.
+					<br>These are created by <code>Context</code> objects.
+					<br>Examples:  <code>BeanSession</code>, <code>JsonSerializerSession</code>
+				<li>
+					<l>PropertyStore</l> - A thread-safe read-only set of configuration properties.
 
+					<br>Each <code>Context</code> contains one <code>PropertyStore</code>.
+				<li>
+					<l>PropertyStoreBuilder</l> - A thread-safe builder for <code>PropertyStore</code>
objects.  
+					<br>Each <code>ContextBuilder</code> contains one <code>PropertyStoreBuilder</code>.
	
+			</ul>	
 			<p>
-				The following classes provide more information about the internal details of how configurable
properties
-				are managed in serializers and parsers.
+				For example, the class hierarchy for <code>JsonSerializer</code> is:
 			</p>
 			<ul class='doctree'>
-				<li class='jac'>{@link org.apache.juneau.Context} - Base class for all contexts.
+				<li class='jc'><code>Object</code>
 				<ul>
-					<li class='jc'>{@link org.apache.juneau.BeanContext} - Base class for all serializers,
parsers, and REST contexts.
-				</ul> 
-				<li class='jac'>{@link org.apache.juneau.ContextBuilder} - Builder class for {@link
org.apache.juneau.Context} objects. 
+					<li class='jac'>{@link org.apache.juneau.Context}
+					<ul>
+						<li class='jc'>{@link org.apache.juneau.BeanContext}
+						<ul>
+							<li class='jac'>{@link org.apache.juneau.serializer.Serializer}
+							<ul>
+								<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializer}
+								<ul>
+									<li class='jc'>{@link org.apache.juneau.json.JsonSerializer}
+								</ul>
+							</ul>
+						</ul>
+					</ul>
+				</ul>
+			</ul>
+			<p>
+				Each context object in the hierarchy define properties that can be stored in a <code>PropertyStore</code>
+				such as <jsf>SERIALIZER_useWhitespace</jsf> or <jsf>JSON_simpleMode</jsf>.
+			</p>
+			<p>
+				The class hierarchy for <code>JsonSerializerBuilder</code> is:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'><code>Object</code>
 				<ul>
-					<li class='jc'>{@link org.apache.juneau.BeanContextBuilder} - Builder class for
{@link org.apache.juneau.BeanContext} objects.
-				</ul> 
-				<li class='jac'>{@link org.apache.juneau.Session} - Base class for all session
objects. 
+					<li class='jac'>{@link org.apache.juneau.ContextBuilder}
+					<ul>
+						<li class='jc'>{@link org.apache.juneau.BeanContextBuilder}
+						<ul>
+							<li class='jac'>{@link org.apache.juneau.serializer.SerializerBuilder}
+							<ul>
+								<li class='jc'>{@link org.apache.juneau.json.JsonSerializerBuilder}
+							</ul>
+						</ul>
+					</ul>
+				</ul>
+			</ul>
+			<p>
+				The class hierarchy for <code>JsonSerializerSession</code> is:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'><code>Object</code>
 				<ul>
-					<li class='jc'>{@link org.apache.juneau.BeanSession} - Base class for serializer
and parser sessions.
-				</ul> 
-				<li class='jc'>{@link org.apache.juneau.PropertyStore} - A set of configuration
properties for a context. 
-				<li class='jc'>{@link org.apache.juneau.PropertyStoreBuilder} - Builder for  {@link
org.apache.juneau.PropertyStore} objects.
+					<li class='jac'>{@link org.apache.juneau.Session}
+					<ul>
+						<li class='jc'>{@link org.apache.juneau.BeanSession}
+						<ul>
+							<li class='jac'>{@link org.apache.juneau.serializer.SerializerSession}
+							<ul>
+								<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializerSession}
+								<ul>
+									<li class='jc'>{@link org.apache.juneau.json.JsonSerializerSession}
+								</ul>
+							</ul>
+						</ul>
+					</ul>
+				</ul>
 			</ul>
+			<p>
+				The general idea behind a {@link org.apache.juneau.PropertyStore} is to serve as a reusable
configuration of an artifact 
+				(such as a serializer) such that the artifact can be cached and reused if the property
stores are 'equal'.
+			</p>
+			<p>
+				For example, two serializers of the same type created with the same configuration will
always end up being
+				the same serializer: 
+			</p>
+			<p class='bcode'>
+	<jc>// Two serializers created with identical configurations will always be the same
copy.</jc> 
+	WriterSerializer s1 = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MySwap.<jk>class</jk>).simple().build();
+	WriterSerializer s2 = JsonSerializer.<jsm>create</jsm>().set(<jsf>JSON_simpleMode</jsf>,
<jk>true</jk>).pojoSwaps(MySwap.<jk>class</jk>).build();
+	<jk>assert</jk>(s1 == s2);
+			</p>
+			<p>
+				This has the effect of significantly improving performance, especially if you're creating
many 
+				serializers and parsers.
+			</p>
+			<p>
+				The {@link org.apache.juneau.PropertyStoreBuilder} class is used to build up and instantiate
immutable 
+				<code>PropertyStore</code> objects.
+			</p>
+			<p>
+				In the example above, the property store being built looks like the following:
+			</p>
+			<p class='bcode'>
+	PropertyStore ps = PropertyStore
+		.<jsm>create</jsm>()
+		.set(<js>"BeanContext.pojoSwaps.lc"</js>, MySwap.<jk>class</jk>)
+		.set(<js>"JsonSerializer.simpleMode.b"</js>, <jk>true</jk>)
+		.build();
+			</p>
+			<p>
+				Property stores are immutable, comparable, and their hashcodes are calculated exactly
one time.
+				That makes them particularly suited for use as hashmap keys, and thus for caching reusable
serializers and parsers.
+			</p>
+			<p>
+				Refer to the {@link org.apache.juneau.PropertyStore} javadoc for a detailed explaination
on how
+				property stores work.
+			</p>
 		</div>
-		
+
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.Transforms"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.6 - Transforms</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.7 - Transforms</h4>
 		<div class='topic'>
 			<p>
 				By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.
 
@@ -1082,7 +1195,7 @@
 	
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.PojoSwaps"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.1 - PojoSwaps</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.1 - PojoSwaps</h4>
 			<div class='topic'>
 				<p>
 					{@link org.apache.juneau.transform.PojoSwap PojoSwaps} are a critical component of Juneau.
@@ -1255,7 +1368,7 @@
 			
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.PerMediaTypePojoSwaps"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.2 - Per-media-type PojoSwaps</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.2 - Per-media-type PojoSwaps</h4>
 			<div class='topic'>
 				<p>
 					Swaps can also be defined per-media-type.		
@@ -1335,7 +1448,7 @@
 	
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.OneWayPojoSwaps"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.3 - One-way PojoSwaps</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.3 - One-way PojoSwaps</h4>
 			<div class='topic'>
 				<p>
 					In the previous sections, we defined two-way swaps, meaning swaps where the original
objects could be 
@@ -1387,7 +1500,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.SwapAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.4 - @Swap Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.4 - @Swap Annotation</h4>
 			<div class='topic'>
 				<p>
 					{@link org.apache.juneau.annotation.Swap @Swap} can be used to associate a swap class
using an 
@@ -1439,14 +1552,22 @@
 		}
 	}
 				</p>
+				<p>
+					The <ja>@Swap</ja> annotation can also be used on getters and setters as
well to apply a swap
+					to individual property values
+				</p>
+				<p class='bcode'>
+	<ja>@BeanProperty</ja>(swap=MyPojoSwap.<jk>class</jk>)
+	<jk>public</jk> MyPojo getMyPojo();
+				</p>
 			</div>
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.TemplatedSwaps"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.5 - Templated Swaps</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.5 - Templated Swaps</h4>
 			<div class='topic'>
 				<p>
-					The {@link org.apache.juneau.annotation.Swap#template()} annotation allows you to associate
+					The {@link org.apache.juneau.annotation.Swap#template() @Swap.template()} annotation
allows you to associate
 					arbitrary contextual strings with swaps.
 					<br>The primary purpose is for providing template names, such as for Apache FreeMarker,
therefore
 					the name 'template'.
@@ -1467,27 +1588,22 @@
 	<jk>public class</jk> FreeMarkerSwap <jk>extends</jk> PojoSwap&lt;Object,Reader&gt;
{
 
 		<jk>public</jk> MediaType[] forMediaTypes() {
+			<jc>// Make sure this only applies to the HTML serializer.</jc>
 			<jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/html"</js>);
 		}
 
 		<jk>public</jk> Reader swap(BeanSession session, Object o, String template)
<jk>throws</jk> Exception {
-			<jk>return</jk> getFreeMarkerReader(template, o);  <jc>// Some method
that creates raw HTML.</jc>
+			<jc>// Call some method that uses FreeMarker to convert 'o' to raw HTML using </jc>
+			<jc>// the 'MyPojo.div.ftl' template.</jc>
+			<jk>return</jk> getFreeMarkerReader(template, o);  
 		}
 	}
 				</p>
-				<p>
-					The <ja>@Swap</ja> annotation can also be used on getters and setters as
well to apply a swap
-					to individual property values
-				</p>
-				<p class='bcode'>
-	<ja>@BeanProperty</ja>(swap=MyPojoSwap.<jk>class</jk>)
-	<jk>public</jk> MyPojo getMyPojo();
-				</p>
 			</div>
 
 			<!-- =======================================================================================================
-->
 			<a id="juneau-marshall.SwapMethods"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.6 - Swap Methods</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.6 - Swap Methods</h4>
 			<div class='topic'>
 				<p>
 					Various methods can be defined on a class directly to affect how it gets serialized.
@@ -1631,7 +1747,7 @@
 	
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.SurrogateClasses"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.7 - Surrogate Classes</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.7 - Surrogate Classes</h4>
 			<div class='topic'>
 				<p>
 				<p>
@@ -1642,6 +1758,7 @@
 					For example, let's say we want to be able to serialize the following class, but it's
not serializable for 
 					some reason (for example, there are no properties exposed):  
 				<p class='bcode'>
+	<jc>// Not serializable because it's not a bean because it has no public properties.</jc>
 	<jk>public class</jk> MyNonSerializableClass {
 		<jk>protected</jk> String <jf>foo</jf>;
 	}
@@ -1650,10 +1767,12 @@
 					This could be solved with the following <code>PojoSwap</code>.
 				</p>
 				<p class='bcode'>
+	<jc>// A serializable bean with 1 property.</jc>
 	<jk>public class</jk> MySerializableSurrogate {
 		<jk>public</jk> String <jf>foo</jf>;
 	}
 		
+	<jc>// A PojoSwap that swaps out our non-serializable object with our serializable
object.</jc>
 	<jk>public class</jk> MySwap <jk>extends</jk> PojoSwap&lt;MyNonSerializableClass,MySerializableSurrogate&gt;
{
 		<ja>@Override</ja> <jc>/* PojoSwap */</jc>
 		<jk>public</jk> MySerializableSurrogate swap(MyNonSerializableClass o) {
@@ -1673,6 +1792,7 @@
 	<jk>public class</jk> MySerializableSurrogate {
 		<jk>public</jk> String <jf>foo</jf>;
 		
+		<jc>// Constructor takes in our non-serializable object!</jc>
 		<jk>public</jk> MySerializableSurrogate(MyNonSerializableClass c) {
 			<jk>this</jk>.<jf>foo</jf> = c.<jf>foo</jf>;
 		}
@@ -1693,7 +1813,7 @@
 	
 			<!-- =======================================================================================================
-->
 			<a id="juneau-marshall.BeanAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.8 - @Bean Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.8 - @Bean Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.Bean @Bean} annotation is used to tailor how
beans are 
@@ -1757,7 +1877,7 @@
 		<jk>public</jk> String <jf>f0</jf> = <js>"f0"</js>;
 	}
 	
-	<jc>// Sub class</jc>
+	<jc>// Child class</jc>
 	<jk>public class</jk> A1 <jk>extends</jk> A {
 		<jk>public</jk> String <jf>f1</jf> = <js>"f1"</js>;
 	}
@@ -1768,12 +1888,12 @@
 	<jsm>assertEquals</jsm>(<js>"{f0:'f0'}"</js>, r);  <jc>//
Note f1 is not serialized.</jc>
 				</p>
 				<p>
-					Note that this annotation can be used on the parent class so that it filters to all
child classes,
-					or can be set individually on the child classes.
+					Note that this annotation can be used on the parent class so that it filters to all
child classes.
+					<br>Or can be set individually on the child classes.
 				</p>
 				<p>
 					The {@link org.apache.juneau.annotation.Bean#stopClass @Bean.stopClass()} annotation
is another
-					way to limit which properties are serialized.
+					way to limit which properties are serialized (except from the opposite direction).
 					<br>It's identical in purpose to the stop class specified by {@link java.beans.Introspector#getBeanInfo(Class,
Class)}.
 					<br>Any properties in the stop class or in its base classes will be ignored during
analysis.
 				</p>
@@ -1831,7 +1951,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.BeanPropertyAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.9 - @BeanProperty Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.9 - @BeanProperty Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.BeanProperty @BeanProperty} annotation is used
to tailor how 
@@ -1974,7 +2094,7 @@
 				<p class='bcode'>
 	<jk>public class</jk> MyBean {
 
-		<jc>// Identify concrete map type with String keys and Integer values.</jc>
+		<jc>// This is a HashMap&lt;String,Integer&gt;.</jc>
 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
 		<jk>public</jk> Map <jf>p1</jf>;
 	}
@@ -2019,7 +2139,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.BeanConstructorAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.10 - @BeanConstructor Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.10 - @BeanConstructor Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} annotation
is used to 
@@ -2043,6 +2163,7 @@
 		}
 
 		<jc>// Read only properties.</jc>
+		<jc>// Getters, but no setters.</jc>
 
 		<jk>public</jk> String getName() {
 			<jk>return</jk> <jf>name</jf>;
@@ -2067,7 +2188,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.BeanIgnoreAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.11 - @BeanIgnore Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.11 - @BeanIgnore Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} annotation is used to
@@ -2100,7 +2221,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.NamePropertyAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.12 - @NameProperty Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.12 - @NameProperty Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.NameProperty @NameProperty} annotation is used
to
@@ -2132,7 +2253,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.ParentPropertyAnnotion"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.13 - @ParentProperty Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.13 - @ParentProperty Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.ParentProperty @ParentProperty} annotation is
used to
@@ -2163,7 +2284,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.URIAnnotation"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.14 - @URI Annotation</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.14 - @URI Annotation</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.annotation.URI @URI} annotation is used to identify a class
or bean 
@@ -2214,7 +2335,7 @@
 
 			<!-- =======================================================================================================
-->
 			<a id="juneau-marshall.BeanFilters"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.15 - BeanFilter Class</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.15 - BeanFilter Class</h4>
 			<div class='topic'>
 				<p>
 					The {@link org.apache.juneau.transform.BeanFilter} class is the programmatic equivalent
to the
@@ -2228,8 +2349,17 @@
 				</p>
 				<p>
 					Bean filters are defined through {@link org.apache.juneau.transform.BeanFilterBuilder
BeanFilterBuilders}.
-					The programmatic equivalent to the the annotation above would be:
 				</p>
+				<p>
+					In the previous examples, we defined this bean annotation:
+				</p>
+				<p class='bcode'>
+	<ja>@Bean</ja>(properties=<js>"street,city,state"</js>)
+	<jk>public class</jk> Address { ... }
+				</p>
+				<p>
+					The programmatic equivalent would be:
+				</p>				
 				<p class='bcode'>
 	<jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilterBuilder&lt;Address&gt;
{
 		
@@ -2241,7 +2371,7 @@
 				</p>		
 				<p>
 					Bean filters are added to serializers and parsers using the <code>beanFilters(Object...)</code>
method.
-					For example:
+					<br>For example:
 				</p>
 				<p class='bcode'>			
 	<jc>// Create a new JSON serializer and associate a bean filter with it.</jc>
@@ -2249,7 +2379,7 @@
 				</p>
 				<p>
 					Note that if you use the annotation, you do NOT need to set anything on the serializers/parsers.
-					The annotations will be detected and bean filters will automatically be created for
them.
+					<br>The annotations will be detected and bean filters will automatically be created
for them.
 				</p>
 				<p>
 					The <code>beanFilter(Class...)</code> method also allows you to pass in
interfaces.
@@ -2278,7 +2408,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.StopClasses"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.16 - Stop Classes</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.16 - Stop Classes</h4>
 			<div class='topic'>
 				<p>
 					Occasionally, you may want to limit bean properties to only those defined on a parent
class or interface.  
@@ -2352,7 +2482,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.SerializingToObjectMaps"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.17 - Serializing to ObjectMaps</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.17 - Serializing to ObjectMaps</h4>
 			<div class='topic'>
 				<p>
 					A shortcut method for transforming is provided that can often be simpler than defining
transforms.
@@ -2382,7 +2512,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.SerializingReadersAndInputStreams"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.6.18 - Serializing Readers and InputStreams</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.7.18 - Serializing Readers and InputStreams</h4>
 			<div class='topic'>
 				<p>
 					Juneau serializers treat instances of <code>Readers</code> and <code>InputStreams</code>
special by 
@@ -2432,7 +2562,7 @@
 	
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.BeanDictionaries"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.7 - Bean Names and Dictionaries</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.8 - Bean Names and Dictionaries</h4>
 		<div class='topic'>
 			<p>
 				While parsing into beans, Juneau attempts to determine the class types of bean properties
through 
@@ -2530,7 +2660,7 @@
 		
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.BeanSubTypes"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.7.1 - Bean Subtypes</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.8.1 - Bean Subtypes</h4>
 			<div class='topic'>
 				<p>
 					In addition to the bean type name support described above, simplified support is provided
@@ -2590,7 +2720,7 @@
 		
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.VirtualBeans"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.8 - Virtual Beans</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.9 - Virtual Beans</h4>
 		<div class='topic'>
 			<p>
 				The {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by
default) allows
@@ -2643,7 +2773,7 @@
 
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.JacksonComparison"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.9 - Comparison with Jackson</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.10 - Comparison with Jackson</h4>
 		<div class='topic'>
 			<p>
 				Juneau was developed independently from Jackson, but shares many of the same features
and capabilities.
@@ -2756,7 +2886,7 @@
 
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.PojoCategories"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.10 - POJO Categories</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.11 - POJO Categories</h4>
 		<div class='topic'>
 			<p>
 				The following chart shows POJOs categorized into groups and whether they can be serialized
or parsed:
@@ -3022,7 +3152,7 @@
 	
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.BestPractices"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.11 - Best Practices</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.12 - Best Practices</h4>
 		<div class='topic'>
 			<ol class='spaced-list'>
 				<li>
@@ -3051,7 +3181,7 @@
 
 		<!-- =======================================================================================================
-->
 		<a id="juneau-marshall.AdditionalInfo"></a>
-		<h4 class='topic' onclick='toggle(this)'>2.1.12 - Additional Information</h4>
+		<h4 class='topic' onclick='toggle(this)'>2.1.13 - Additional Information</h4>
 		<div class='topic'>
 			<p>
 				Extensive javadocs exist for individual language support.
@@ -3060,7 +3190,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.AdditionalInfo.JSON"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.12.1 - JSON</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.13.1 - JSON</h4>
 			<div class='topic'>
 				<h6 class='toc'>Additional Information - org.apache.juneau.json</h6>
 				<ol class='toc'>
@@ -3088,7 +3218,7 @@
 
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.AdditionalInfo.XML"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.12.2 - XML</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.13.2 - XML</h4>
 			<div class='topic'>
 				<h6 class='toc'>Additional Information - org.apache.juneau.xml</h6>
 				<ol class='toc'>
@@ -3127,7 +3257,7 @@
 			
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.AdditionalInfo.HTML"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.12.3 - HTML</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.13.3 - HTML</h4>
 			<div class='topic'>
 				<h6 class='toc'>Additional Information - org.apache.juneau.html</h6>
 				<ol class='toc'>
@@ -3138,7 +3268,7 @@
 			
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.AdditionalInfo.UON"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.12.4 - UON</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.13.4 - UON</h4>
 			<div class='topic'>
 				<h6 class='toc'>Additional Information - org.apache.juneau.uon</h6>
 				<ol class='toc'>
@@ -3165,7 +3295,7 @@
 						
 			<!-- ===================================================================================================
-->
 			<a id="juneau-marshall.AdditionalInfo.URLEncoding"></a>
-			<h4 class='topic' onclick='toggle(this)'>2.1.12.5 - URL-Encoding</h4>
+			<h4 class='topic' onclick='toggle(this)'>2.1.13.5 - URL-Encoding</h4>
 			<div class='topic'>
 				<h6 class='toc'>Additional Information - org.apache.juneau.urlencoding</h6>
 				<ol class='toc'>


Mime
View raw message