Clean up javadocs. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/5c4762ee Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/5c4762ee Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/5c4762ee
Branch: refs/heads/master Commit: 5c4762eed631aa3989cdbe0447a99675b2465d73 Parents: 542fb48 Author: JamesBognar <[email protected]> Authored: Sun Jun 25 20:41:01 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Sun Jun 25 20:41:01 2017 -0400 ---------------------------------------------------------------------- .../java/org/apache/juneau/jena/package.html | 459 ------- .../java/org/apache/juneau/BeanContext.java | 139 ++- .../org/apache/juneau/BeanDictionaryList.java | 6 +- .../main/java/org/apache/juneau/BeanMap.java | 21 +- .../java/org/apache/juneau/BeanMapEntry.java | 3 +- .../main/java/org/apache/juneau/BeanMeta.java | 19 +- .../org/apache/juneau/BeanPropertyMeta.java | 7 +- .../java/org/apache/juneau/BeanRegistry.java | 5 +- .../java/org/apache/juneau/BeanSession.java | 284 +++-- .../main/java/org/apache/juneau/ClassMeta.java | 71 +- .../main/java/org/apache/juneau/Context.java | 3 +- .../org/apache/juneau/CoreObjectBuilder.java | 16 +- .../juneau/InvalidDataConversionException.java | 9 +- .../main/java/org/apache/juneau/ObjectList.java | 6 +- .../main/java/org/apache/juneau/ObjectMap.java | 26 +- .../java/org/apache/juneau/PropertyStore.java | 242 ++-- .../main/java/org/apache/juneau/Session.java | 2 +- .../main/java/org/apache/juneau/UriContext.java | 85 +- .../java/org/apache/juneau/UriResolver.java | 3 +- .../java/org/apache/juneau/annotation/Bean.java | 34 +- .../juneau/annotation/BeanConstructor.java | 9 +- .../apache/juneau/annotation/BeanIgnore.java | 4 +- .../apache/juneau/annotation/BeanProperty.java | 56 +- .../org/apache/juneau/annotation/Consumes.java | 10 +- .../apache/juneau/annotation/NameProperty.java | 6 +- .../juneau/annotation/ParentProperty.java | 5 +- .../java/org/apache/juneau/annotation/Pojo.java | 2 +- .../org/apache/juneau/annotation/Produces.java | 22 +- .../java/org/apache/juneau/annotation/URI.java | 14 +- .../java/org/apache/juneau/csv/CsvParser.java | 1 + .../org/apache/juneau/csv/CsvParserBuilder.java | 1 + .../org/apache/juneau/csv/CsvParserContext.java | 6 +- .../org/apache/juneau/csv/CsvSerializer.java | 1 + .../apache/juneau/csv/CsvSerializerBuilder.java | 1 + .../apache/juneau/csv/CsvSerializerContext.java | 6 +- .../apache/juneau/csv/CsvSerializerSession.java | 13 +- .../main/java/org/apache/juneau/dto/Link.java | 3 +- .../org/apache/juneau/dto/atom/AtomBuilder.java | 27 +- .../org/apache/juneau/dto/atom/Category.java | 5 +- .../java/org/apache/juneau/dto/atom/Common.java | 3 +- .../org/apache/juneau/dto/atom/CommonEntry.java | 5 +- .../org/apache/juneau/dto/atom/Content.java | 3 +- .../java/org/apache/juneau/dto/atom/Entry.java | 3 +- .../java/org/apache/juneau/dto/atom/Feed.java | 3 +- .../org/apache/juneau/dto/atom/Generator.java | 3 +- .../java/org/apache/juneau/dto/atom/Icon.java | 3 +- .../java/org/apache/juneau/dto/atom/Id.java | 3 +- .../java/org/apache/juneau/dto/atom/Link.java | 5 +- .../java/org/apache/juneau/dto/atom/Logo.java | 5 +- .../java/org/apache/juneau/dto/atom/Person.java | 3 +- .../java/org/apache/juneau/dto/atom/Source.java | 3 +- .../java/org/apache/juneau/dto/atom/Text.java | 3 +- .../java/org/apache/juneau/dto/atom/Utils.java | 3 +- .../org/apache/juneau/dto/atom/package.html | 15 +- .../org/apache/juneau/dto/cognos/Column.java | 3 +- .../org/apache/juneau/dto/cognos/DataSet.java | 8 +- .../java/org/apache/juneau/dto/html5/A.java | 10 +- .../java/org/apache/juneau/dto/html5/Abbr.java | 6 +- .../org/apache/juneau/dto/html5/Address.java | 6 +- .../java/org/apache/juneau/dto/html5/Area.java | 17 +- .../org/apache/juneau/dto/html5/Article.java | 6 +- .../java/org/apache/juneau/dto/html5/Aside.java | 6 +- .../java/org/apache/juneau/dto/html5/Audio.java | 33 +- .../java/org/apache/juneau/dto/html5/B.java | 6 +- .../java/org/apache/juneau/dto/html5/Base.java | 10 +- .../java/org/apache/juneau/dto/html5/Bdi.java | 6 +- .../java/org/apache/juneau/dto/html5/Bdo.java | 6 +- .../org/apache/juneau/dto/html5/Blockquote.java | 12 +- .../java/org/apache/juneau/dto/html5/Body.java | 36 +- .../java/org/apache/juneau/dto/html5/Br.java | 6 +- .../org/apache/juneau/dto/html5/Button.java | 20 +- .../org/apache/juneau/dto/html5/Canvas.java | 8 +- .../org/apache/juneau/dto/html5/Caption.java | 6 +- .../java/org/apache/juneau/dto/html5/Cite.java | 6 +- .../java/org/apache/juneau/dto/html5/Code.java | 6 +- .../java/org/apache/juneau/dto/html5/Col.java | 7 +- .../org/apache/juneau/dto/html5/Colgroup.java | 6 +- .../java/org/apache/juneau/dto/html5/Data.java | 10 +- .../org/apache/juneau/dto/html5/Datalist.java | 6 +- .../java/org/apache/juneau/dto/html5/Dd.java | 6 +- .../java/org/apache/juneau/dto/html5/Del.java | 8 +- .../java/org/apache/juneau/dto/html5/Dfn.java | 6 +- .../java/org/apache/juneau/dto/html5/Div.java | 6 +- .../java/org/apache/juneau/dto/html5/Dl.java | 6 +- .../java/org/apache/juneau/dto/html5/Dt.java | 6 +- .../java/org/apache/juneau/dto/html5/Em.java | 6 +- .../java/org/apache/juneau/dto/html5/Embed.java | 12 +- .../org/apache/juneau/dto/html5/Fieldset.java | 9 +- .../org/apache/juneau/dto/html5/Figcaption.java | 6 +- .../org/apache/juneau/dto/html5/Figure.java | 6 +- .../org/apache/juneau/dto/html5/Footer.java | 3 +- .../java/org/apache/juneau/dto/html5/Form.java | 19 +- .../java/org/apache/juneau/dto/html5/H1.java | 6 +- .../java/org/apache/juneau/dto/html5/H2.java | 6 +- .../java/org/apache/juneau/dto/html5/H3.java | 6 +- .../java/org/apache/juneau/dto/html5/H4.java | 6 +- .../java/org/apache/juneau/dto/html5/H5.java | 6 +- .../java/org/apache/juneau/dto/html5/H6.java | 6 +- .../java/org/apache/juneau/dto/html5/Head.java | 6 +- .../org/apache/juneau/dto/html5/Header.java | 6 +- .../java/org/apache/juneau/dto/html5/Hr.java | 6 +- .../java/org/apache/juneau/dto/html5/Html.java | 7 +- .../juneau/dto/html5/HtmlBeanDictionary.java | 3 +- .../apache/juneau/dto/html5/HtmlBuilder.java | 249 +++- .../apache/juneau/dto/html5/HtmlElement.java | 118 +- .../juneau/dto/html5/HtmlElementContainer.java | 12 +- .../juneau/dto/html5/HtmlElementMixed.java | 12 +- .../juneau/dto/html5/HtmlElementRawText.java | 6 +- .../juneau/dto/html5/HtmlElementText.java | 3 +- .../juneau/dto/html5/HtmlElementVoid.java | 3 +- .../java/org/apache/juneau/dto/html5/I.java | 6 +- .../org/apache/juneau/dto/html5/Iframe.java | 20 +- .../java/org/apache/juneau/dto/html5/Img.java | 23 +- .../java/org/apache/juneau/dto/html5/Input.java | 52 +- .../java/org/apache/juneau/dto/html5/Ins.java | 8 +- .../java/org/apache/juneau/dto/html5/Kbd.java | 6 +- .../org/apache/juneau/dto/html5/Keygen.java | 12 +- .../java/org/apache/juneau/dto/html5/Label.java | 8 +- .../org/apache/juneau/dto/html5/Legend.java | 6 +- .../java/org/apache/juneau/dto/html5/Li.java | 6 +- .../java/org/apache/juneau/dto/html5/Link.java | 20 +- .../java/org/apache/juneau/dto/html5/Main.java | 6 +- .../java/org/apache/juneau/dto/html5/Map.java | 7 +- .../java/org/apache/juneau/dto/html5/Mark.java | 6 +- .../java/org/apache/juneau/dto/html5/Meta.java | 19 +- .../java/org/apache/juneau/dto/html5/Meter.java | 12 +- .../java/org/apache/juneau/dto/html5/Nav.java | 6 +- .../org/apache/juneau/dto/html5/Noscript.java | 6 +- .../org/apache/juneau/dto/html5/Object2.java | 23 +- .../java/org/apache/juneau/dto/html5/Ol.java | 14 +- .../org/apache/juneau/dto/html5/Optgroup.java | 8 +- .../org/apache/juneau/dto/html5/Option.java | 10 +- .../org/apache/juneau/dto/html5/Output.java | 9 +- .../java/org/apache/juneau/dto/html5/P.java | 6 +- .../java/org/apache/juneau/dto/html5/Param.java | 11 +- .../java/org/apache/juneau/dto/html5/Pre.java | 6 +- .../org/apache/juneau/dto/html5/Progress.java | 8 +- .../java/org/apache/juneau/dto/html5/Q.java | 7 +- .../java/org/apache/juneau/dto/html5/Rb.java | 6 +- .../java/org/apache/juneau/dto/html5/Rp.java | 6 +- .../java/org/apache/juneau/dto/html5/Rt.java | 6 +- .../java/org/apache/juneau/dto/html5/Rtc.java | 6 +- .../java/org/apache/juneau/dto/html5/Ruby.java | 6 +- .../java/org/apache/juneau/dto/html5/S.java | 6 +- .../java/org/apache/juneau/dto/html5/Samp.java | 6 +- .../org/apache/juneau/dto/html5/Script.java | 16 +- .../org/apache/juneau/dto/html5/Section.java | 6 +- .../org/apache/juneau/dto/html5/Select.java | 13 +- .../java/org/apache/juneau/dto/html5/Small.java | 6 +- .../org/apache/juneau/dto/html5/Source.java | 7 +- .../java/org/apache/juneau/dto/html5/Span.java | 6 +- .../org/apache/juneau/dto/html5/Strong.java | 6 +- .../java/org/apache/juneau/dto/html5/Style.java | 8 +- .../java/org/apache/juneau/dto/html5/Sub.java | 6 +- .../java/org/apache/juneau/dto/html5/Sup.java | 6 +- .../java/org/apache/juneau/dto/html5/Table.java | 8 +- .../java/org/apache/juneau/dto/html5/Tbody.java | 6 +- .../java/org/apache/juneau/dto/html5/Td.java | 9 +- .../org/apache/juneau/dto/html5/Template.java | 6 +- .../org/apache/juneau/dto/html5/Textarea.java | 28 +- .../java/org/apache/juneau/dto/html5/Tfoot.java | 6 +- .../java/org/apache/juneau/dto/html5/Th.java | 12 +- .../java/org/apache/juneau/dto/html5/Thead.java | 6 +- .../java/org/apache/juneau/dto/html5/Time.java | 10 +- .../java/org/apache/juneau/dto/html5/Title.java | 6 +- .../java/org/apache/juneau/dto/html5/Tr.java | 6 +- .../java/org/apache/juneau/dto/html5/Track.java | 16 +- .../java/org/apache/juneau/dto/html5/U.java | 6 +- .../java/org/apache/juneau/dto/html5/Ul.java | 6 +- .../java/org/apache/juneau/dto/html5/Var.java | 6 +- .../java/org/apache/juneau/dto/html5/Video.java | 42 +- .../java/org/apache/juneau/dto/html5/Wbr.java | 6 +- .../org/apache/juneau/dto/html5/package.html | 41 +- .../apache/juneau/dto/jsonschema/JsonType.java | 6 +- .../juneau/dto/jsonschema/JsonTypeArray.java | 6 +- .../apache/juneau/dto/jsonschema/Schema.java | 111 +- .../juneau/dto/jsonschema/SchemaArray.java | 9 +- .../apache/juneau/dto/jsonschema/SchemaMap.java | 11 +- .../juneau/dto/jsonschema/SchemaProperty.java | 6 +- .../jsonschema/SchemaPropertySimpleArray.java | 6 +- .../apache/juneau/dto/jsonschema/SchemaRef.java | 6 +- .../apache/juneau/dto/jsonschema/package.html | 37 +- .../org/apache/juneau/dto/swagger/Contact.java | 3 +- .../dto/swagger/ExternalDocumentation.java | 6 +- .../apache/juneau/dto/swagger/HeaderInfo.java | 113 +- .../org/apache/juneau/dto/swagger/Info.java | 12 +- .../org/apache/juneau/dto/swagger/Items.java | 116 +- .../org/apache/juneau/dto/swagger/License.java | 3 +- .../apache/juneau/dto/swagger/Operation.java | 87 +- .../juneau/dto/swagger/ParameterInfo.java | 202 ++- .../apache/juneau/dto/swagger/ResponseInfo.java | 15 +- .../apache/juneau/dto/swagger/SchemaInfo.java | 39 +- .../juneau/dto/swagger/SecurityScheme.java | 16 +- .../org/apache/juneau/dto/swagger/Swagger.java | 85 +- .../juneau/dto/swagger/SwaggerBuilder.java | 64 +- .../juneau/dto/swagger/SwaggerElement.java | 3 +- .../java/org/apache/juneau/dto/swagger/Tag.java | 18 +- .../java/org/apache/juneau/dto/swagger/Xml.java | 38 +- .../org/apache/juneau/dto/swagger/package.html | 7 +- .../org/apache/juneau/encoders/Encoder.java | 2 +- .../apache/juneau/encoders/EncoderGroup.java | 4 +- .../juneau/encoders/EncoderGroupBuilder.java | 1 + .../juneau/html/HtmlBeanPropertyMeta.java | 12 +- .../org/apache/juneau/html/HtmlClassMeta.java | 3 +- .../apache/juneau/html/HtmlDocSerializer.java | 9 +- .../juneau/html/HtmlDocSerializerContext.java | 42 +- .../juneau/html/HtmlDocSerializerSession.java | 38 +- .../org/apache/juneau/html/HtmlDocTemplate.java | 34 +- .../juneau/html/HtmlDocTemplateBasic.java | 3 +- .../java/org/apache/juneau/html/HtmlLink.java | 3 +- .../java/org/apache/juneau/html/HtmlParser.java | 58 +- .../apache/juneau/html/HtmlParserContext.java | 6 +- .../apache/juneau/html/HtmlParserSession.java | 3 +- .../juneau/html/HtmlSchemaDocSerializer.java | 7 +- .../org/apache/juneau/html/HtmlSerializer.java | 41 +- .../juneau/html/HtmlSerializerBuilder.java | 12 +- .../juneau/html/HtmlSerializerContext.java | 29 +- .../juneau/html/HtmlSerializerSession.java | 12 +- .../juneau/html/HtmlStrippedDocSerializer.java | 3 +- .../java/org/apache/juneau/html/HtmlWriter.java | 3 +- .../apache/juneau/html/SimpleHtmlWriter.java | 3 +- .../java/org/apache/juneau/html/package.html | 3 +- .../java/org/apache/juneau/http/Accept.java | 19 +- .../org/apache/juneau/http/AcceptCharset.java | 3 +- .../org/apache/juneau/http/AcceptEncoding.java | 6 +- .../org/apache/juneau/http/AcceptLanguage.java | 3 +- .../org/apache/juneau/http/AcceptRanges.java | 3 +- .../main/java/org/apache/juneau/http/Age.java | 3 +- .../main/java/org/apache/juneau/http/Allow.java | 3 +- .../org/apache/juneau/http/Authorization.java | 3 +- .../org/apache/juneau/http/CacheControl.java | 3 +- .../java/org/apache/juneau/http/Connection.java | 6 +- .../java/org/apache/juneau/http/Constants.java | 3 +- .../org/apache/juneau/http/ContentEncoding.java | 3 +- .../apache/juneau/http/ContentEncodingEnum.java | 3 +- .../org/apache/juneau/http/ContentLanguage.java | 3 +- .../org/apache/juneau/http/ContentLength.java | 3 +- .../org/apache/juneau/http/ContentLocation.java | 3 +- .../org/apache/juneau/http/ContentRange.java | 3 +- .../org/apache/juneau/http/ContentType.java | 9 +- .../main/java/org/apache/juneau/http/Date.java | 3 +- .../main/java/org/apache/juneau/http/ETag.java | 3 +- .../org/apache/juneau/http/EntityValidator.java | 6 +- .../java/org/apache/juneau/http/Expect.java | 3 +- .../java/org/apache/juneau/http/Expires.java | 3 +- .../main/java/org/apache/juneau/http/From.java | 3 +- .../java/org/apache/juneau/http/HeaderDate.java | 5 +- .../juneau/http/HeaderEntityValidator.java | 5 +- .../juneau/http/HeaderEntityValidatorArray.java | 5 +- .../java/org/apache/juneau/http/HeaderEnum.java | 4 +- .../org/apache/juneau/http/HeaderInteger.java | 4 +- .../apache/juneau/http/HeaderRangeArray.java | 4 +- .../org/apache/juneau/http/HeaderString.java | 4 +- .../apache/juneau/http/HeaderStringArray.java | 4 +- .../java/org/apache/juneau/http/HeaderUri.java | 5 +- .../main/java/org/apache/juneau/http/Host.java | 3 +- .../java/org/apache/juneau/http/HttpMethod.java | 3 +- .../java/org/apache/juneau/http/IfMatch.java | 3 +- .../org/apache/juneau/http/IfModifiedSince.java | 3 +- .../org/apache/juneau/http/IfNoneMatch.java | 3 +- .../java/org/apache/juneau/http/IfRange.java | 5 +- .../apache/juneau/http/IfUnmodifiedSince.java | 3 +- .../org/apache/juneau/http/LastModified.java | 3 +- .../java/org/apache/juneau/http/Location.java | 3 +- .../org/apache/juneau/http/MaxForwards.java | 3 +- .../java/org/apache/juneau/http/MediaType.java | 7 +- .../org/apache/juneau/http/MediaTypeRange.java | 35 +- .../java/org/apache/juneau/http/Pragma.java | 3 +- .../apache/juneau/http/ProxyAuthenticate.java | 3 +- .../apache/juneau/http/ProxyAuthorization.java | 3 +- .../main/java/org/apache/juneau/http/Range.java | 7 +- .../java/org/apache/juneau/http/Referer.java | 3 +- .../java/org/apache/juneau/http/RetryAfter.java | 5 +- .../java/org/apache/juneau/http/Server.java | 5 +- .../org/apache/juneau/http/StringRange.java | 26 +- .../main/java/org/apache/juneau/http/TE.java | 6 +- .../java/org/apache/juneau/http/Trailer.java | 3 +- .../apache/juneau/http/TransferEncoding.java | 3 +- .../java/org/apache/juneau/http/Upgrade.java | 3 +- .../java/org/apache/juneau/http/UserAgent.java | 5 +- .../main/java/org/apache/juneau/http/Vary.java | 6 +- .../main/java/org/apache/juneau/http/Via.java | 3 +- .../java/org/apache/juneau/http/Warning.java | 3 +- .../org/apache/juneau/http/WwwAuthenticate.java | 3 +- .../java/org/apache/juneau/ini/ConfigFile.java | 187 +-- .../apache/juneau/ini/ConfigFileBuilder.java | 27 +- .../org/apache/juneau/ini/ConfigFileFormat.java | 1 + .../org/apache/juneau/ini/ConfigFileImpl.java | 15 +- .../apache/juneau/ini/ConfigFileWrapped.java | 3 +- .../java/org/apache/juneau/ini/Section.java | 3 + .../java/org/apache/juneau/ini/XorEncoder.java | 3 +- .../java/org/apache/juneau/ini/package.html | 82 +- .../org/apache/juneau/internal/ArrayUtils.java | 32 +- .../apache/juneau/internal/ByteArrayCache.java | 4 +- .../org/apache/juneau/internal/ClassUtils.java | 39 +- .../org/apache/juneau/internal/DateUtils.java | 22 +- .../apache/juneau/internal/DelegateBeanMap.java | 8 +- .../apache/juneau/internal/DelegateList.java | 4 +- .../org/apache/juneau/internal/DelegateMap.java | 3 +- .../org/apache/juneau/internal/FileUtils.java | 7 +- .../org/apache/juneau/internal/IOUtils.java | 7 +- .../apache/juneau/internal/JuneauLogger.java | 12 +- .../org/apache/juneau/internal/MultiSet.java | 3 +- .../java/org/apache/juneau/internal/Pair.java | 3 + .../apache/juneau/internal/ReflectionUtils.java | 11 +- .../org/apache/juneau/internal/SimpleMap.java | 4 +- .../juneau/internal/StringBuilderWriter.java | 3 +- .../org/apache/juneau/internal/StringUtils.java | 31 +- .../apache/juneau/internal/TeeOutputStream.java | 12 +- .../org/apache/juneau/internal/TeeWriter.java | 12 +- .../java/org/apache/juneau/internal/Utils.java | 10 +- .../org/apache/juneau/internal/Version.java | 14 +- .../org/apache/juneau/internal/WrappedMap.java | 1 + .../java/org/apache/juneau/jso/JsoParser.java | 1 + .../org/apache/juneau/jso/JsoParserBuilder.java | 1 + .../org/apache/juneau/jso/JsoSerializer.java | 1 + .../apache/juneau/jso/JsoSerializerBuilder.java | 1 + .../org/apache/juneau/json/JsonClassMeta.java | 3 +- .../java/org/apache/juneau/json/JsonParser.java | 85 +- .../apache/juneau/json/JsonParserBuilder.java | 1 + .../apache/juneau/json/JsonParserContext.java | 6 +- .../apache/juneau/json/JsonParserSession.java | 3 +- .../juneau/json/JsonSchemaSerializer.java | 11 +- .../json/JsonSchemaSerializerBuilder.java | 1 + .../org/apache/juneau/json/JsonSerializer.java | 39 +- .../juneau/json/JsonSerializerBuilder.java | 5 +- .../juneau/json/JsonSerializerContext.java | 20 +- .../juneau/json/JsonSerializerSession.java | 16 +- .../java/org/apache/juneau/json/JsonWriter.java | 6 +- .../java/org/apache/juneau/json/package.html | 603 ++------- .../juneau/msgpack/MsgPackInputStream.java | 33 +- .../juneau/msgpack/MsgPackOutputStream.java | 27 +- .../apache/juneau/msgpack/MsgPackParser.java | 22 +- .../juneau/msgpack/MsgPackParserBuilder.java | 1 + .../juneau/msgpack/MsgPackParserContext.java | 6 +- .../juneau/msgpack/MsgPackParserSession.java | 3 +- .../juneau/msgpack/MsgPackSerializer.java | 20 +- .../msgpack/MsgPackSerializerBuilder.java | 1 + .../msgpack/MsgPackSerializerContext.java | 16 +- .../msgpack/MsgPackSerializerSession.java | 13 +- .../main/java/org/apache/juneau/package.html | 65 +- .../apache/juneau/parser/InputStreamParser.java | 1 + .../java/org/apache/juneau/parser/Parser.java | 248 ++-- .../org/apache/juneau/parser/ParserBuilder.java | 4 +- .../org/apache/juneau/parser/ParserContext.java | 3 +- .../org/apache/juneau/parser/ParserGroup.java | 4 +- .../juneau/parser/ParserGroupBuilder.java | 1 + .../apache/juneau/parser/ParserListener.java | 19 +- .../org/apache/juneau/parser/ParserReader.java | 12 +- .../org/apache/juneau/parser/ParserSession.java | 51 +- .../org/apache/juneau/parser/ReaderParser.java | 1 + .../java/org/apache/juneau/parser/package.html | 22 +- .../juneau/plaintext/PlainTextParser.java | 9 +- .../plaintext/PlainTextParserBuilder.java | 1 + .../juneau/plaintext/PlainTextSerializer.java | 4 +- .../plaintext/PlainTextSerializerBuilder.java | 1 + .../java/org/apache/juneau/remoteable/Body.java | 11 +- .../org/apache/juneau/remoteable/FormData.java | 23 +- .../apache/juneau/remoteable/FormDataIfNE.java | 7 +- .../org/apache/juneau/remoteable/Header.java | 22 +- .../apache/juneau/remoteable/HeaderIfNE.java | 7 +- .../java/org/apache/juneau/remoteable/Path.java | 15 +- .../org/apache/juneau/remoteable/Query.java | 21 +- .../org/apache/juneau/remoteable/QueryIfNE.java | 7 +- .../apache/juneau/remoteable/RemoteMethod.java | 22 +- .../juneau/remoteable/RemoteMethodArg.java | 9 +- .../apache/juneau/remoteable/Remoteable.java | 12 +- .../juneau/remoteable/RemoteableMeta.java | 3 +- .../juneau/remoteable/RemoteableMethodMeta.java | 25 +- .../apache/juneau/remoteable/RequestBean.java | 5 +- .../serializer/OutputStreamSerializer.java | 5 +- .../apache/juneau/serializer/Serializer.java | 113 +- .../juneau/serializer/SerializerBuilder.java | 14 +- .../juneau/serializer/SerializerContext.java | 8 +- .../juneau/serializer/SerializerGroup.java | 9 +- .../serializer/SerializerGroupBuilder.java | 5 +- .../juneau/serializer/SerializerListener.java | 4 +- .../juneau/serializer/SerializerSession.java | 89 +- .../juneau/serializer/SerializerWriter.java | 19 +- .../juneau/serializer/WriterSerializer.java | 3 +- .../org/apache/juneau/serializer/package.html | 34 +- .../apache/juneau/soap/SoapXmlSerializer.java | 1 + .../juneau/soap/SoapXmlSerializerBuilder.java | 1 + .../juneau/soap/SoapXmlSerializerContext.java | 7 +- .../org/apache/juneau/svl/DefaultingVar.java | 4 +- .../java/org/apache/juneau/svl/SimpleVar.java | 7 +- .../java/org/apache/juneau/svl/StreamedVar.java | 4 +- .../main/java/org/apache/juneau/svl/Var.java | 16 +- .../java/org/apache/juneau/svl/VarResolver.java | 45 +- .../apache/juneau/svl/VarResolverBuilder.java | 8 +- .../apache/juneau/svl/VarResolverContext.java | 1 + .../apache/juneau/svl/VarResolverSession.java | 18 +- .../java/org/apache/juneau/svl/package.html | 109 +- .../org/apache/juneau/svl/vars/ArgsVar.java | 5 +- .../apache/juneau/svl/vars/ConfigFileVar.java | 5 +- .../java/org/apache/juneau/svl/vars/IfVar.java | 7 +- .../apache/juneau/svl/vars/ManifestFileVar.java | 5 +- .../org/apache/juneau/svl/vars/SwitchVar.java | 3 +- .../transform/AnnotationBeanFilterBuilder.java | 3 +- .../org/apache/juneau/transform/BeanFilter.java | 22 +- .../juneau/transform/BeanFilterBuilder.java | 11 +- .../transform/InterfaceBeanFilterBuilder.java | 8 +- .../org/apache/juneau/transform/PojoSwap.java | 75 +- .../apache/juneau/transform/SurrogateSwap.java | 29 +- .../org/apache/juneau/transform/package.html | 121 +- .../juneau/transforms/BeanStringSwap.java | 6 +- .../apache/juneau/transforms/CalendarSwap.java | 14 +- .../org/apache/juneau/transforms/DateSwap.java | 10 +- .../apache/juneau/transforms/ReaderSwap.java | 10 +- .../juneau/transforms/StringFormatSwap.java | 1 + .../org/apache/juneau/transforms/package.html | 3 +- .../java/org/apache/juneau/uon/UonParser.java | 47 +- .../org/apache/juneau/uon/UonParserBuilder.java | 5 +- .../org/apache/juneau/uon/UonParserContext.java | 10 +- .../org/apache/juneau/uon/UonParserSession.java | 22 +- .../org/apache/juneau/uon/UonSerializer.java | 21 +- .../apache/juneau/uon/UonSerializerBuilder.java | 5 +- .../apache/juneau/uon/UonSerializerContext.java | 40 +- .../apache/juneau/uon/UonSerializerSession.java | 14 +- .../java/org/apache/juneau/uon/UonUtils.java | 3 +- .../java/org/apache/juneau/uon/UonWriter.java | 5 +- .../java/org/apache/juneau/uon/package.html | 654 +++------- .../urlencoding/annotation/UrlEncoding.java | 6 +- .../org/apache/juneau/urlencoding/package.html | 662 +++------- .../main/java/org/apache/juneau/utils/AMap.java | 3 +- .../main/java/org/apache/juneau/utils/Args.java | 8 +- .../java/org/apache/juneau/utils/IOPipe.java | 2 +- .../org/apache/juneau/utils/ManifestFile.java | 4 +- .../org/apache/juneau/utils/MessageBundle.java | 28 +- .../org/apache/juneau/utils/MetadataMap.java | 3 +- .../org/apache/juneau/utils/ObjectUtils.java | 250 ++-- .../apache/juneau/utils/PojoIntrospector.java | 51 +- .../java/org/apache/juneau/utils/PojoQuery.java | 70 +- .../java/org/apache/juneau/utils/PojoRest.java | 57 +- .../apache/juneau/utils/PojoRestException.java | 9 +- .../org/apache/juneau/utils/ProcBuilder.java | 4 +- .../org/apache/juneau/utils/SearchArgs.java | 17 +- .../org/apache/juneau/utils/StringObject.java | 2 + .../org/apache/juneau/utils/ZipFileList.java | 9 +- .../java/org/apache/juneau/xml/Namespace.java | 8 +- .../org/apache/juneau/xml/NamespaceFactory.java | 6 +- .../java/org/apache/juneau/xml/XmlBeanMeta.java | 6 +- .../apache/juneau/xml/XmlBeanPropertyMeta.java | 12 +- .../org/apache/juneau/xml/XmlClassMeta.java | 9 +- .../org/apache/juneau/xml/XmlDocSerializer.java | 6 +- .../java/org/apache/juneau/xml/XmlParser.java | 17 +- .../org/apache/juneau/xml/XmlParserBuilder.java | 13 +- .../org/apache/juneau/xml/XmlParserContext.java | 12 +- .../org/apache/juneau/xml/XmlParserSession.java | 21 +- .../juneau/xml/XmlSchemaDocSerializer.java | 5 +- .../apache/juneau/xml/XmlSchemaSerializer.java | 5 +- .../juneau/xml/XmlSchemaSerializerBuilder.java | 1 + .../org/apache/juneau/xml/XmlSerializer.java | 30 +- .../apache/juneau/xml/XmlSerializerBuilder.java | 22 +- .../apache/juneau/xml/XmlSerializerContext.java | 30 +- .../apache/juneau/xml/XmlSerializerSession.java | 16 +- .../java/org/apache/juneau/xml/XmlUtils.java | 25 +- .../java/org/apache/juneau/xml/XmlWriter.java | 10 +- .../org/apache/juneau/xml/annotation/Xml.java | 9 +- .../apache/juneau/xml/annotation/XmlFormat.java | 10 +- .../apache/juneau/xml/annotation/XmlSchema.java | 16 +- .../java/org/apache/juneau/xml/package.html | 874 +++++-------- juneau-core/src/main/javadoc/overview.html | 1157 ++++++++++++------ .../eclipse-preferences/user-dictionary.txt | 342 ++++++ 464 files changed, 6850 insertions(+), 5683 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html ---------------------------------------------------------------------- diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html index c81d3fd..2808bd4 100644 --- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html +++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html @@ -79,17 +79,6 @@ <li><p><a class='doclink' href='#ParserConfigurableProperties'>Configurable properties</a></p> <li><p><a class='doclink' href='#ParserOtherNotes'>Other notes</a></p> </ol> - <li><p><a class='doclink' href='#RestApiSupport'>REST API support</a></p> - <ol> - <li><p><a class='doclink' href='#RestServerSupport'>REST server support</a></p> - <ol> - <li><p><a class='doclink' href='#RestServletJenaDefault'>Using RestServletJenaDefault</a></p> - <li><p><a class='doclink' href='#RestServlet'>Using RestServlet with annotations</a></p> - <li><p><a class='doclink' href='#DefaultJenaProvider'>Using JAX-RS DefaultJenaProvider</a></p> - <li><p><a class='doclink' href='#BaseProvider'>Using JAX-RS BaseProvider with annotations</a></p> - </ol> - <li><p><a class='doclink' href='#RestClientSupport'>REST client support</a></p> - </ol> </ol> @@ -1005,454 +994,6 @@ </div> - -<!-- ======================================================================================================== --> -<a id="RestApiSupport"></a> -<h2 class='topic' onclick='toggle(this)'>4 - REST API support</h2> -<div class='topic'> - <p> - Juneau provides fully-integrated support for RDF serialization/parsing in the REST server and client APIs. - </p> - <p> - The next two sections describe these in detail. - </p> - - <!-- ======================================================================================================== --> - <a id="RestServerSupport"></a> - <h3 class='topic' onclick='toggle(this)'>4.1 - REST server support</h3> - <div class='topic'> - <p> - There are four general ways of defining REST interfaces with support for RDF media types.<br> - Two using the built-in Juneau Server API, and two using the JAX-RS integration component. - </p> - <ul class='spaced-list'> - <li>Create a servlet that subclasses from {@link org.apache.juneau.rest.jena.RestServletJenaDefault}.<br> - This includes serialization and parsing for all Jena supported types, including all supported flavors of RDF. - <li>Create a servlet that subclasses from {@link org.apache.juneau.rest.RestServlet} and specify the - RDF serializers and parsers using the {@link org.apache.juneau.rest.annotation.RestResource#serializers()} and - {@link org.apache.juneau.rest.annotation.RestResource#parsers()} on the entire servlet class, or - the {@link org.apache.juneau.rest.annotation.RestMethod#serializers()} and {@link org.apache.juneau.rest.annotation.RestMethod#parsers()} - annotations on individual methods within the class. - <li>Register {@link org.apache.juneau.rest.jaxrs.rdf.DefaultJenaProvider} with JAX-RS to provide support RDF support for all JAX-RS resource.<br> - This includes serialization and parsing for all Juneau supported types (JSON, XML, HTML...), including all supported flavors of RDF. - <li>Create and register a subclass of {@link org.apache.juneau.rest.jaxrs.BaseProvider} and specify the serializers and parsers to use on JAX-RS resources. - </ul> - <p> - In general, the Juneau REST server API is much more configurable and easier to use than JAX-RS, but beware that the author may be slightly biased in this statement. - </p> - - <!-- ======================================================================================================== --> - <a id="RestServletJenaDefault"></a> - <h4 class='topic' onclick='toggle(this)'>4.1.1 - Using RestServletJenaDefault</h4> - <div class='topic'> - <p> - The quickest way to implement a REST resource with RDF support is to create a subclass of {@link org.apache.juneau.rest.jena.RestServletJenaDefault}.<br> - This class provides support for all the RDF flavors in addition to JSON, XML, HTML, and URL-Encoding. - </p> - <p> - The reason why RDF support was not added to {@link org.apache.juneau.rest.RestServletDefault} directly was to keep the Jena prerequisites - out of the <code>org.apache.juneau.rest</code> package. - </p> - <p> - The <code>AddressBookResource</code> example shown in the first chapter uses the <code>RestServletJenaDefault</code> class.<br> - The start of the class definition is shown below: - </p> - <p class='bcode'> - <jc>// Proof-of-concept resource that shows off the capabilities of working with POJO resources. - // Consists of an in-memory address book repository.</jc> - <ja>@RestResource</ja>( - messages=<js>"nls/AddressBookResource"</js>, - title=<js>"$L{title}"</js>, - description=<js>"$L{description}"</js>, - htmldoc=<ja>@HtmlDoc</ja>( - links=<js>"{options:'?method=OPTIONS',doc:'doc'}"</js> - ), - properties={ - <ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>), - <ja>@Property</ja>(name=RdfSerializerContext.<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>), - <ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>), - <ja>@Property</ja>(name=HtmlSerializerContext.<jsf>HTML_uriAnchorText</jsf>, value=<jsf>TO_STRING</jsf>) - }, - encoders=GzipEncoder.<jk>class</jk> - ) - <jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault { - </p> - <p> - Notice how serializer and parser properties can be specified using the <code>@RestResource.properties()</code> annotation.<br> - The <jsf>RDF_rdfxml_tab</jsf> and <jsf>RDF_addRootProperty</jsf> are properties on the RDF serializers.<br> - The <jsf>SERIALIZER_quoteChar</jsf> property is common to all serializers.<br> - The remaining properties are specific to the HTML serializer. - </p> - <p> - The <code>$L{...}</code> variable represent localized strings pulled from the resource bundle identified by the <code>messages</code> annotation. - These variables are replaced at runtime based on the HTTP request locale. - Several built-in runtime variable types are defined, and the API can be extended to include user-defined variables. - See {@link org.apache.juneau.rest.RestContext#getVarResolver()} for more information. - </p> - <p> - This document won't go into all the details of the Juneau <code>RestServlet</code> class.<br> - Refer to the <a class='doclink' href='../rest/package-summary.html#TOC'>org.apache.juneau.rest</a> documentation for more information on the REST servlet class in general. - </p> - <p> - The rest of the code in the resource class consists of REST methods that simply accept and return POJOs.<br> - The framework takes care of all content negotiation, serialization/parsing, and error handling.<br> - Below are 3 of those methods to give you a general idea of the concept: - </p> - <p class='bcode'> - <jc>// GET person request handler</jc> - <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404}) - <jk>public</jk> Person getPerson(RestRequest req, RestResponse res, <ja>@Path</ja> <jk>int</jk> id) throws Exception { - res.setPageTitle(req.getPathInfo()); - <jk>return</jk> findPerson(id); - } - - <jc>// POST person handler</jc> - <ja>@RestMethod</ja>(name=<js>"POST"</js>, path=<js>"/people"</js>, guards=AdminGuard.<jk>class</jk>, rc={307,404}) - <jk>public void</jk> createPerson(RestResponse res, <ja>@Body</ja> CreatePerson cp) <jk>throws</jk> Exception { - Person p = addressBook.createPerson(cp); - res.sendRedirect(p.<jf>uri</jf>); - } - - <jc>// DELETE person handler</jc> - <ja>@RestMethod</ja>(name=<js>"DELETE"</js>, path=<js>"/people/{id}"</js>, guards=AdminGuard.<jk>class</jk>, rc={200,404}) - <jk>public</jk> String deletePerson(RestResponse res, <ja>@Path</ja> <jk>int</jk> id) <jk>throws</jk> Exception { - Person p = findPerson(id); - addressBook.remove(p); - <jk>return</jk> <js>"DELETE successful"</js>; - } - </p> - <p> - The resource class can be registered with the web application like any other servlet, or can be - defined as a child of another resource through the {@link org.apache.juneau.rest.annotation.RestResource#children()} annotation. - </div> - - <!-- ======================================================================================================== --> - <a id="RestServlet"></a> - <h4 class='topic' onclick='toggle(this)'>4.1.2 - Using RestServlet with annotations</h4> - <div class='topic'> - <p> - For fine-tuned control of media types, the {@link org.apache.juneau.rest.RestServlet} class - can be subclassed directly.<br> - The serializers/parsers can be specified through annotations at the class and/or method levels. - </p> - <p> - An equivalent <code>AddressBookResource</code> class could be defined to only support RDF/XML using - the following definition: - </p> - <p class='bcode'> - <ja>@RestResource</ja>( - serializers={RdfSerializer.XmlAbbrev.<jk>class</jk>}, - parsers={RdfParser.Xml.<jk>class</jk>}, - properties={ - <ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>), - <ja>@Property</ja>(name=RdfSerializerContext.<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>), - <ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>) - } - ) - <jk>public class</jk> AddressBookResource <jk>extends</jk> RestServlet { - </p> - <p> - Likewise, serializers and parsers can be specified/augmented/overridden at the method level like so: - </p> - <p class='bcode'> - <jc>// GET person request handler</jc> - <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/people/{id}/*"</js>, rc={200,404}, - serializers={RdfSerializer.XmlAbbrev.<jk>class</jk>}, - parsers={RdfParser.Xml.<jk>class</jk>}, - properties={ - <ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>), - <ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>) - } - ) - <jk>public</jk> Person getPerson(RestRequest req, RestResponse res, <ja>@Path</ja> <jk>int</jk> id) throws Exception { - res.setPageTitle(req.getPathInfo()); - <jk>return</jk> findPerson(id); - } - </p> - <p> - The {@link org.apache.juneau.rest.annotation.RestMethod#serializersInherit()} and - {@link org.apache.juneau.rest.annotation.RestMethod#parsersInherit()} control how various artifacts - are inherited from the parent class.<br> - Refer to <a class='doclink' href='../rest/package-summary.html#TOC'>org.apache.juneau.rest</a> for additional information on using these annotations. - </p> - </div> - - <!-- ======================================================================================================== --> - <a id="DefaultJenaProvider"></a> - <h4 class='topic' onclick='toggle(this)'>4.1.3 - Using JAX-RS DefaultJenaProvider</h4> - <div class='topic'> - <p> - RDF media type support in JAX-RS can be achieved by using the {@link org.apache.juneau.rest.jaxrs.rdf.DefaultJenaProvider} class.<br> - It implements the JAX-RS <code>MessageBodyReader</code> and <code>MessageBodyWriter</code> interfaces for all Juneau supported media types. - </p> - <p> - The <code>DefaultJenaProvider</code> class definition is shown below: - </p> - <p class='bcode'> - <ja>@Provider</ja> - <ja>@Produces</ja>( - <js>"application/json,text/json,"</js>+ <jc>// JsonSerializer</jc> - <js>"application/json+simple,text/json+simple,"</js>+ <jc>// JsonSerializer.Simple</jc> - <js>"application/json+schema,text/json+schema,"</js>+ <jc>// JsonSchemaSerializer</jc> - <js>"text/xml,"</js>+ <jc>// XmlDocSerializer</jc> - <js>"text/xml+simple,"</js>+ <jc>// XmlDocSerializer.Simple</jc> - <js>"text/xml+schema,"</js>+ <jc>// XmlSchemaDocSerializer</jc> - <js>"text/html,"</js>+ <jc>// HtmlDocSerializer</jc> - <js>"application/x-www-form-urlencoded,"</js>+ <jc>// UrlEncodingSerializer</jc> - <js>"text/xml+soap,"</js>+ <jc>// SoapXmlSerializer</jc> - <js>"text/xml+rdf,"</js>+ <jc>// RdfSerializer.Xml</jc> - <js>"text/xml+rdf+abbrev,"</js>+ <jc>// RdfSerializer.XmlAbbrev</jc> - <js>"text/n-triple,"</js>+ <jc>// RdfSerializer.NTriple</jc> - <js>"text/turtle,"</js>+ <jc>// RdfSerializer.Turtle</jc> - <js>"text/n3,"</js>+ <jc>// RdfSerializer.N3</jc> - <js>"application/x-java-serialized-object"</js> <jc>// JavaSerializedObjectSerializer</jc> - ) - <ja>@Consumes</ja>( - <js>"application/json,text/json,"</js>+ <jc>// JsonParser</jc> - <js>"text/xml,"</js>+ <jc>// XmlParser</jc> - <js>"text/html,"</js>+ <jc>// HtmlParser</jc> - <js>"application/x-www-form-urlencoded,"</js>+ <jc>// UrlEncodingParser</jc> - <js>"text/xml+rdf,"</js>+ <jc>// RdfParser.Xml</jc> - <js>"text/n-triple,"</js>+ <jc>// RdfParser.NTriple</jc> - <js>"text/turtle,"</js>+ <jc>// RdfParser.Turtle</jc> - <js>"text/n3,"</js>+ <jc>// RdfParser.N3</jc> - <js>"application/x-java-serialized-object"</js> <jc>// JavaSerializedObjectParser</jc> - ) - <ja>@JuneauProvider</ja>( - serializers={ - JsonSerializer.<jk>class</jk>, - JsonSerializer.Simple.<jk>class</jk>, - JsonSchemaSerializer.<jk>class</jk>, - XmlDocSerializer.<jk>class</jk>, - XmlDocSerializer.Simple.<jk>class</jk>, - XmlSchemaDocSerializer.<jk>class</jk>, - HtmlDocSerializer.<jk>class</jk>, - UrlEncodingSerializer.<jk>class</jk>, - SoapXmlSerializer.<jk>class</jk>, - RdfSerializer.Xml.<jk>class</jk>, - RdfSerializer.XmlAbbrev.<jk>class</jk>, - RdfSerializer.NTriple.<jk>class</jk>, - RdfSerializer.Turtle.<jk>class</jk>, - RdfSerializer.N3.<jk>class</jk>, - JavaSerializedObjectSerializer.<jk>class</jk> - }, - parsers={ - JsonParser.<jk>class</jk>, - XmlParser.<jk>class</jk>, - HtmlParser.<jk>class</jk>, - UrlEncodingParser.<jk>class</jk>, - RdfParser.Xml.<jk>class</jk>, - RdfParser.NTriple.<jk>class</jk>, - RdfParser.Turtle.<jk>class</jk>, - RdfParser.N3.<jk>class</jk>, - JavaSerializedObjectParser.<jk>class</jk>, - } - ) - <jk>public final class</jk> DefaultJenaProvider <jk>extends</jk> BaseProvider {} - </p> - <p> - That's the entire class. It consists of only annotations to hook up media types to Juneau serializers and parsers.<br> - The <ja>@Provider</ja>, <ja>@Produces</ja>, and <ja>@Consumes</ja> annotations are standard JAX-RS annotations, and the <ja>@JuneauProvider</ja> annotation is from Juneau. - </p> - <p> - To enable the provider, you need to make the JAX-RS environment aware of it.<br> - In Wink, this is accomplished by adding an entry to a config file. - </p> - <p class='bcode'> - <xt><web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>></xt> - <xt><servlet></xt> - <xt><servlet-name></xt>WinkService<xt></servlet-name></xt> - <xt><servlet-class></xt>org.apache.wink.server.internal.servlet.RestServlet<xt></servlet-class></xt> - <xt><init-param></xt> - <xt><param-name></xt>applicationConfigLocation<xt></param-name></xt> - <xt><param-value></xt>/WEB-INF/wink.cfg<xt></param-value></xt> - <xt></init-param></xt> - <xt></servlet></xt> - </p> - <p> - Simply include a reference to the provider in the configuration file. - <p class='bcode'> - org.apache.juneau.rest.jaxrs.DefaultJenaProvider - </p> - <p> - Properties can be specified on providers through the {@link org.apache.juneau.rest.jaxrs.JuneauProvider#properties()} annotation. - </p> - <p> - Properties can also be specified at the method level by using the {@link org.apache.juneau.rest.annotation.RestMethod#properties} annotation, like so: - </p> - <p class='bcode'> - <ja>@GET</ja> - <ja>@Produces</ja>(<js>"*/*"</js>) - <ja>@RestMethod</ja>( <jc>/* Override some properties */</jc> - properties={ - <ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>), - <ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>) - } - ) - <jk>public</jk> Message getMessage() { - <jk>return</jk> message; - } - </p> - <h6 class='topic'>Limitations</h6> - <p> - In general, the Juneau REST API is considerably more flexible than the JAX-RS API, since you can specify and override - serializers, parsers, properties, transforms, converters, guards, etc... at both the class and method levels.<br> - Therefore, the JAX-RS API has the following limitations that the Juneau Server API does not: - </p> - <ul class='spaced-list'> - <li>The ability to specify different media type providers at the class and method levels.<br> - For example, you may want to use <code>RdfSerializer.Xml</code> with one set of properties on - one class, and another instance with different properties on another class.<br> - There is currently no way to define this at the class level.<br> - You can override properties at the method level, but this can be cumbersome since it would have to be - done for all methods in the resource. - <li>The Juneau Server API allows you to manipulate properties programatically through the {@link org.apache.juneau.rest.RestResponse#setProperty(String,Object)} - method, and through the {@link org.apache.juneau.rest.annotation.Properties} annotation.<br> - There is no equivalent in JAX-RS. - </ul> - </div> - - <!-- ======================================================================================================== --> - <a id="BaseProvider"></a> - <h4 class='topic' onclick='toggle(this)'>4.1.4 - Using JAX-RS BaseProvider with annotations</h4> - <div class='topic'> - <p> - To provide support for only RDF media types, you can define your own provider class, like so: - </p> - <p class='bcode'> - <ja>@Provider</ja> - <ja>@Produces</ja>( - <js>"text/xml+rdf,"</js>+ <jc>// RdfSerializer.Xml</jc> - <js>"text/xml+rdf+abbrev,"</js>+ <jc>// RdfSerializer.XmlAbbrev</jc> - <js>"text/n-triple,"</js>+ <jc>// RdfSerializer.NTriple</jc> - <js>"text/turtle,"</js>+ <jc>// RdfSerializer.Turtle</jc> - <js>"text/n3"</js>+ <jc>// RdfSerializer.N3</jc> - ) - <ja>@Consumes</ja>( - <js>"text/xml+rdf,"</js>+ <jc>// RdfParser.Xml</jc> - <js>"text/n-triple,"</js>+ <jc>// RdfParser.NTriple</jc> - <js>"text/turtle,"</js>+ <jc>// RdfParser.Turtle</jc> - <js>"text/n3"</js> <jc>// RdfParser.N3</jc> - ) - <ja>@JuneauProvider</ja>( - serializers={ - RdfSerializer.Xml.<jk>class</jk>, - RdfSerializer.XmlAbbrev.<jk>class</jk>, - RdfSerializer.NTriple.<jk>class</jk>, - RdfSerializer.Turtle.<jk>class</jk>, - RdfSerializer.N3.<jk>class</jk>, - }, - parsers={ - RdfParser.Xml.<jk>class</jk>, - RdfParser.NTriple.<jk>class</jk>, - RdfParser.Turtle.<jk>class</jk>, - RdfParser.N3.<jk>class</jk>, - }, - properties={ - <ja>@Property</ja>(name=RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, value=<js>"3"</js>), - <ja>@Property</ja>(name=SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>) - } - ) - <jk>public final class</jk> MyRdfProvider <jk>extends</jk> BaseProvider {} - </p> - <p> - Then register it with Wink the same way as <code>DefaultJenaProvider</code>. - </p> - </div> - - </div> - - <!-- ======================================================================================================== --> - <a id="RestClientSupport"></a> - <h3 class='topic' onclick='toggle(this)'>4.2 - REST client support</h3> - <div class='topic'> - <p> - The {@link org.apache.juneau.rest.client.RestClient} class provides an easy-to-use REST client interface with - pluggable media type handling using any of the Juneau serializers and parsers. - </p> - <p> - Defining a client to support RDF media types on HTTP requests and responses can be done in one line of code: - </p> - <p class='bcode'> - <jc>// Create a client to handle RDF/XML requests and responses.</jc> - RestClient client = <jk>new</jk> RestClientBuilder(RdfSerializer.XmlAbbrev.<jk>class</jk>, RdfParser.Xml.<jk>class</jk>).build(); - </p> - <p> - The client handles all content negotiation based on the registered serializers and parsers. - </p> - <p> - The following code is pulled from the main method of the <code>ClientTest</code> class in the sample web application, and - is run against the <code>AddressBookResource</code> class running within the sample app. - It shows how the client can be used to interact with the REST API while completely hiding the negotiated content type and working with nothing more than beans. - </p> - <p class='bcode'> - String root = <js>"http://localhost:9080/sample/addressBook"</js>; - - <jc>// Get the current contents of the address book</jc> - AddressBook ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size()); - - <jc>// Delete the existing entries</jc> - <jk>for</jk> (Person p : ab) { - String r = client.doDelete(p.<jf>uri</jf>).getResponse(String.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Deleted person "</js> + p.<jf>name</jf> + <js>", response = "</js> + r); - } - - <jc>// Make sure they're gone</jc> - ab = client.doGet(root).getResponse(AddressBook.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Number of entries = "</js> + ab.size()); - - <jc>// Add 1st person again</jc> - CreatePerson cp = <jk>new</jk> CreatePerson( - <js>"Barack Obama"</js>, - <jsm>toCalendar</jsm>(<js>"Aug 4, 1961"</js>), - <jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>), - <jk>new</jk> CreateAddress(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>) - ); - Person p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>); - - <jc>// Add 2nd person again, but add addresses separately</jc> - cp = <jk>new</jk> CreatePerson( - <js>"George Walker Bush"</js>, - toCalendar(<js>"Jul 6, 1946"</js>) - ); - p = client.doPost(root + <js>"/people"</js>, cp).getResponse(Person.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Created person "</js> + p.<jf>name</jf> + <js>", uri = "</js> + p.<jf>uri</jf>); - - <jc>// Add addresses to 2nd person</jc> - CreateAddress ca = <jk>new</jk> CreateAddress(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>); - Address a = client.doPost(p.<jf>uri</jf> + <js>"/addresses"</js>, ca).getResponse(Address.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>); - - ca = <jk>new</jk> CreateAddress(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>); - a = client.doPost(p.<jf>uri</jf> + "/addresses"</js>, ca).getResponse(Address.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Created address "</js> + a.<jf>uri</jf>); - - <jc>// Find 1st person, and change name</jc> - Person[] pp = client.doGet(root + <js>"?q={name:\"'Barack+Obama'\"}"</js>).getResponse(Person[].<jk>class</jk>); - String r = client.doPut(pp[0].<jf>uri</jf> + <js>"/name"</js>, <js>"Barack Hussein Obama"</js>).getResponse(String.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"Changed name, response = "</js> + r); - p = client.doGet(pp[0].<jf>uri</jf>).getResponse(Person.<jk>class</jk>); - System.<jsm>out</jsm>.println(<js>"New name = "</js> + p.<jf>name</jf>); - </p> - <p> - The code above produces the following output. - </p> - <p class='bcode'> - Number of entries = 2 - Deleted person Barack Obama, response = DELETE successful - Deleted person George Walker Bush, response = DELETE successful - Number of entries = 0 - Created person Barack Obama, uri = http://localhost:9080/sample/addressBook/people/3 - Created person George Walker Bush, uri = http://localhost:9080/sample/addressBook/people/4 - Created address http://localhost:9080/sample/addressBook/addresses/7 - Created address http://localhost:9080/sample/addressBook/addresses/8 - Changed name, response = PUT successful - New name = Barack Hussein Obama - </p> - </div> -</div> <p align="center"><i><b>*** fÃn ***</b></i></p> </body> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java index b289ea7..5696b49 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java @@ -36,10 +36,10 @@ import org.apache.juneau.transform.*; * This class servers multiple purposes: * <ul class='spaced-list'> * <li>Provides the ability to wrap beans inside {@link Map} interfaces. - * <li>Serves as a repository for metadata on POJOs, such as associated {@link BeanFilter beanFilters}, {@link PropertyNamer property namers}, etc... - * which are used to tailor how POJOs are serialized and parsed. + * <li>Serves as a repository for metadata on POJOs, such as associated {@link BeanFilter beanFilters}, + * {@link PropertyNamer property namers}, etc... which are used to tailor how POJOs are serialized and parsed. * <li>Serves as a common utility class for all {@link Serializer Serializers} and {@link Parser Parsers} - * for serializing and parsing Java beans. + * for serializing and parsing Java beans. * </ul> * <p> * All serializer and parser contexts extend from this context. @@ -48,35 +48,39 @@ import org.apache.juneau.transform.*; * Bean contexts are created through the {@link PropertyStore#getContext(Class)} method. * These context objects are read-only, reusable, and thread-safe. * The {@link PropertyStore} class will typically cache copies of <code>Context</code> objects based on - * the current settings on the factory. + * the current settings on the factory. * <p> * Each bean context maintains a cache of {@link ClassMeta} objects that describe information about classes encountered. * These <code>ClassMeta</code> objects are time-consuming to construct. * Therefore, instances of {@link BeanContext} that share the same <js>"BeanContext.*"</js> property values share - * the same cache. This allows for efficient reuse of <code>ClassMeta</code> objects so that the information about - * classes only needs to be calculated once. + * the same cache. This allows for efficient reuse of <code>ClassMeta</code> objects so that the information about + * classes only needs to be calculated once. * Because of this, many of the properties defined on the {@link BeanContext} class cannot be overridden on the session. * * <h5 class='topic'>Bean Sessions</h5> * <p> * Whereas <code>BeanContext</code> objects are permanent, unchangeable, cached, and thread-safe, - * {@link BeanSession} objects are ephemeral and not thread-safe. + * {@link BeanSession} objects are ephemeral and not thread-safe. * They are meant to be used as quickly-constructed scratchpads for creating bean maps. * {@link BeanMap} objects can only be created through the session. * * <h5 class='topic'>BeanContext configuration properties</h5> - * <code>BeanContexts</code> have several configuration properties that can be used to tweak behavior on how beans are handled. - * These are denoted as the static <jsf>BEAN_*</jsf> fields on this class. + * <code>BeanContexts</code> have several configuration properties that can be used to tweak behavior on how beans are + * handled. These are denoted as the static <jsf>BEAN_*</jsf> fields on this class. * <p> - * Some settings (e.g. {@link BeanContext#BEAN_beansRequireDefaultConstructor}) are used to differentiate between bean and non-bean classes. + * Some settings (e.g. {@link BeanContext#BEAN_beansRequireDefaultConstructor}) are used to differentiate between bean + * and non-bean classes. * Attempting to create a bean map around one of these objects will throw a {@link BeanRuntimeException}. - * The purpose for this behavior is so that the serializers can identify these non-bean classes and convert them to plain strings using the {@link Object#toString()} method. + * The purpose for this behavior is so that the serializers can identify these non-bean classes and convert them to + * plain strings using the {@link Object#toString()} method. * <p> - * Some settings (e.g. {@link BeanContext#BEAN_beanFieldVisibility}) are used to determine what kinds of properties are detected on beans. + * Some settings (e.g. {@link BeanContext#BEAN_beanFieldVisibility}) are used to determine what kinds of properties are + * detected on beans. * <p> * Some settings (e.g. {@link BeanContext#BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps. * <p> - * Settings are specified using the {@link PropertyStore#setProperty(String, Object)} method and related convenience methods. + * Settings are specified using the {@link PropertyStore#setProperty(String, Object)} method and related convenience + * methods. * * <h5 class='section'>Example:</h5> * <p class='bcode'> @@ -96,12 +100,14 @@ import org.apache.juneau.transform.*; * <h5 class='topic'>Bean Maps</h5> * <p> * {@link BeanMap BeanMaps} are wrappers around Java beans that allow properties to be retrieved and - * set using the common {@link Map#put(Object,Object)} and {@link Map#get(Object)} methods.<br> - * <br> + * set using the common {@link Map#put(Object,Object)} and {@link Map#get(Object)} methods. + * <p> * Bean maps are created in two ways... * <ol> - * <li> {@link BeanSession#toBeanMap(Object) BeanSession.toBeanMap()} - Wraps an existing bean inside a {@code Map} wrapper. - * <li> {@link BeanSession#newBeanMap(Class) BeanSession.newBeanMap()} - Create a new bean instance wrapped in a {@code Map} wrapper. + * <li>{@link BeanSession#toBeanMap(Object) BeanSession.toBeanMap()} - Wraps an existing bean inside a {@code Map} + * wrapper. + * <li>{@link BeanSession#newBeanMap(Class) BeanSession.newBeanMap()} - Create a new bean instance wrapped in a + * {@code Map} wrapper. * </ol> * * <h5 class='section'>Example:</h5> @@ -131,8 +137,8 @@ import org.apache.juneau.transform.*; * * <h5 class='topic'>Bean Annotations</h5> * <p> - * This package contains annotations that can be applied to - * class definitions to override what properties are detected on a bean. + * This package contains annotations that can be applied to class definitions to override what properties are detected + * on a bean. * <h5 class='section'>Example:</h5> * <p class='bcode'> * <jc>// Bean class definition where only property 'name' is detected.</jc> @@ -149,16 +155,17 @@ import org.apache.juneau.transform.*; * <h5 class='topic'>Beans with read-only properties</h5> * <p> * Bean maps can also be defined on top of beans with read-only properties by adding a - * {@link BeanConstructor @BeanConstructor} annotation to one of the constructors on the - * bean class. This will allow read-only properties to be set through constructor arguments. + * {@link BeanConstructor @BeanConstructor} annotation to one of the constructors on the + * bean class. This will allow read-only properties to be set through constructor arguments. * <p> - * When the <code>@BeanConstructor</code> annotation is present, bean instantiation is delayed until the call to {@link BeanMap#getBean()}. + * When the <code>@BeanConstructor</code> annotation is present, bean instantiation is delayed until the call to + * {@link BeanMap#getBean()}. * Until then, bean property values are stored in a local cache until <code>getBean()</code> is called. - * Because of this additional caching step, parsing into read-only beans tends to be slower and use - * more memory than parsing into beans with writable properties. + * Because of this additional caching step, parsing into read-only beans tends to be slower and use more memory than + * parsing into beans with writable properties. * <p> * Attempting to call {@link BeanMap#put(String,Object)} on a read-only property after calling {@link BeanMap#getBean()} - * will result in a {@link BeanRuntimeException} being thrown. + * will result in a {@link BeanRuntimeException} being thrown. * Multiple calls to {@link BeanMap#getBean()} will return the same bean instance. * <p> * Beans can be defined with a combination of read-only and read-write properties. @@ -167,26 +174,28 @@ import org.apache.juneau.transform.*; * * <h5 class='topic'>BeanFilters and PojoSwaps</h5> * <p> - * {@link BeanFilter BeanFilters} and {@link PojoSwap PojoSwaps} are used to tailor how beans and POJOs are handled.<br> + * {@link BeanFilter BeanFilters} and {@link PojoSwap PojoSwaps} are used to tailor how beans and POJOs are handled. * <ol class='spaced-list'> * <li>{@link BeanFilter} - Allows you to tailor handling of bean classes. * This class can be considered a programmatic equivalent to the {@link Bean} annotation when * annotating classes are not possible (e.g. you don't have access to the source). - * This includes specifying which properties are visible and the ability to programmatically override the execution of properties. + * This includes specifying which properties are visible and the ability to programmatically override the + * execution of properties. * <li>{@link PojoSwap} - Allows you to swap out non-serializable objects with serializable replacements. * </ol> * <p> - * See <a class='doclink' href='transform/package-summary.html#TOC'>org.apache.juneau.transform</a> for more information. + * See <a class='doclink' href='transform/package-summary.html#TOC'>org.apache.juneau.transform</a> for more + * information. * * <h5 class='topic'>ClassMetas</h5> * <p> - * The {@link ClassMeta} class is a wrapper around {@link Class} object that provides cached information - * about that class (e.g. whether it's a {@link Map} or {@link Collection} or bean). + * The {@link ClassMeta} class is a wrapper around {@link Class} object that provides cached information about that + * class (e.g. whether it's a {@link Map} or {@link Collection} or bean). * <p> - * As a general rule, it's best to reuse bean contexts (and therefore serializers and parsers too) - * whenever possible since it takes some time to populate the internal {@code ClassMeta} object cache. - * By reusing bean contexts, the class type metadata only needs to be calculated once which significantly - * improves performance. + * As a general rule, it's best to reuse bean contexts (and therefore serializers and parsers too) whenever possible + * since it takes some time to populate the internal {@code ClassMeta} object cache. + * By reusing bean contexts, the class type metadata only needs to be calculated once which significantly improves + * performance. * <p> * See {@link ClassMeta} for more information. */ @@ -257,7 +266,8 @@ public class BeanContext extends Context { public static final String BEAN_beansRequireSomeProperties = "BeanContext.beansRequireSomeProperties"; /** - * <b>Configuration property:</b> {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property value. + * <b>Configuration property:</b> {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property + * value. * <p> * <ul> * <li><b>Name:</b> <js>"BeanContext.beanMapPutReturnsOldValue"</js> @@ -266,7 +276,8 @@ public class BeanContext extends Context { * <li><b>Session-overridable:</b> <jk>false</jk> * </ul> * <p> - * If <jk>true</jk>, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property values. + * If <jk>true</jk>, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property + * values. * <p> * Disabled by default because it introduces a slight performance penalty. */ @@ -360,8 +371,8 @@ public class BeanContext extends Context { * <li><b>Session-overridable:</b> <jk>false</jk> * </ul> * <p> - * If <jk>true</jk>, then interfaces will be instantiated as proxy classes through the use of an {@link InvocationHandler} - * if there is no other way of instantiating them. + * If <jk>true</jk>, then interfaces will be instantiated as proxy classes through the use of an + * {@link InvocationHandler} if there is no other way of instantiating them. */ public static final String BEAN_useInterfaceProxies = "BeanContext.useInterfaceProxies"; @@ -454,7 +465,7 @@ public class BeanContext extends Context { * Otherwise, the natural order of the bean properties is used which is dependent on the * JVM vendor. * On IBM JVMs, the bean properties are ordered based on their ordering in the Java file. - * On Oracle JVMs, the bean properties are not ordered (which follows the offical JVM specs). + * On Oracle JVMs, the bean properties are not ordered (which follows the official JVM specs). * <p> * This property is disabled by default so that IBM JVM users don't have to use {@link Bean @Bean} annotations * to force bean properties to be in a particular order and can just alter the order of the fields/methods @@ -623,11 +634,11 @@ public class BeanContext extends Context { * Specifies to only include the specified list of properties for the specified bean classes. * <p> * The keys are either fully-qualified or simple class names, and the values are comma-delimited lists of property - * names. + * names. * The key <js>"*"</js> means all bean classes. * <p> - * For example, <code>{Bean1:<js>'foo,bar'</js>}</code> means only serialize the <code>foo</code> and <code>bar</code> - * properties on the specified bean. + * For example, <code>{Bean1:<js>'foo,bar'</js>}</code> means only serialize the <code>foo</code> and + * <code>bar</code> properties on the specified bean. * <p> * Setting applies to specified class and all subclasses. */ @@ -654,8 +665,8 @@ public class BeanContext extends Context { * names. * The key <js>"*"</js> means all bean classes. * <p> - * For example, <code>{Bean1:<js>'foo,bar'</js>}</code> means don't serialize the <code>foo</code> and <code>bar</code> - * properties on the specified bean. + * For example, <code>{Bean1:<js>'foo,bar'</js>}</code> means don't serialize the <code>foo</code> and + * <code>bar</code> properties on the specified bean. * <p> * Setting applies to specified class and all subclasses. */ @@ -679,8 +690,10 @@ public class BeanContext extends Context { * This list can consist of the following class types: * <ul> * <li>Any bean class that specifies a value for {@link Bean#typeName() @Bean.typeName()}. - * <li>Any subclass of {@link BeanDictionaryList} containing a collection of bean classes with type name annotations. - * <li>Any subclass of {@link BeanDictionaryMap} containing a mapping of type names to classes without type name annotations. + * <li>Any subclass of {@link BeanDictionaryList} containing a collection of bean classes with type name + * annotations. + * <li>Any subclass of {@link BeanDictionaryMap} containing a mapping of type names to classes without type name + * annotations. * </ul> */ public static final String BEAN_beanDictionary = "BeanContext.beanDictionary.list"; @@ -830,7 +843,8 @@ public class BeanContext extends Context { // This map ensures that if the BeanContext properties in the ConfigFactory are the same, // then we reuse the same Class->ClassMeta cache map. // This significantly reduces the number of times we need to construct ClassMeta objects which can be expensive. - private static final ConcurrentHashMap<Integer,Map<Class,ClassMeta>> cmCacheCache = new ConcurrentHashMap<Integer,Map<Class,ClassMeta>>(); + private static final ConcurrentHashMap<Integer,Map<Class,ClassMeta>> cmCacheCache + = new ConcurrentHashMap<Integer,Map<Class,ClassMeta>>(); /** Default config. All default settings. */ public static final BeanContext DEFAULT = PropertyStore.create().getContext(BeanContext.class); @@ -1100,7 +1114,7 @@ public class BeanContext extends Context { * @param <T> The class type being wrapped. * @param type The class to resolve. * @return If the class is not an array, returns a cached {@link ClassMeta} object. - * Otherwise, returns a new {@link ClassMeta} object every time.<br> + * Otherwise, returns a new {@link ClassMeta} object every time. */ public final <T> ClassMeta<T> getClassMeta(Class<T> type) { return getClassMeta(type, true); @@ -1113,7 +1127,7 @@ public class BeanContext extends Context { * @param type The class to resolve. * @param waitForInit If <jk>true</jk>, wait for the ClassMeta constructor to finish before returning. * @return If the class is not an array, returns a cached {@link ClassMeta} object. - * Otherwise, returns a new {@link ClassMeta} object every time.<br> + * Otherwise, returns a new {@link ClassMeta} object every time. */ final <T> ClassMeta<T> getClassMeta(Class<T> type, boolean waitForInit) { @@ -1157,17 +1171,23 @@ public class BeanContext extends Context { * <li><code>getClassMeta(String.<jk>class</jk>);</code> - A normal type. * <li><code>getClassMeta(List.<jk>class</jk>);</code> - A list containing objects. * <li><code>getClassMeta(List.<jk>class</jk>, String.<jk>class</jk>);</code> - A list containing strings. - * <li><code>getClassMeta(LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - A linked-list containing strings. - * <li><code>getClassMeta(LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - A linked-list containing linked-lists of strings. + * <li><code>getClassMeta(LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - A linked-list containing + * strings. + * <li><code>getClassMeta(LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);</code> - + * A linked-list containing linked-lists of strings. * <li><code>getClassMeta(Map.<jk>class</jk>);</code> - A map containing object keys/values. - * <li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);</code> - A map containing string keys/values. - * <li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);</code> - A map containing string keys and values of lists containing beans. + * <li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);</code> - A map + * containing string keys/values. + * <li><code>getClassMeta(Map.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);</code> - + * A map containing string keys and values of lists containing beans. * </ul> * * @param type The class to resolve. - * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType} + * <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>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 resolved class meta. */ @@ -1363,14 +1383,13 @@ public class BeanContext extends Context { /** - * Used for determining the class type on a method or field where a {@code @BeanProperty} annotation - * may be present. + * Used for determining the class type on a method or field where a {@code @BeanProperty} annotation may be present. * * @param <T> The class type we're wrapping. * @param p The property annotation on the type if there is one. * @param t The type. - * @param typeVarImpls Contains known resolved type parameters on the specified class so - * that we can result {@code ParameterizedTypes} and {@code TypeVariables}.<br> + * @param typeVarImpls Contains known resolved type parameters on the specified class so that we can result + * {@code ParameterizedTypes} and {@code TypeVariables}. * Can be <jk>null</jk> if the information is not known. * @return The new {@code ClassMeta} object wrapped around the {@code Type} object. */ @@ -1422,7 +1441,7 @@ public class BeanContext extends Context { /** * Returns the {@link PojoSwap} associated with the specified class, or <jk>null</jk> if there is no - * pojo swap associated with the class. + * POJO swap associated with the class. * * @param <T> The class associated with the swap. * @param c The class associated with the swap. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanDictionaryList.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanDictionaryList.java b/juneau-core/src/main/java/org/apache/juneau/BeanDictionaryList.java index 901f2e3..de0c084 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanDictionaryList.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanDictionaryList.java @@ -35,7 +35,8 @@ public class BeanDictionaryList extends ArrayList<Class<?>> { * Constructor. * * @param c The list of bean classes to add to this dictionary. - * Classes must either specify a {@link Bean#typeName()} value or be another subclass of <code>BeanDictionaryList</code>. + * Classes must either specify a {@link Bean#typeName()} value or be another subclass of + * <code>BeanDictionaryList</code>. */ public BeanDictionaryList(Class<?>...c) { append(c); @@ -45,7 +46,8 @@ public class BeanDictionaryList extends ArrayList<Class<?>> { * Append one or more bean classes to this bean dictionary. * * @param c The list of bean classes to add to this dictionary. - * Classes must either specify a {@link Bean#typeName()} value or be another subclass of <code>BeanDictionaryList</code>. + * Classes must either specify a {@link Bean#typeName()} value or be another subclass of + * <code>BeanDictionaryList</code>. * @return This object (for method chaining). */ protected BeanDictionaryList append(Class<?>...c) { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanMap.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java index 1bdacfa..5e2279c 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java @@ -28,16 +28,18 @@ import org.apache.juneau.xml.annotation.*; * * <h5 class='section'>Description:</h5> * <p> - * A wrapper that wraps Java bean instances inside of a {@link Map} interface that allows - * properties on the wrapped object can be accessed using the {@link Map#get(Object) get()} and {@link Map#put(Object,Object) put()} methods. + * A wrapper that wraps Java bean instances inside of a {@link Map} interface that allows properties on the wrapped + * object can be accessed using the {@link Map#get(Object) get()} and {@link Map#put(Object,Object) put()} methods. * <p> * Use the {@link BeanContext} class to create instances of this class. * * <h6 class='topic'>Bean property order</h6> * <p> - * The order of the properties returned by the {@link Map#keySet() keySet()} and {@link Map#entrySet() entrySet()} methods are as follows: + * The order of the properties returned by the {@link Map#keySet() keySet()} and {@link Map#entrySet() entrySet()} + * methods are as follows: * <ul class='spaced-list'> - * <li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties in the annotation. + * <li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties + * in the annotation. * <li>If {@link Bean @Bean} annotation is not specified on the class, then the order is the same as that returned * by the {@link java.beans.BeanInfo} class (i.e. ordered by definition in the class). * </ul> @@ -46,9 +48,9 @@ import org.apache.juneau.xml.annotation.*; * * <h6 class='topic'>POJO swaps</h6> * <p> - * If {@link PojoSwap PojoSwaps} are defined on the class types of the properties of this bean or the bean properties themselves, the - * {@link #get(Object)} and {@link #put(String, Object)} methods will automatically - * transform the property value to and from the serialized form. + * If {@link PojoSwap PojoSwaps} are defined on the class types of the properties of this bean or the bean properties + * themselves, the {@link #get(Object)} and {@link #put(String, Object)} methods will automatically transform the + * property value to and from the serialized form. * * @param <T> Specifies the type of object that this map encapsulates. */ @@ -193,7 +195,8 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T * * @param property The name of the property to set. * @param value The value to set the property to. - * @return If the bean context setting {@code beanMapPutReturnsOldValue} is <jk>true</jk>, then the old value of the property is returned. + * @return If the bean context setting {@code beanMapPutReturnsOldValue} is <jk>true</jk>, then the old value of the + * property is returned. * Otherwise, this method always returns <jk>null</jk>. * @throws RuntimeException if any of the following occur. * <ul class='spaced-list'> @@ -408,7 +411,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T * * @return The class type of the wrapped bean. */ - @Override /* Delagate */ + @Override /* Delegate */ public ClassMeta<T> getClassMeta() { return this.meta.getClassMeta(); } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java index ea5482a..076bdb6 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java @@ -81,7 +81,8 @@ public class BeanMapEntry implements Map.Entry<String,Object> { /** * Sets the value of this property. * <p> - * If the property is an array of type {@code X}, then the value can be a {@code Collection<X>} or {@code X[]} or {@code Object[]}. + * If the property is an array of type {@code X}, then the value can be a {@code Collection<X>} or {@code X[]} or + * {@code Object[]}. * <p> * If the property is a bean type {@code X}, then the value can either be an {@code X} or a {@code Map}. * <p> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java index a6b73a2..136406e 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanMeta.java @@ -40,7 +40,8 @@ import org.apache.juneau.utils.*; * <p> * The order of the properties are as follows: * <ul class='spaced-list'> - * <li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties in the annotation. + * <li>If {@link Bean @Bean} annotation is specified on class, then the order is the same as the list of properties + * in the annotation. * <li>If {@link Bean @Bean} annotation is not specified on the class, then the order is based on the following. * <ul> * <li>Public fields (same order as {@code Class.getFields()}). @@ -88,11 +89,11 @@ public class BeanMeta<T> { private final MetadataMap extMeta; // Extended metadata // Other fields - final String typePropertyName; // "_type" property actual name. - private final BeanPropertyMeta typeProperty; // "_type" mock bean property. - final BeanPropertyMeta dynaProperty; // "extras" property. - private final String dictionaryName; // The @Bean.typeName() annotation defined on this bean class. - final String notABeanReason; // Readable string explaining why this class wasn't a bean. + final String typePropertyName; // "_type" property actual name. + private final BeanPropertyMeta typeProperty; // "_type" mock bean property. + final BeanPropertyMeta dynaProperty; // "extras" property. + private final String dictionaryName; // The @Bean.typeName() annotation defined on this bean class. + final String notABeanReason; // Readable string explaining why this class wasn't a bean. final BeanRegistry beanRegistry; final boolean sortProperties; @@ -725,11 +726,11 @@ public class BeanMeta<T> { /** * Recursively determines the classes represented by parameterized types in the class hierarchy of - * the specified type, and puts the results in the specified map.<br> + * the specified type, and puts the results in the specified map. * <p> * For example, given the following classes... * <p class='bcode'> - * public static class BeanA<T> { + * public static class BeanA<T> { * public T x; * } * public static class BeanB extends BeanA<Integer>} {...} @@ -744,7 +745,7 @@ public class BeanMeta<T> { * public static class BeanB<T extends Number> extends BeanA<T>; * public static class BeanC extends BeanB<Integer>; * <p> - * When called on {@code BeanC}, the variable will be detected as a {@code Number}, not an {@code Integer}.<br> + * When called on {@code BeanC}, the variable will be detected as a {@code Number}, not an {@code Integer}. * If anyone can figure out a better way of doing this, please do so! * * @param t The type we're recursing. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java index edf7ab2..1933f82 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java @@ -332,8 +332,9 @@ public class BeanPropertyMeta { * Returns the {@link ClassMeta} of the class of this property. * <p> * If this property or the property type class has a {@link PojoSwap} associated with it, this - * method returns the transformed class meta. - * This matches the class type that is used by the {@link #get(BeanMap,String)} and {@link #set(BeanMap,String,Object)} methods. + * method returns the transformed class meta. + * This matches the class type that is used by the {@link #get(BeanMap,String)} and + * {@link #set(BeanMap,String,Object)} methods. * * @return The {@link ClassMeta} of the class of this property. */ @@ -504,7 +505,7 @@ public class BeanPropertyMeta { BeanSession session = m.getBeanSession(); - // Comvert to raw form. + // Convert to raw form. value = unswap(session, value); if (m.bean == null) { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java b/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java index c644ec0..83f9b42 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanRegistry.java @@ -30,8 +30,9 @@ import org.apache.juneau.internal.*; * <p> * The dictionary is used by the framework in the following ways: * <ul> - * <li>If a class type cannot be inferred through reflection during parsing, then a helper <js>"_type"</js> is added to the serialized output - * using the name defined for that class in this dictionary. This helps determine the real class at parse time. + * <li>If a class type cannot be inferred through reflection during parsing, then a helper <js>"_type"</js> is added + * to the serialized output using the name defined for that class in this dictionary. This helps determine the + * real class at parse time. * <li>The dictionary name is used as element names when serialized to XML. * </ul> */
