http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java index 22a4a5b..c28dbf9 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java @@ -30,14 +30,17 @@ import org.apache.juneau.utils.*; * Parent class for all Juneau parsers. * * <h6 class='topic'>@Consumes annotation</h6> - * <p> + * * The media types that this parser can handle is specified through the {@link Consumes @Consumes} annotation. + * * <p> * However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} method. * * <h6 class='topic'>Valid data conversions</h6> + * * Parsers can parse any parsable POJO types, as specified in the <a class="doclink" * href="../../../../overview-summary.html#Core.PojoCategories">POJO Categories</a>. + * * <p> * Some examples of conversions are shown below... * </p> @@ -92,9 +95,11 @@ import org.apache.juneau.utils.*; * <td class='code'>String, StringBuilder</td> * </tr> * </table> + * * <p> * In addition, any class types with {@link PojoSwap PojoSwaps} associated with them on the registered - * {@link #getBeanContext() beanContext} can also be passed in. + * {@link #getBeanContext() beanContext} can also be passed in. + * * <p> * For example, if the {@link CalendarSwap} transform is used to generalize {@code Calendar} objects to {@code String} * objects. @@ -102,10 +107,10 @@ import org.apache.juneau.utils.*; * following syntax... * <p class='bcode'> * Calendar c = parser.parse(<js>"'Sun Mar 03 04:05:06 EST 2001'"</js>, GregorianCalendar.<jk>class</jk>); + * * <p> * If <code>Object.<jk>class</jk></code> is specified as the target type, then the parser automatically determines the * data types and generates the following object types... - * </p> * <table class='styled'> * <tr><th>JSON type</th><th>Class type</th></tr> * <tr><td>object</td><td>{@link ObjectMap}</td></tr> @@ -118,19 +123,20 @@ import org.apache.juneau.utils.*; * * <a id='SupportedTypes'></a> * <h6 class='topic'>Supported types</h6> - * <p> + * * Several of the methods below take {@link Type} parameters to identify the type of object to create. * Any of the following types can be passed in to these methods... - * </p> * <ul> * <li>{@link ClassMeta} * <li>{@link Class} * <li>{@link ParameterizedType} * <li>{@link GenericArrayType} * </ul> + * * <p> * However, {@code ParameterizedTypes} and {@code GenericArrayTypes} should not contain * {@link WildcardType WildcardTypes} or {@link TypeVariable TypeVariables}. + * * <p> * Passing in <jk>null</jk> or <code>Object.<jk>class</jk></code> typically signifies that it's up to the parser * to determine what object type is being parsed parsed based on the rules above. @@ -169,13 +175,15 @@ public abstract class Parser extends CoreObject { /** * Workhorse method. Subclasses are expected to implement this method. * - * @param session The runtime session object returned by {@link #createSession(Object, ObjectMap, Method, Object, - * Locale, TimeZone, MediaType)}. - * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. - * @param type The class type of the object to create. - * If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed. - * For example, when parsing JSON text, it may return a <code>String</code>, <code>Number</code>, - * <code>ObjectMap</code>, etc... + * @param session + * The runtime session object returned by {@link #createSession(Object, ObjectMap, Method, Object, + * Locale, TimeZone, MediaType)}. + * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. + * @param type + * The class type of the object to create. + * If <jk>null</jk> or <code>Object.<jk>class</jk></code>, object type is based on what's being parsed. + * For example, when parsing JSON text, it may return a <code>String</code>, <code>Number</code>, + * <code>ObjectMap</code>, etc... * @param <T> The class type of the object to create. * @return The parsed object. * @throws Exception If thrown from underlying stream, or if the input contains a syntax error or is malformed. @@ -195,17 +203,19 @@ public abstract class Parser extends CoreObject { /** * Entry point for all parsing calls. + * * <p> - * Calls the {@link #doParse(ParserSession, ClassMeta)} implementation class and catches/rewraps any exceptions + * Calls the {@link #doParse(ParserSession, ClassMeta)} implementation class and catches/re-wraps any exceptions * thrown. * - * @param session The runtime session returned by {@link #createSession(Object, ObjectMap, Method, Object, Locale, - * TimeZone, MediaType)}. + * @param session + * The runtime session returned by {@link #createSession(Object, ObjectMap, Method, Object, Locale, + * TimeZone, MediaType)}. * @param type The class type of the object to create. * @param <T> The class type of the object to create. * @return The parsed object. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. */ public final <T> T parseSession(ParserSession session, ClassMeta<T> type) throws ParseException { try { @@ -229,6 +239,8 @@ public abstract class Parser extends CoreObject { /** * Parses input into the specified object type. + * + * <p> * The type can be a simple type (e.g. beans, strings, numbers) or parameterized type (collections/maps). * * <h5 class='section'>Examples:</h5> @@ -250,10 +262,13 @@ public abstract class Parser extends CoreObject { * <jc>// Parse into a map containing string keys and values of lists containing beans.</jc> * Map m = p.parse(json, TreeMap.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>); * </p> + * * <p> * <code>Collection</code> classes are assumed to be followed by zero or one objects indicating the element type. + * * <p> * <code>Map</code> classes are assumed to be followed by zero or two meta objects indicating the key and value types. + * * <p> * The array can be arbitrarily long to indicate arbitrarily complex data structures. * @@ -263,38 +278,39 @@ public abstract class Parser extends CoreObject { * </ul> * * @param <T> The class type of the object to create. - * @param input The input. - * <br> - * Character-based parsers can handle the following input class types: - * <ul> - * <li><jk>null</jk> - * <li>{@link Reader} - * <li>{@link CharSequence} - * <li>{@link InputStream} containing UTF-8 encoded text (or charset defined by - * {@link ParserContext#PARSER_inputStreamCharset} property value). - * <li><code><jk>byte</jk>[]</code> containing UTF-8 encoded text (or charset defined by - * {@link ParserContext#PARSER_inputStreamCharset} property value). - * <li>{@link File} containing system encoded text (or charset defined by - * {@link ParserContext#PARSER_fileCharset} property value). - * </ul> - * <br> - * Stream-based parsers can handle the following input class types: - * <ul> - * <li><jk>null</jk> - * <li>{@link InputStream} - * <li><code><jk>byte</jk>[]</code> - * <li>{@link File} - * </ul> - * @param type The object type to create. - * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, - * {@link GenericArrayType} - * @param args The type arguments of the class if it's a collection or map. - * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, - * {@link GenericArrayType} - * <br>Ignored if the main type is not a map or collection. + * @param input + * The input. + * <br>Character-based parsers can handle the following input class types: + * <ul> + * <li><jk>null</jk> + * <li>{@link Reader} + * <li>{@link CharSequence} + * <li>{@link InputStream} containing UTF-8 encoded text (or charset defined by + * {@link ParserContext#PARSER_inputStreamCharset} property value). + * <li><code><jk>byte</jk>[]</code> containing UTF-8 encoded text (or charset defined by + * {@link ParserContext#PARSER_inputStreamCharset} property value). + * <li>{@link File} containing system encoded text (or charset defined by + * {@link ParserContext#PARSER_fileCharset} property value). + * </ul> + * <br>Stream-based parsers can handle the following input class types: + * <ul> + * <li><jk>null</jk> + * <li>{@link InputStream} + * <li><code><jk>byte</jk>[]</code> + * <li>{@link File} + * </ul> + * @param type + * The object type to create. + * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, + * {@link GenericArrayType} + * @param args + * The type arguments of the class if it's a collection or map. + * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, + * {@link GenericArrayType} + * <br>Ignored if the main type is not a map or collection. * @return The parsed object. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. * @see BeanSession#getClassMeta(Type,Type...) for argument syntax for maps and collections. */ @SuppressWarnings("unchecked") @@ -305,6 +321,7 @@ public abstract class Parser extends CoreObject { /** * Same as {@link #parse(Object, Type, Type...)} except optimized for a non-parameterized class. + * * <p> * This is the preferred parse method for simple types since you don't need to cast the results. * @@ -329,12 +346,13 @@ public abstract class Parser extends CoreObject { * </p> * * @param <T> The class type of the object being created. - * @param input The input. - * See {@link #parse(Object, Type, Type...)} for details. + * @param input + * The input. + * See {@link #parse(Object, Type, Type...)} for details. * @param type The object type to create. * @return The parsed object. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. */ public final <T> T parse(Object input, Class<T> type) throws ParseException { ParserSession session = createSession(input); @@ -344,16 +362,18 @@ public abstract class Parser extends CoreObject { /** * Same as {@link #parse(Object, Type, Type...)} except the type has already been converted into a {@link ClassMeta} * object. + * * <p> * This is mostly an internal method used by the framework. * * @param <T> The class type of the object being created. - * @param input The input. - * See {@link #parse(Object, Type, Type...)} for details. + * @param input + * The input. + * See {@link #parse(Object, Type, Type...)} for details. * @param type The object type to create. * @return The parsed object. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. */ public final <T> T parse(Object input, ClassMeta<T> type) throws ParseException { return parseSession(createSession(input), type); @@ -361,20 +381,26 @@ public abstract class Parser extends CoreObject { /** * Create the session object that will be passed in to the parse method. + * * <p> * It's up to implementers to decide what the session object looks like, although typically it's going to be a * subclass of {@link ParserSession}. * - * @param input The input. See {@link #parse(Object, ClassMeta)} for supported input types. + * @param input + * The input. + * See {@link #parse(Object, ClassMeta)} for supported input types. * @param op Optional additional properties. - * @param javaMethod Java method that invoked this parser. - * When using the REST API, this is the Java method invoked by the REST call. - * Can be used to access annotations defined on the method or class. + * @param javaMethod + * Java method that invoked this parser. + * When using the REST API, this is the Java method invoked by the REST call. + * Can be used to access annotations defined on the method or class. * @param outer The outer object for instantiating top-level non-static inner classes. - * @param locale The session locale. - * If <jk>null</jk>, then the locale defined on the context is used. - * @param timeZone The session timezone. - * If <jk>null</jk>, then the timezone defined on the context is used. + * @param locale + * The session locale. + * If <jk>null</jk>, then the locale defined on the context is used. + * @param timeZone + * The session timezone. + * If <jk>null</jk>, then the timezone defined on the context is used. * @param mediaType The session media type (e.g. <js>"application/json"</js>). * @return The new session. */ @@ -385,6 +411,7 @@ public abstract class Parser extends CoreObject { /** * Create a basic session object without overriding properties or specifying <code>javaMethod</code>. + * * <p> * Equivalent to calling <code>createSession(<jk>null</jk>, <jk>null</jk>)</code>. * @@ -402,8 +429,10 @@ public abstract class Parser extends CoreObject { /** * Parses the contents of the specified reader and loads the results into the specified map. + * * <p> * Reader must contain something that serializes to a map (such as text containing a JSON object). + * * <p> * Used in the following locations: * <ul class='spaced-list'> @@ -437,11 +466,14 @@ public abstract class Parser extends CoreObject { /** * Implementation method. + * + * <p> * Default implementation throws an {@link UnsupportedOperationException}. * - * @param session The runtime session object returned by - * {@link #createSession(Object, ObjectMap, Method, Object, Locale, TimeZone, MediaType)}. - * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. + * @param session + * The runtime session object returned by + * {@link #createSession(Object, ObjectMap, Method, Object, Locale, TimeZone, MediaType)}. + * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. * @param m The map being loaded. * @param keyType The class type of the keys, or <jk>null</jk> to default to <code>String.<jk>class</jk></code>. * @param valueType The class type of the values, or <jk>null</jk> to default to whatever is being parsed. @@ -454,6 +486,7 @@ public abstract class Parser extends CoreObject { /** * Parses the contents of the specified reader and loads the results into the specified collection. + * * <p> * Used in the following locations: * <ul class='spaced-list'> @@ -467,8 +500,8 @@ public abstract class Parser extends CoreObject { * @param c The collection being loaded. * @param elementType The class type of the elements, or <jk>null</jk> to default to whatever is being parsed. * @return The same collection that was passed in to allow this method to be chained. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. * @throws UnsupportedOperationException If not implemented. */ public final <E> Collection<E> parseIntoCollection(Object input, Collection<E> c, Type elementType) @@ -487,11 +520,14 @@ public abstract class Parser extends CoreObject { /** * Implementation method. + * + * <p> * Default implementation throws an {@link UnsupportedOperationException}. * - * @param session The runtime session object returned by {@link #createSession(Object, ObjectMap, Method, Object, - * Locale, TimeZone, MediaType)}. - * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. + * @param session + * The runtime session object returned by {@link #createSession(Object, ObjectMap, Method, Object, + * Locale, TimeZone, MediaType)}. + * If <jk>null</jk>, one will be created using {@link #createSession(Object)}. * @param c The collection being loaded. * @param elementType The class type of the elements, or <jk>null</jk> to default to whatever is being parsed. * @return The same collection that was passed in to allow this method to be chained. @@ -504,9 +540,11 @@ public abstract class Parser extends CoreObject { /** * Parses the specified array input with each entry in the object defined by the {@code argTypes} * argument. + * * <p> * Used for converting arrays (e.g. <js>"[arg1,arg2,...]"</js>) into an {@code Object[]} that can be passed * to the {@code Method.invoke(target, args)} method. + * * <p> * Used in the following locations: * <ul class='spaced-list'> @@ -517,8 +555,8 @@ public abstract class Parser extends CoreObject { * @param input The input. Subclasses can support different input types. * @param argTypes Specifies the type of objects to create for each entry in the array. * @return An array of parsed objects. - * @throws ParseException If the input contains a syntax error or is malformed, or is not valid for the specified - * type. + * @throws ParseException + * If the input contains a syntax error or is malformed, or is not valid for the specified type. */ public final Object[] parseArgs(Object input, Type[] argTypes) throws ParseException { if (argTypes == null || argTypes.length == 0) @@ -544,8 +582,9 @@ public abstract class Parser extends CoreObject { * Converts the specified string to the specified type. * * @param session The session object. - * @param outer The outer object if we're converting to an inner object that needs to be created within the context - * of an outer object. + * @param outer + * The outer object if we're converting to an inner object that needs to be created within the context + * of an outer object. * @param s The string to convert. * @param type The class type to convert the string to. * @return The string converted as an object of the specified type. @@ -618,6 +657,7 @@ public abstract class Parser extends CoreObject { /** * Returns the media types handled based on the value of the {@link Consumes} annotation on the parser class. + * * <p> * This method can be overridden by subclasses to determine the media types programmatically. *
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserBuilder.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserBuilder.java index 0f61126..d0369c6 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserBuilder.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserBuilder.java @@ -53,13 +53,14 @@ public class ParserBuilder extends CoreObjectBuilder { /** * <b>Configuration property:</b> Trim parsed strings. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.trimStrings"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to * the POJO. @@ -79,18 +80,20 @@ public class ParserBuilder extends CoreObjectBuilder { /** * <b>Configuration property:</b> Strict mode. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.strict"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * If <jk>true</jk>, strict mode for the parser is enabled. + * * <p> * Strict mode can mean different things for different parsers. - * <p> + * * <table class='styled'> * <tr><th>Parser class</th><th>Strict behavior</th></tr> * <tr> @@ -140,15 +143,17 @@ public class ParserBuilder extends CoreObjectBuilder { /** * <b>Configuration property:</b> Input stream charset. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.inputStreamCharset"</js> * <li><b>Data type:</b> <code>String</code> * <li><b>Default:</b> <js>"UTF-8"</js> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * The character set to use for converting <code>InputStreams</code> and byte arrays to readers. + * * <p> * Used when passing in input streams and byte arrays to {@link Parser#parse(Object, Class)}. * @@ -167,17 +172,20 @@ public class ParserBuilder extends CoreObjectBuilder { /** * <b>Configuration property:</b> File charset. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.fileCharset"</js> * <li><b>Data type:</b> <code>String</code> * <li><b>Default:</b> <js>"default"</js> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * The character set to use for reading <code>Files</code> from the file system. + * * <p> * Used when passing in files to {@link Parser#parse(Object, Class)}. + * * <p> * <js>"default"</js> can be used to indicate the JVM default file system charset. * @@ -196,13 +204,14 @@ public class ParserBuilder extends CoreObjectBuilder { /** * <b>Configuration property:</b> Parser listener. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.listener"</js> * <li><b>Data type:</b> <code>Class<? extends ParserListener></code> * <li><b>Default:</b> <jk>null</jk> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * Class used to listen for errors and warnings that occur during parsing. * http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java index 47d2384..e8fd4b7 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java @@ -22,13 +22,14 @@ public class ParserContext extends BeanContext { /** * <b>Configuration property:</b> Trim parsed strings. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.trimStrings"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to * the POJO. @@ -37,7 +38,7 @@ public class ParserContext extends BeanContext { /** * <b>Configuration property:</b> Strict mode. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.strict"</js> * <li><b>Data type:</b> <code>Boolean</code> @@ -46,10 +47,10 @@ public class ParserContext extends BeanContext { * </ul> * <p> * If <jk>true</jk>, strict mode for the parser is enabled. + * * <p> * Strict mode can mean different things for different parsers. - * However, all reader-based parsers will - * <p> + * * <table class='styled'> * <tr><th>Parser class</th><th>Strict behavior</th></tr> * <tr> @@ -79,15 +80,17 @@ public class ParserContext extends BeanContext { /** * <b>Configuration property:</b> Input stream charset. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.inputStreamCharset"</js> * <li><b>Data type:</b> <code>String</code> * <li><b>Default:</b> <js>"UTF-8"</js> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * The character set to use for converting <code>InputStreams</code> and byte arrays to readers. + * * <p> * Used when passing in input streams and byte arrays to {@link Parser#parse(Object, Class)}. */ @@ -95,17 +98,20 @@ public class ParserContext extends BeanContext { /** * <b>Configuration property:</b> File charset. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.fileCharset"</js> * <li><b>Data type:</b> <code>String</code> * <li><b>Default:</b> <js>"default"</js> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * The character set to use for reading <code>Files</code> from the file system. + * * <p> * Used when passing in files to {@link Parser#parse(Object, Class)}. + * * <p> * <js>"default"</js> can be used to indicate the JVM default file system charset. */ @@ -113,13 +119,14 @@ public class ParserContext extends BeanContext { /** * <b>Configuration property:</b> Parser listener. - * <p> + * * <ul> * <li><b>Name:</b> <js>"Parser.listener"</js> * <li><b>Data type:</b> <code>Class<? extends ParserListener></code> * <li><b>Default:</b> <jk>null</jk> * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> + * * <p> * Class used to listen for errors and warnings that occur during parsing. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java index f429b6f..1a1a258 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java @@ -22,7 +22,7 @@ import org.apache.juneau.http.*; * Represents a group of {@link Parser Parsers} that can be looked up by media type. * * <h5 class='section'>Description:</h5> - * <p> + * * Provides the following features: * <ul class='spaced-list'> * <li> @@ -36,11 +36,13 @@ import org.apache.juneau.http.*; * </ul> * * <h6 class='topic'>Match ordering</h6> - * <p> + * * Parsers are matched against <code>Content-Type</code> strings in the order they exist in this group. + * * <p> * Adding new entries will cause the entries to be prepended to the group. * This allows for previous parsers to be overridden through subsequent calls. + * * <p> * For example, calling <code>g.append(P1.<jk>class</jk>,P2.<jk>class</jk>).append(P3.<jk>class</jk>,P4.<jk>class</jk>)</code> * will result in the order <code>P3, P4, P1, P2</code>. @@ -81,11 +83,13 @@ public final class ParserGroup { /** * Constructor. * - * @param propertyStore The modifiable properties that were used to initialize the parsers. - * A snapshot of these will be made so that we can clone and modify this group. - * @param parsers The parsers defined in this group. - * The order is important because they will be tried in reverse order (e.g. newer first) in which they will be tried - * to match against media types. + * @param propertyStore + * The modifiable properties that were used to initialize the parsers. + * A snapshot of these will be made so that we can clone and modify this group. + * @param parsers + * The parsers defined in this group. + * The order is important because they will be tried in reverse order (e.g. newer first) in which they will be + * tried to match against media types. */ public ParserGroup(PropertyStore propertyStore, Parser[] parsers) { this.propertyStore = PropertyStore.create(propertyStore); @@ -161,6 +165,7 @@ public final class ParserGroup { /** * Returns the media types that all parsers in this group can handle + * * <p> * Entries are ordered in the same order as the parsers in the group. * @@ -172,6 +177,8 @@ public final class ParserGroup { /** * Returns a copy of the property store that was used to create the parsers in this group. + * + * <p> * This method returns a new factory each time so is somewhat expensive. * * @return A new copy of the property store passed in to the constructor. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java index 27335a6..8bed46a 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java @@ -40,6 +40,7 @@ public class ParserGroupBuilder { /** * Create an empty parser group using the specified property store for settings. + * * <p> * Note: Modifying the specified property store externally will also modify it here. * @@ -96,6 +97,7 @@ public class ParserGroupBuilder { /** * Creates a new {@link ParserGroup} object using a snapshot of the settings defined in this builder. + * * <p> * This method can be called multiple times to produce multiple parser groups. * @@ -870,9 +872,11 @@ public class ParserGroupBuilder { /** * Specifies the classloader to use when resolving classes from strings for all parsers in this group. + * * <p> - * Can be used for resolving class names when the classes being created are in a different - * classloader from the Juneau code. + * Can be used for resolving class names when the classes being created are in a different classloader from the + * Juneau code. + * * <p> * If <jk>null</jk>, the system classloader will be used to resolve classes. * http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserListener.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserListener.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserListener.java index a870043..75d39bb 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserListener.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserListener.java @@ -23,21 +23,23 @@ public class ParserListener { /** * Gets called when an unknown bean property is detected in a document. + * * <p> * This method only gets called if {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting is <jk>true</jk>. * Otherwise, the parser will throw a {@link ParseException}. * * @param <T> The class type of the bean. - * @param session The parser session. - * Note that if {@link BeanContext#BEAN_debug} is enabled on the parser, you can get the input as a string through - * {@link ParserSession#getInputAsString()}. + * @param session + * The parser session. + * Note that if {@link BeanContext#BEAN_debug} is enabled on the parser, you can get the input as a string through + * {@link ParserSession#getInputAsString()}. * @param propertyName The property name encountered in the document. * @param beanClass The bean class. * @param bean The bean. - * @param line The line number where the unknown property was found (-1 if parser doesn't support line/column - * indicators). - * @param col The column number where the unknown property was found (-1 if parser doesn't support line/column - * indicators). + * @param line + * The line number where the unknown property was found (-1 if parser doesn't support line/column indicators). + * @param col + * The column number where the unknown property was found (-1 if parser doesn't support line/column indicators). */ public <T> void onUnknownBeanProperty(ParserSession session, String propertyName, Class<T> beanClass, T bean, int line, int col) { onError(session, null, @@ -50,8 +52,8 @@ public class ParserListener { * Called when an error occurs during parsing but is ignored. * * @param session The parsers session. - * Note that if {@link BeanContext#BEAN_debug} is enabled on the parser, you can get the input as a string through - * {@link ParserSession#getInputAsString()}. + * Note that if {@link BeanContext#BEAN_debug} is enabled on the parser, you can get the input as a string through + * {@link ParserSession#getInputAsString()}. * @param t The throwable that was thrown by the getter method. * @param msg The error message. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserReader.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserReader.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserReader.java index c15e65f..daa1593 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserReader.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserReader.java @@ -18,11 +18,14 @@ import org.apache.juneau.internal.*; /** * Similar to a {@link java.io.PushbackReader} with a pushback buffer of 1 character. + * * <p> * Code is optimized to work with a 1 character buffer. + * * <p> - * Additionally keeps track of current line and column number, and provides the ability to set - * mark points and capture characters from the previous mark point. + * Additionally keeps track of current line and column number, and provides the ability to set mark points and capture + * characters from the previous mark point. + * * <p> * <b>Warning:</b> Not thread safe. */ @@ -87,6 +90,8 @@ public class ParserReader extends Reader { /** * Reads a single character. + * + * <p> * Note that this method does NOT process extended unicode characters (i.e. characters above 0x10000), but rather * returns them as two <jk>char</jk>s. * Use {@link #readCodePoint()} to ensure proper handling of extended unicode. @@ -207,16 +212,15 @@ public class ParserReader extends Reader { } /** - * Start buffering the calls to read() so that the text can be gathered from the mark - * point on calling {@code getFromMarked()}. + * Start buffering the calls to read() so that the text can be gathered from the mark point on calling {@code getFromMarked()}. */ public final void mark() { iMark = iCurrent; } - /** * Peeks the next character in the stream. + * * <p> * This is equivalent to doing a {@code read()} followed by an {@code unread()}. * @@ -232,6 +236,7 @@ public class ParserReader extends Reader { /** * Same as {@link #peek()} but skips over any whitespace characters. + * * <p> * This is equivalent to doing a {@code read()} followed by an {@code unread()}. * @@ -292,8 +297,7 @@ public class ParserReader extends Reader { } /** - * Returns the contents of the reusable character buffer as a string, and - * resets the buffer for next usage. + * Returns the contents of the reusable character buffer as a string, and resets the buffer for next usage. * * @return The contents of the reusable character buffer as a string. */ @@ -302,11 +306,10 @@ public class ParserReader extends Reader { } /** - * Same as {@link #getMarked()} except allows you to specify offsets - * into the buffer. + * Same as {@link #getMarked()} except allows you to specify offsets into the buffer. + * * <p> - * For example, to return the marked string, but trim the first and last characters, - * call the following: + * For example, to return the marked string, but trim the first and last characters, call the following: * <p class='bcode'> * getFromMarked(1, -1); * </p> @@ -337,6 +340,8 @@ public class ParserReader extends Reader { /** * Trims off the last character in the marking buffer. + * + * <p> * Useful for removing escape characters from sequences. * * @return This object (for method chaining). @@ -361,6 +366,8 @@ public class ParserReader extends Reader { /** * Replaces the last character in the marking buffer with the specified character. + * + * <p> * <code>offset</code> must be at least <code>1</code> for normal characters, and <code>2</code> for extended * unicode characters in order for the replacement to fit into the buffer. * @@ -402,6 +409,8 @@ public class ParserReader extends Reader { /** * Subclasses can override this method to provide additional filtering. + * + * <p> * Default implementation simply calls the same method on the underlying reader. */ @Override /* Reader */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java index 40d6114..9265799 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserSession.java @@ -27,6 +27,7 @@ import org.apache.juneau.http.*; /** * Session object that lives for the duration of a single use of {@link Parser}. + * * <p> * This class is NOT thread safe. It is meant to be discarded after one-time use. */ @@ -48,37 +49,41 @@ public class ParserSession extends BeanSession { /** * Create a new session using properties specified in the context. * - * @param ctx The context creating this session object. - * The context contains all the configuration settings for this object. - * @param input The input. - * <br>For character-based parsers, this can be any of the following types: - * <ul> - * <li><jk>null</jk> - * <li>{@link Reader} - * <li>{@link CharSequence} - * <li>{@link InputStream} containing UTF-8 encoded text (or whatever the encoding specified by - * {@link ParserContext#PARSER_inputStreamCharset}). - * <li><code><jk>byte</jk>[]</code> containing UTF-8 encoded text (or whatever the encoding specified by - * {@link ParserContext#PARSER_inputStreamCharset}). - * <li>{@link File} containing system encoded text (or whatever the encoding specified by - * {@link ParserContext#PARSER_fileCharset}). - * </ul> - * <br>For byte-based parsers, this can be any of the following types: - * <ul> - * <li><jk>null</jk> - * <li>{@link InputStream} - * <li><code><jk>byte</jk>[]</code> - * <li>{@link File} - * </ul> - * - * @param op The override properties. - * These override any context properties defined in the context. + * @param ctx + * The context creating this session object. + * The context contains all the configuration settings for this object. + * @param input + * The input. + * <br>For character-based parsers, this can be any of the following types: + * <ul> + * <li><jk>null</jk> + * <li>{@link Reader} + * <li>{@link CharSequence} + * <li>{@link InputStream} containing UTF-8 encoded text (or whatever the encoding specified by + * {@link ParserContext#PARSER_inputStreamCharset}). + * <li><code><jk>byte</jk>[]</code> containing UTF-8 encoded text (or whatever the encoding specified by + * {@link ParserContext#PARSER_inputStreamCharset}). + * <li>{@link File} containing system encoded text (or whatever the encoding specified by + * {@link ParserContext#PARSER_fileCharset}). + * </ul> + * <br>For byte-based parsers, this can be any of the following types: + * <ul> + * <li><jk>null</jk> + * <li>{@link InputStream} + * <li><code><jk>byte</jk>[]</code> + * <li>{@link File} + * </ul> + * @param op + * The override properties. + * These override any context properties defined in the context. * @param javaMethod The java method that called this parser, usually the method in a REST servlet. * @param outer The outer object for instantiating top-level non-static inner classes. - * @param locale The session locale. - * If <jk>null</jk>, then the locale defined on the context is used. - * @param timeZone The session timezone. - * If <jk>null</jk>, then the timezone defined on the context is used. + * @param locale + * The session locale. + * If <jk>null</jk>, then the locale defined on the context is used. + * @param timeZone + * The session timezone. + * If <jk>null</jk>, then the timezone defined on the context is used. * @param mediaType The session media type (e.g. <js>"application/json"</js>). */ public ParserSession(ParserContext ctx, ObjectMap op, Object input, Method javaMethod, Object outer, Locale locale, @@ -106,6 +111,8 @@ public class ParserSession extends BeanSession { /** * Wraps the specified input object inside an input stream. + * + * <p> * Subclasses can override this method to implement their own input streams. * * @return The input object wrapped in an input stream, or <jk>null</jk> if the object is null. @@ -150,6 +157,8 @@ public class ParserSession extends BeanSession { /** * Wraps the specified input object inside a reader. + * + * <p> * Subclasses can override this method to implement their own readers. * * @return The input object wrapped in a Reader, or <jk>null</jk> if the object is null. @@ -248,6 +257,7 @@ public class ParserSession extends BeanSession { /** * Returns the Java method that invoked this parser. + * * <p> * When using the REST API, this is the Java method invoked by the REST call. * Can be used to access annotations defined on the method or class. @@ -260,6 +270,8 @@ public class ParserSession extends BeanSession { /** * Returns the outer object used for instantiating top-level non-static member classes. + * + * <p> * When using the REST API, this is the servlet object. * * @return The outer object. @@ -336,8 +348,8 @@ public class ParserSession extends BeanSession { * @param m The map to convert to a bean. * @param pMeta The current bean property being parsed. * @param eType The current expected type being parsed. - * @return The converted bean, or the same map if the <js>"_type"</js> entry wasn't found or didn't resolve to a - * bean. + * @return + * The converted bean, or the same map if the <js>"_type"</js> entry wasn't found or didn't resolve to a bean. */ public final Object cast(ObjectMap m, BeanPropertyMeta pMeta, ClassMeta<?> eType) { @@ -407,8 +419,9 @@ public class ParserSession extends BeanSession { * @param beanMap The bean that doesn't have the expected property. * @param line The line number where the property was found. <code>-1</code> if line numbers are not available. * @param col The column number where the property was found. <code>-1</code> if column numbers are not available. - * @throws ParseException Automatically thrown if {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting - * on this parser is <jk>false</jk> + * @throws ParseException + * Automatically thrown if {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting on this parser is + * <jk>false</jk> * @param <T> The class type of the bean map that doesn't have the expected property. */ public <T> void onUnknownProperty(String propertyName, BeanMap<T> beanMap, int line, int col) throws ParseException { @@ -425,6 +438,7 @@ public class ParserSession extends BeanSession { /** * Returns the input to this parser as a plain string. + * * <p> * This method only returns a value if {@link BeanContext#BEAN_debug} is enabled. * http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/PartParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/PartParser.java b/juneau-core/src/main/java/org/apache/juneau/parser/PartParser.java index d50d62c..76844a4 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/PartParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/PartParser.java @@ -16,13 +16,14 @@ import org.apache.juneau.*; import org.apache.juneau.urlencoding.*; /** - * Interface used to convert HTTP headers, query parameters, form-data parameters, and URI - * path variables to POJOs + * Interface used to convert HTTP headers, query parameters, form-data parameters, and URI path variables to POJOs + * * <p> - * By default, the {@link UrlEncodingParser} class implements this interface so that it can be used to parse - * these HTTP parts. + * By default, the {@link UrlEncodingParser} class implements this interface so that it can be used to parse these HTTP + * parts. * However, the interface is provided to allow custom parsing of these objects by providing your own implementation * class. + * * <p> * Implementations must include a no-arg constructor. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/parser/ReaderParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ReaderParser.java b/juneau-core/src/main/java/org/apache/juneau/parser/ReaderParser.java index 39aa2b3..9d9c710 100644 --- a/juneau-core/src/main/java/org/apache/juneau/parser/ReaderParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/parser/ReaderParser.java @@ -19,7 +19,7 @@ import org.apache.juneau.annotation.*; * Subclass of {@link Parser} for characters-based parsers. * * <h5 class='section'>Description:</h5> - * <p> + * * This class is typically the parent class of all character-based parsers. * It has 1 abstract method to implement... * <ul> @@ -27,8 +27,9 @@ import org.apache.juneau.annotation.*; * </ul> * * <h6 class='topic'>@Consumes annotation</h6> - * <p> + * * The media types that this parser can handle is specified through the {@link Consumes @Consumes} annotation. + * * <p> * However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} method. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java index c0cc95c..c25c2a0 100644 --- a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java @@ -20,25 +20,27 @@ import org.apache.juneau.parser.*; import org.apache.juneau.transform.*; /** - * Parsers HTTP plain text request bodies into <a class="doclink" - * href="../../../../overview-summary.html#Core.PojoCategories">Group 5</a> POJOs. + * Parsers HTTP plain text request bodies into <a class="doclink" href="../../../../overview-summary.html#Core.PojoCategories">Group 5</a> + * POJOs. * * <h5 class='section'>Media types:</h5> - * <p> + * * Handles <code>Accept</code> types: <code>text/plain</code> + * * <p> * Produces <code>Content-Type</code> types: <code>text/plain</code> * * <h5 class='section'>Description:</h5> - * <p> + * * Essentially just converts plain text to POJOs via static <code>fromString()</code> or <code>valueOf()</code>, or * through constructors that take a single string argument. + * * <p> * Also parses objects using a transform if the object class has an {@link PojoSwap PojoSwap<?,String>} transform * defined on it. * * <h5 class='section'>Configurable properties:</h5> - * <p> + * * This class has the following properties associated with it: * <ul> * <li>{@link ParserContext} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java index 4f9dd12..2dd95b6 100644 --- a/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java @@ -21,20 +21,22 @@ import org.apache.juneau.transform.*; * Serializes POJOs to plain text using just the <code>toString()</code> method on the serialized object. * * <h5 class='section'>Media types:</h5> - * <p> + * * Handles <code>Accept</code> types: <code>text/plain</code> + * * <p> * Produces <code>Content-Type</code> types: <code>text/plain</code> * * <h5 class='section'>Description:</h5> - * <p> + * * Essentially converts POJOs to plain text using the <code>toString()</code> method. + * * <p> * Also serializes objects using a transform if the object class has an {@link PojoSwap PojoSwap<?,String>} * transform defined on it. * * <h5 class='section'>Configurable properties:</h5> - * <p> + * * This class has the following properties associated with it: * <ul> * <li>{@link SerializerContext} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/Body.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/Body.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/Body.java index 5dd7b25..1fd6673 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/Body.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/Body.java @@ -21,8 +21,7 @@ import java.lang.annotation.*; import org.apache.juneau.serializer.*; /** - * Annotation applied to Java method arguments of interface proxies to denote that they are the HTTP body of the - * request. + * Annotation applied to Java method arguments of interface proxies to denote that they are the HTTP body of the request. * * <h5 class='section'>Example:</h5> * <p class='bcode'> @@ -33,6 +32,7 @@ import org.apache.juneau.serializer.*; * String myProxyMethod(<ja>@Body</ja> MyPojo pojo); * } * </p> + * * <p> * The argument can be any of the following types: * <ul class='spaced-list'> @@ -48,6 +48,7 @@ import org.apache.juneau.serializer.*; * <li> * <code>NameValuePairs</code> - Converted to a URL-encoded FORM post. * </ul> + * * <p> * The annotation can also be applied to a bean property field or getter when the argument is annotated with * {@link RequestBean @RequestBean}: http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/FormData.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/FormData.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/FormData.java index 7f7f6e3..4a5fbb4 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/FormData.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/FormData.java @@ -62,6 +62,7 @@ import org.apache.juneau.urlencoding.*; * * } * </p> + * * <p> * The annotation can also be applied to a bean property field or getter when the argument is annotated with * {@link RequestBean @RequestBean}: @@ -113,12 +114,11 @@ import org.apache.juneau.urlencoding.*; * Reader getReader(); * } * </p> + * * <p> * The {@link #name()} and {@link #value()} elements are synonyms for specifying the parameter name. * Only one should be used. - * <br> - * The following annotations are fully equivalent: - * <p> + * <br>The following annotations are fully equivalent: * <p class='bcode'> * <ja>@FormData</ja>(name=<js>"foo"</js>) * @@ -141,11 +141,14 @@ public @interface FormData { /** * The form post parameter name. + * * <p> * Note that {@link #name()} and {@link #value()} are synonyms. + * * <p> * The value should be either <js>"*"</js> to represent multiple name/value pairs, or a label that defines the * form data parameter name. + * * <p> * A blank value (the default) has the following behavior: * <ul class='spaced-list'> @@ -192,6 +195,7 @@ public @interface FormData { /** * A synonym for {@link #name()}. + * * <p> * Allows you to use shortened notation if you're only specifying the name. */ @@ -199,6 +203,7 @@ public @interface FormData { /** * Skips this value if it's an empty string or empty collection/array. + * * <p> * Note that <jk>null</jk> values are already ignored. */ @@ -206,9 +211,11 @@ public @interface FormData { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/FormDataIfNE.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/FormDataIfNE.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/FormDataIfNE.java index 36849d2..91a1171 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/FormDataIfNE.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/FormDataIfNE.java @@ -53,9 +53,11 @@ public @interface FormDataIfNE { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/Header.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/Header.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/Header.java index e7c4f18..751cc0f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/Header.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/Header.java @@ -51,6 +51,7 @@ import org.apache.juneau.urlencoding.*; * String myProxyMethod4(<ja>@Header</ja> MyBean myBean); * } * </p> + * * <p> * The annotation can also be applied to a bean property field or getter when the argument is annotated with * {@link RequestBean @RequestBean}: @@ -97,11 +98,11 @@ import org.apache.juneau.urlencoding.*; * MyBean getBean(); * } * </p> + * * <p> * The {@link #name()} and {@link #value()} elements are synonyms for specifying the header name. * Only one should be used. * <br>The following annotations are fully equivalent: - * <p> * <p class='bcode'> * <ja>@Header</ja>(name=<js>"Foo"</js>) * @@ -124,11 +125,14 @@ public @interface Header { /** * The HTTP header name. + * * <p> * A blank value (the default) indicates to reuse the bean property name when used on a request bean property. + * * <p> * The value should be either <js>"*"</js> to represent multiple name/value pairs, or a label that defines the * header name. + * * <p> * A blank value (the default) has the following behavior: * <ul class='spaced-list'> @@ -176,6 +180,7 @@ public @interface Header { /** * A synonym for {@link #name()}. + * * <p> * Allows you to use shortened notation if you're only specifying the name. */ @@ -183,6 +188,7 @@ public @interface Header { /** * Skips this value if it's an empty string or empty collection/array. + * * <p> * Note that <jk>null</jk> values are already ignored. */ @@ -190,9 +196,11 @@ public @interface Header { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/HeaderIfNE.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/HeaderIfNE.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/HeaderIfNE.java index b039ff0..7e34ba3 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/HeaderIfNE.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/HeaderIfNE.java @@ -53,9 +53,11 @@ public @interface HeaderIfNE { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/Path.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/Path.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/Path.java index bb8c08c..cc86b04 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/Path.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/Path.java @@ -49,6 +49,7 @@ import org.apache.juneau.urlencoding.*; * String myProxyMethod4(<ja>@Path</ja> MyBean myBean); * } * </p> + * * <p> * The annotation can also be applied to a bean property field or getter when the argument is annotated with * {@link RequestBean @RequestBean}: @@ -95,11 +96,11 @@ import org.apache.juneau.urlencoding.*; * MyBean getMyBean(); * } * </p> + * * <p> * The {@link #name()} and {@link #value()} elements are synonyms for specifying the path variable name. * Only one should be used. * <br>The following annotations are fully equivalent: - * <p> * <p class='bcode'> * <ja>@Path</ja>(name=<js>"foo"</js>) * @@ -122,11 +123,14 @@ public @interface Path { /** * The path parameter name. + * * <p> * Note that {@link #name()} and {@link #value()} are synonyms. + * * <p> * The value should be either <js>"*"</js> to represent multiple name/value pairs, or a label that defines the * path variable name. + * * <p> * A blank value (the default) has the following behavior: * <ul class='spaced-list'> @@ -171,6 +175,7 @@ public @interface Path { /** * A synonym for {@link #name()}. + * * <p> * Allows you to use shortened notation if you're only specifying the name. */ @@ -178,9 +183,11 @@ public @interface Path { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/Query.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/Query.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/Query.java index a43f4e5..88b7db5 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/Query.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/Query.java @@ -61,6 +61,7 @@ import org.apache.juneau.urlencoding.*; * String myProxyMethod6(<ja>@Query</ja> Reader reader); * } * </p> + * * <p> * The annotation can also be applied to a bean property field or getter when the argument is annotated with * {@link RequestBean @RequestBean}: @@ -112,6 +113,7 @@ import org.apache.juneau.urlencoding.*; * Reader getReader(); * } * </p> + * * <p> * The {@link #name()} and {@link #value()} elements are synonyms for specifying the parameter name. * Only one should be used. @@ -138,11 +140,14 @@ public @interface Query { /** * The query parameter name. + * * <p> * Note that {@link #name()} and {@link #value()} are synonyms. + * * <p> * The value should be either <js>"*"</js> to represent multiple name/value pairs, or a label that defines the * query parameter name. + * * <p> * A blank value (the default) has the following behavior: * <ul class='spaced-list'> @@ -189,6 +194,7 @@ public @interface Query { /** * A synonym for {@link #name()}. + * * <p> * Allows you to use shortened notation if you're only specifying the name. */ @@ -196,6 +202,7 @@ public @interface Query { /** * Skips this value if it's an empty string or empty collection/array. + * * <p> * Note that <jk>null</jk> values are already ignored. */ @@ -203,9 +210,11 @@ public @interface Query { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/QueryIfNE.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/QueryIfNE.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/QueryIfNE.java index be70654..14dcf06 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/QueryIfNE.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/QueryIfNE.java @@ -53,9 +53,11 @@ public @interface QueryIfNE { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the {@link RequestBean} annotation, * then on the client which by default is {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethod.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethod.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethod.java index fd9f8e2..906f992 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethod.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethod.java @@ -20,6 +20,7 @@ import java.lang.annotation.*; /** * Annotation applied to Java methods on interface proxy classes. + * * <p> * The return type on the Java method can be any of the following: * <ul> @@ -49,6 +50,7 @@ public @interface RemoteMethod { /** * The path to the REST service for this Java method relative to the parent proxy interface URL. + * * <p> * The default value is the Java method name (e.g. <js>"http://localhost/root-url/org.foo.MyInterface/myMethod"</js>) * if {@link Remoteable#methodPaths() @Remoteable.methodPaths()} is <js>"NAME"</js>, or the Java method signature @@ -59,12 +61,14 @@ public @interface RemoteMethod { /** * Defines the HTTP method to use for REST calls. + * * <p> * Possible values: * <ul> * <li><js>"POST"</js> (default) - Parameters are serialized using the serializer registered with the RestClient. * <li><js>"GET"</js> - Parameters are serialized using the UrlEncodingSerializer registered with the RestClient. * </ul> + * * <p> * The default value is <js>"POST"</js>. */ @@ -72,6 +76,7 @@ public @interface RemoteMethod { /** * The value the remoteable method returns. + * * <p> * Possible values: * <ul> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java index 394c6ba..ee8447f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteMethodArg.java @@ -49,9 +49,9 @@ public class RemoteMethodArg { * @param name2 The argument name pulled from value(). * @param index The zero-based index of the argument on the Java method. * @param skipIfNE The value is skipped if it's null/empty. - * @param serializer The class to use for serializing headers, query parameters, form-data parameters, and - * path variables. - * If {@link UrlEncodingSerializer}, then the url-encoding serializer defined on the client will be used. + * @param serializer + * The class to use for serializing headers, query parameters, form-data parameters, and path variables. + * If {@link UrlEncodingSerializer}, then the url-encoding serializer defined on the client will be used. */ protected RemoteMethodArg(String name, String name2, int index, boolean skipIfNE, Class<? extends PartSerializer> serializer) { this.name = name.isEmpty() ? name2 : name; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/Remoteable.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/Remoteable.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/Remoteable.java index 73e8b8c..4cb1964 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/Remoteable.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/Remoteable.java @@ -36,9 +36,11 @@ public @interface Remoteable { /** * The absolute or relative path of the REST service. + * * <p> * When a relative path is specified, it's relative to the root-url defined on the <code>RestClient</code> used * to instantiate the interface. + * * <p> * When no path is specified, the path is assumed to be the class name (e.g. * <js>"http://localhost/root-url/org.foo.MyInterface"</js>) @@ -47,6 +49,7 @@ public @interface Remoteable { /** * Identifies which methods on the interface should be exposed through the proxy. + * * <p> * The options are: * <ul> @@ -61,6 +64,7 @@ public @interface Remoteable { /** * Defines the methodology to use for the path names of the methods when not explicitly defined via * {@link RemoteMethod#path() @RemoteMethod.path()}. + * * <p> * The options are: * <ul> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java index 5931ff8..82a17d8 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMeta.java @@ -21,9 +21,10 @@ import java.util.*; /** * Contains the meta-data about a remoteable interface. + * * <p> - * Captures the information in {@link Remoteable @Remoteable} and {@link RemoteMethod @RemoteMethod} - * annotations for caching and reuse. + * Captures the information in {@link Remoteable @Remoteable} and {@link RemoteMethod @RemoteMethod} annotations for + * caching and reuse. * * <h6 class='topic'>Additional Information</h6> * <ul class='doctree'> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java index 0495438..3568dd5 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java @@ -21,6 +21,7 @@ import java.util.*; /** * Contains the meta-data about a Java method on a remoteable interface. + * * <p> * Captures the information in {@link RemoteMethod @RemoteMethod} annotations for caching and reuse. * http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/remoteable/RequestBean.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/remoteable/RequestBean.java b/juneau-core/src/main/java/org/apache/juneau/remoteable/RequestBean.java index 605f8b1..c0d0b13 100644 --- a/juneau-core/src/main/java/org/apache/juneau/remoteable/RequestBean.java +++ b/juneau-core/src/main/java/org/apache/juneau/remoteable/RequestBean.java @@ -97,9 +97,11 @@ public @interface RequestBean { /** * Specifies the {@link PartSerializer} class used for serializing values to strings. + * * <p> * The default value defaults to the using the part serializer defined on the client which by default is * {@link UrlEncodingSerializer}. + * * <p> * This annotation is provided to allow values to be custom serialized. */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java index c181a02..9b86b70 100644 --- a/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java @@ -23,7 +23,7 @@ import org.apache.juneau.annotation.*; * Subclass of {@link Serializer} for byte-based serializers. * * <h5 class='section'>Description:</h5> - * <p> + * * This class is typically the parent class of all byte-based serializers. * It has 1 abstract method to implement... * <ul> @@ -31,8 +31,9 @@ import org.apache.juneau.annotation.*; * </ul> * * <h6 class='topic'>@Produces annotation</h6> - * <p> + * * The media types that this serializer can produce is specified through the {@link Produces @Produces} annotation. + * * <p> * However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} * and {@link #getResponseContentType()} methods. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/serializer/PartSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/PartSerializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/PartSerializer.java index 9b5f21b..940d6b0 100644 --- a/juneau-core/src/main/java/org/apache/juneau/serializer/PartSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/serializer/PartSerializer.java @@ -19,6 +19,7 @@ import org.apache.juneau.urlencoding.*; /** * Interface used to convert POJOs to simple strings in HTTP headers, query parameters, form-data parameters, and URI * path variables. + * * <p> * By default, the {@link UrlEncodingSerializer} class implements this interface so that it can be used to serialize * these HTTP parts. @@ -35,6 +36,7 @@ import org.apache.juneau.urlencoding.*; * <li>{@link RequestBean#serializer()} * <li><code>RestClientBuilder.partSerializer(Class)</code> * </ul> + * * <p> * Implementations must include a no-arg constructor. */ @@ -43,6 +45,7 @@ public interface PartSerializer { /** * Converts the specified value to a string that can be used as an HTTP header value, query parameter value, * form-data parameter, or URI path variable. + * * <p> * Returned values should NOT be URL-encoded. This will happen automatically. * http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/f400b0c0/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java index 70bbd4f..ac46f35 100644 --- a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java @@ -28,14 +28,16 @@ import org.apache.juneau.soap.*; * Parent class for all Juneau serializers. * * <h5 class='section'>Description:</h5> - * <p> + * * Base serializer class that serves as the parent class for all serializers. + * * <p> * Subclasses should extend directly from {@link OutputStreamSerializer} or {@link WriterSerializer}. * * <h6 class='topic'>@Produces annotation</h6> - * <p> + * * The media types that this serializer can produce is specified through the {@link Produces @Produces} annotation. + * * <p> * However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()} * and {@link #getResponseContentType()} methods. @@ -83,11 +85,14 @@ public abstract class Serializer extends CoreObject { /** * Serializes a POJO to the specified output stream or writer. + * * <p> * This method should NOT close the context object. - * @param session The serializer session object return by {@link #createSession(Object, ObjectMap, Method, Locale, - * TimeZone, MediaType, UriContext)}. - * If <jk>null</jk>, session is created using {@link #createSession(Object)}. + * + * @param session + * The serializer session object return by {@link #createSession(Object, ObjectMap, Method, Locale, TimeZone, + * MediaType, UriContext)}. + * If <jk>null</jk>, session is created using {@link #createSession(Object)}. * @param o The object to serialize. * @throws Exception If thrown from underlying stream, or if the input contains a syntax error or is malformed. */ @@ -95,13 +100,13 @@ public abstract class Serializer extends CoreObject { /** * Shortcut method for serializing objects directly to either a <code>String</code> or <code><jk>byte</jk>[]</code> - * depending on the serializer type. - * <p> + * depending on the serializer type. * * @param o The object to serialize. - * @return The serialized object. - * <br>Character-based serializers will return a <code>String</code> - * <br>Stream-based serializers will return a <code><jk>byte</jk>[]</code> + * @return + * The serialized object. + * <br>Character-based serializers will return a <code>String</code> + * <br>Stream-based serializers will return a <code><jk>byte</jk>[]</code> * @throws SerializeException If a problem occurred trying to convert the output. */ public abstract Object serialize(Object o) throws SerializeException; @@ -113,9 +118,10 @@ public abstract class Serializer extends CoreObject { /** * Serialize the specified object using the specified session. * - * @param session The serializer session object return by {@link #createSession(Object, ObjectMap, Method, Locale, - * TimeZone, MediaType, UriContext)}. - * If <jk>null</jk>, session is created using {@link #createSession(Object)}. + * @param session + * The serializer session object return by {@link #createSession(Object, ObjectMap, Method, Locale, TimeZone, + * MediaType, UriContext)}. + * If <jk>null</jk>, session is created using {@link #createSession(Object)}. * @param o The object to serialize. * @throws SerializeException If a problem occurred trying to convert the output. */ @@ -136,22 +142,24 @@ public abstract class Serializer extends CoreObject { /** * Serializes a POJO to the specified output stream or writer. + * * <p> * Equivalent to calling <code>serializer.serialize(o, out, <jk>null</jk>);</code> * * @param o The object to serialize. - * @param output The output object. - * <br>Character-based serializers can handle the following output class types: - * <ul> - * <li>{@link Writer} - * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. - * <li>{@link File} - Output will be written as system-default encoded stream. - * </ul> - * <br>Stream-based serializers can handle the following output class types: - * <ul> - * <li>{@link OutputStream} - * <li>{@link File} - * </ul> + * @param output + * The output object. + * <br>Character-based serializers can handle the following output class types: + * <ul> + * <li>{@link Writer} + * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. + * <li>{@link File} - Output will be written as system-default encoded stream. + * </ul> + * <br>Stream-based serializers can handle the following output class types: + * <ul> + * <li>{@link OutputStream} + * <li>{@link File} + * </ul> * @throws SerializeException If a problem occurred trying to convert the output. */ public final void serialize(Object o, Object output) throws SerializeException { @@ -161,32 +169,38 @@ public abstract class Serializer extends CoreObject { /** * Create the session object that will be passed in to the serialize method. + * * <p> * It's up to implementers to decide what the session object looks like, although typically it's going to be a * subclass of {@link SerializerSession}. * - * @param output The output object. - * <br>Character-based serializers can handle the following output class types: - * <ul> - * <li>{@link Writer} - * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. - * <li>{@link File} - Output will be written as system-default encoded stream. - * </ul> - * <br>Stream-based serializers can handle the following output class types: - * <ul> - * <li>{@link OutputStream} - * <li>{@link File} - * </ul> + * @param output + * The output object. + * <br>Character-based serializers can handle the following output class types: + * <ul> + * <li>{@link Writer} + * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. + * <li>{@link File} - Output will be written as system-default encoded stream. + * </ul> + * <br>Stream-based serializers can handle the following output class types: + * <ul> + * <li>{@link OutputStream} + * <li>{@link File} + * </ul> * @param op Optional additional properties. - * @param javaMethod Java method that invoked this serializer. - * When using the REST API, this is the Java method invoked by the REST call. - * Can be used to access annotations defined on the method or class. - * @param locale The session locale. - * If <jk>null</jk>, then the locale defined on the context is used. - * @param timeZone The session timezone. - * If <jk>null</jk>, then the timezone defined on the context is used. + * @param javaMethod + * Java method that invoked this serializer. + * When using the REST API, this is the Java method invoked by the REST call. + * Can be used to access annotations defined on the method or class. + * @param locale + * The session locale. + * If <jk>null</jk>, then the locale defined on the context is used. + * @param timeZone + * The session timezone. + * If <jk>null</jk>, then the timezone defined on the context is used. * @param mediaType The session media type (e.g. <js>"application/json"</js>). - * @param uriContext The URI context. + * @param uriContext + * The URI context. * Identifies the current request URI used for resolution of URIs to absolute or root-relative form. * @return The new session. */ @@ -197,21 +211,23 @@ public abstract class Serializer extends CoreObject { /** * Create a basic session object without overriding properties or specifying <code>javaMethod</code>. + * * <p> * Equivalent to calling <code>createSession(<jk>null</jk>, <jk>null</jk>)</code>. * - * @param output The output object. - * <br>Character-based serializers can handle the following output class types: - * <ul> - * <li>{@link Writer} - * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. - * <li>{@link File} - Output will be written as system-default encoded stream. - * </ul> - * <br>Stream-based serializers can handle the following output class types: - * <ul> - * <li>{@link OutputStream} - * <li>{@link File} - * </ul> + * @param output + * The output object. + * <br>Character-based serializers can handle the following output class types: + * <ul> + * <li>{@link Writer} + * <li>{@link OutputStream} - Output will be written as UTF-8 encoded stream. + * <li>{@link File} - Output will be written as system-default encoded stream. + * </ul> + * <br>Stream-based serializers can handle the following output class types: + * <ul> + * <li>{@link OutputStream} + * <li>{@link File} + * </ul> * @return The new session. */ protected SerializerSession createSession(Object output) { @@ -220,8 +236,10 @@ public abstract class Serializer extends CoreObject { /** * Converts the contents of the specified object array to a list. + * * <p> * Works on both object and primitive arrays. + * * <p> * In the case of multi-dimensional arrays, the outgoing list will contain elements of type n-1 dimension. * i.e. if {@code type} is <code><jk>int</jk>[][]</code> then {@code list} will have entries of type @@ -245,6 +263,7 @@ public abstract class Serializer extends CoreObject { /** * Returns the media types handled based on the value of the {@link Produces} annotation on the serializer class. + * * <p> * This method can be overridden by subclasses to determine the media types programmatically. * @@ -265,17 +284,20 @@ public abstract class Serializer extends CoreObject { /** * Optional method that specifies HTTP request headers for this serializer. + * * <p> * For example, {@link SoapXmlSerializer} needs to set a <code>SOAPAction</code> header. + * * <p> * This method is typically meaningless if the serializer is being used stand-alone (i.e. outside of a REST server * or client). * - * @param properties Optional run-time properties (the same that are passed to - * {@link WriterSerializer#doSerialize(SerializerSession, Object)}. - * Can be <jk>null</jk>. - * @return The HTTP headers to set on HTTP requests. - * Can be <jk>null</jk>. + * @param properties + * Optional run-time properties (the same that are passed to {@link WriterSerializer#doSerialize(SerializerSession, Object)}. + * Can be <jk>null</jk>. + * @return + * The HTTP headers to set on HTTP requests. + * Can be <jk>null</jk>. */ public ObjectMap getResponseHeaders(ObjectMap properties) { return ObjectMap.EMPTY_MAP; @@ -284,11 +306,13 @@ public abstract class Serializer extends CoreObject { /** * Optional method that returns the response <code>Content-Type</code> for this serializer if it is different from * the matched media type. + * * <p> * This method is specified to override the content type for this serializer. * For example, the {@link org.apache.juneau.json.JsonSerializer.Simple} class returns that it handles media type * <js>"text/json+simple"</js>, but returns <js>"text/json"</js> as the actual content type. * This allows clients to request specific 'flavors' of content using specialized <code>Accept</code> header values. + * * <p> * This method is typically meaningless if the serializer is being used stand-alone (i.e. outside of a REST server * or client).
