Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 41EDD200D5E for ; Sat, 23 Dec 2017 17:51:03 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 40183160C1C; Sat, 23 Dec 2017 16:51:03 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id BA82C160C2E for ; Sat, 23 Dec 2017 17:51:00 +0100 (CET) Received: (qmail 59317 invoked by uid 500); 23 Dec 2017 16:51:00 -0000 Mailing-List: contact commits-help@juneau.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@juneau.apache.org Delivered-To: mailing list commits@juneau.apache.org Received: (qmail 59308 invoked by uid 99); 23 Dec 2017 16:50:59 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Dec 2017 16:50:59 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 4FF0CC1C4A for ; Sat, 23 Dec 2017 16:50:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.231 X-Spam-Level: X-Spam-Status: No, score=-4.231 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id UZRgcRbOk-vk for ; Sat, 23 Dec 2017 16:50:54 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id DBA655F51F for ; Sat, 23 Dec 2017 16:50:47 +0000 (UTC) Received: (qmail 59042 invoked by uid 99); 23 Dec 2017 16:50:46 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Dec 2017 16:50:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 35C74F17F8; Sat, 23 Dec 2017 16:50:43 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jamesbognar@apache.org To: commits@juneau.incubator.apache.org Date: Sat, 23 Dec 2017 16:50:52 -0000 Message-Id: <3f87560668ee4031b9666e33a9e4b840@git.apache.org> In-Reply-To: <77ee031a87da47bca49cf99a70ac04bd@git.apache.org> References: <77ee031a87da47bca49cf99a70ac04bd@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [11/21] juneau git commit: JUNEAU-76 Improvements to Context/Builder APIs archived-at: Sat, 23 Dec 2017 16:51:03 -0000 http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java index 15aff31..8c941e2 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java @@ -134,7 +134,7 @@ public class HtmlSerializer extends XmlSerializer { * Configuration property: Anchor text source. * *
    - *
  • Name: "HtmlSerializer.uriAnchorText" + *
  • Name: "HtmlSerializer.uriAnchorText.s" *
  • Data type: AnchorText *
  • Default: TO_STRING *
  • Session-overridable: true @@ -147,13 +147,13 @@ public class HtmlSerializer extends XmlSerializer { *

    * See the {@link AnchorText} enum for possible values. */ - public static final String HTML_uriAnchorText = PREFIX + "uriAnchorText"; + public static final String HTML_uriAnchorText = PREFIX + "uriAnchorText.s"; /** * Configuration property: Look for URLs in {@link String Strings}. * *

      - *
    • Name: "HtmlSerializer.detectLinksInStrings" + *
    • Name: "HtmlSerializer.detectLinksInStrings.b" *
    • Data type: Boolean *
    • Default: true *
    • Session-overridable: true @@ -163,13 +163,13 @@ public class HtmlSerializer extends XmlSerializer { * If a string looks like a URL (e.g. starts with "http://" or "https://", then treat it like a URL * and make it into a hyperlink based on the rules specified by {@link #HTML_uriAnchorText}. */ - public static final String HTML_detectLinksInStrings = PREFIX + "detectLinksInStrings"; + public static final String HTML_detectLinksInStrings = PREFIX + "detectLinksInStrings.b"; /** * Configuration property: Look for link labels in the "label" parameter of the URL. * *
        - *
      • Name: "HtmlSerializer.lookForLabelParameters" + *
      • Name: "HtmlSerializer.lookForLabelParameters.b" *
      • Data type: Boolean *
      • Default: true *
      • Session-overridable: true @@ -181,37 +181,37 @@ public class HtmlSerializer extends XmlSerializer { *

        * The parameter name can be changed via the {@link #HTML_labelParameter} property. */ - public static final String HTML_lookForLabelParameters = PREFIX + "lookForLabelParameters"; + public static final String HTML_lookForLabelParameters = PREFIX + "lookForLabelParameters.b"; /** * Configuration property: The parameter name to use when using {@link #HTML_lookForLabelParameters}. * *

          - *
        • Name: "HtmlSerializer.labelParameter" + *
        • Name: "HtmlSerializer.labelParameter.s" *
        • Data type: String *
        • Default: "label" *
        • Session-overridable: true *
        */ - public static final String HTML_labelParameter = PREFIX + "labelParameter"; + public static final String HTML_labelParameter = PREFIX + "labelParameter.s"; /** * Configuration property: Add key/value headers on bean/map tables. * *
          - *
        • Name: "HtmlSerializer.addKeyValueTableHeaders" + *
        • Name: "HtmlSerializer.addKeyValueTableHeaders.b" *
        • Data type: Boolean *
        • Default: false *
        • Session-overridable: true *
        */ - public static final String HTML_addKeyValueTableHeaders = PREFIX + "addKeyValueTableHeaders"; + public static final String HTML_addKeyValueTableHeaders = PREFIX + "addKeyValueTableHeaders.b"; /** * Configuration property: Add "_type" properties when needed. * *
          - *
        • Name: "HtmlSerializer.addBeanTypeProperties" + *
        • Name: "HtmlSerializer.addBeanTypeProperties.b" *
        • Data type: Boolean *
        • Default: false *
        • Session-overridable: true @@ -228,7 +228,7 @@ public class HtmlSerializer extends XmlSerializer { * When present, this value overrides the {@link #SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String HTML_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; + public static final String HTML_addBeanTypeProperties = PREFIX + "addBeanTypeProperties.b"; //------------------------------------------------------------------------------------------------------------------- @@ -236,13 +236,13 @@ public class HtmlSerializer extends XmlSerializer { //------------------------------------------------------------------------------------------------------------------- /** Default serializer, all default settings. */ - public static final HtmlSerializer DEFAULT = new HtmlSerializer(PropertyStore.create()); + public static final HtmlSerializer DEFAULT = new HtmlSerializer(PropertyStore2.DEFAULT); /** Default serializer, single quotes. */ - public static final HtmlSerializer DEFAULT_SQ = new HtmlSerializer.Sq(PropertyStore.create()); + public static final HtmlSerializer DEFAULT_SQ = new HtmlSerializer.Sq(PropertyStore2.DEFAULT); /** Default serializer, single quotes, whitespace added. */ - public static final HtmlSerializer DEFAULT_SQ_READABLE = new HtmlSerializer.SqReadable(PropertyStore.create()); + public static final HtmlSerializer DEFAULT_SQ_READABLE = new HtmlSerializer.SqReadable(PropertyStore2.DEFAULT); //------------------------------------------------------------------------------------------------------------------- @@ -255,10 +255,14 @@ public class HtmlSerializer extends XmlSerializer { /** * Constructor. * - * @param propertyStore The property store containing all the settings for this object. + * @param ps The property store containing all the settings for this object. */ - public Sq(PropertyStore propertyStore) { - super(propertyStore.copy().append(SERIALIZER_quoteChar, '\'')); + public Sq(PropertyStore2 ps) { + super( + ps.builder() + .set(SERIALIZER_quoteChar, '\'') + .build() + ); } } @@ -268,10 +272,15 @@ public class HtmlSerializer extends XmlSerializer { /** * Constructor. * - * @param propertyStore The property store containing all the settings for this object. + * @param ps The property store containing all the settings for this object. */ - public SqReadable(PropertyStore propertyStore) { - super(propertyStore.copy().append(SERIALIZER_quoteChar, '\'').append(SERIALIZER_useWhitespace, true)); + public SqReadable(PropertyStore2 ps) { + super( + ps.builder() + .set(SERIALIZER_quoteChar, '\'') + .set(SERIALIZER_useWhitespace, true) + .build() + ); } } @@ -280,23 +289,30 @@ public class HtmlSerializer extends XmlSerializer { // Instance //------------------------------------------------------------------------------------------------------------------- - final HtmlSerializerContext ctx; + final AnchorText uriAnchorText; + final boolean + lookForLabelParameters, + detectLinksInStrings, + addKeyValueTableHeaders, + addBeanTypeProperties; + final String labelParameter; + private volatile HtmlSchemaDocSerializer schemaSerializer; /** * Constructor. * - * @param propertyStore + * @param ps * The property store containing all the settings for this object. */ - public HtmlSerializer(PropertyStore propertyStore) { - this(propertyStore, "text/html"); + public HtmlSerializer(PropertyStore2 ps) { + this(ps, "text/html"); } /** * Constructor. * - * @param propertyStore + * @param ps * The property store containing all the settings for this object. * @param produces * The media type that this serializer produces. @@ -314,14 +330,19 @@ public class HtmlSerializer extends XmlSerializer { *
          ...or... *
          super(propertyStore, "application/json", "*​/json"); */ - public HtmlSerializer(PropertyStore propertyStore, String produces, String...accept) { - super(propertyStore, produces, accept); - this.ctx = createContext(HtmlSerializerContext.class); + public HtmlSerializer(PropertyStore2 ps, String produces, String...accept) { + super(ps, produces, accept); + uriAnchorText = getProperty(HTML_uriAnchorText, AnchorText.class, AnchorText.TO_STRING); + lookForLabelParameters = getProperty(HTML_lookForLabelParameters, boolean.class, true); + detectLinksInStrings = getProperty(HTML_detectLinksInStrings, boolean.class, true); + labelParameter = getProperty(HTML_labelParameter, String.class, "label"); + addKeyValueTableHeaders = getProperty(HTML_addKeyValueTableHeaders, boolean.class, false); + addBeanTypeProperties = getProperty(HTML_addBeanTypeProperties, boolean.class, getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true)); } @Override /* CoreObject */ public HtmlSerializerBuilder builder() { - return new HtmlSerializerBuilder(propertyStore); + return new HtmlSerializerBuilder(getPropertyStore()); } /** @@ -343,12 +364,25 @@ public class HtmlSerializer extends XmlSerializer { @Override /* XmlSerializer */ public HtmlSerializer getSchemaSerializer() { if (schemaSerializer == null) - schemaSerializer = new HtmlSchemaDocSerializer(propertyStore); + schemaSerializer = builder().build(HtmlSchemaDocSerializer.class); return schemaSerializer; } @Override /* Serializer */ public WriterSerializerSession createSession(SerializerSessionArgs args) { - return new HtmlSerializerSession(ctx, args); + return new HtmlSerializerSession(this, args); + } + + @Override /* Context */ + public ObjectMap asMap() { + return super.asMap() + .append("HtmlSerializer", new ObjectMap() + .append("uriAnchorText", uriAnchorText) + .append("lookForLabelParameters", lookForLabelParameters) + .append("detectLinksInStrings", detectLinksInStrings) + .append("labelParameter", labelParameter) + .append("addKeyValueTableHeaders", addKeyValueTableHeaders) + .append("addBeanTypeProperties", addBeanTypeProperties) + ); } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java index dec298a..36d9a42 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java @@ -36,15 +36,15 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { /** * Constructor. * - * @param propertyStore The initial configuration settings for this builder. + * @param ps The initial configuration settings for this builder. */ - public HtmlSerializerBuilder(PropertyStore propertyStore) { - super(propertyStore); + public HtmlSerializerBuilder(PropertyStore2 ps) { + super(ps); } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializer build() { - return new HtmlSerializer(propertyStore); + return build(HtmlSerializer.class); } @@ -55,13 +55,6 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { /** * Configuration property: Anchor text source. * - *
            - *
          • Name: "HtmlSerializer.uriAnchorText" - *
          • Data type: AnchorText - *
          • Default: TO_STRING - *
          • Session-overridable: true - *
          - * *

          * When creating anchor tags (e.g. <a href='...'>text</a>) * in HTML, this setting defines what to set the inner text to. @@ -79,19 +72,12 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { * @see HtmlSerializer#HTML_uriAnchorText */ public HtmlSerializerBuilder uriAnchorText(AnchorText value) { - return property(HTML_uriAnchorText, value); + return set(HTML_uriAnchorText, value); } /** * Configuration property: Look for URLs in {@link String Strings}. * - *

            - *
          • Name: "HtmlSerializer.detectLinksInStrings" - *
          • Data type: Boolean - *
          • Default: true - *
          • Session-overridable: true - *
          - * *

          * If a string looks like a URL (e.g. starts with "http://" or "https://", then treat it like a URL * and make it into a hyperlink based on the rules specified by {@link HtmlSerializer#HTML_uriAnchorText}. @@ -107,19 +93,12 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { * @see HtmlSerializer#HTML_detectLinksInStrings */ public HtmlSerializerBuilder detectLinksInStrings(boolean value) { - return property(HTML_detectLinksInStrings, value); + return set(HTML_detectLinksInStrings, value); } /** * Configuration property: Look for link labels in the "label" parameter of the URL. * - *

            - *
          • Name: "HtmlSerializer.lookForLabelParameters" - *
          • Data type: Boolean - *
          • Default: true - *
          • Session-overridable: true - *
          - * *

          * If the URL has a label parameter (e.g. "?label=foobar"), then use that as the anchor text of the link. * @@ -137,19 +116,12 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { * @see HtmlSerializer#HTML_lookForLabelParameters */ public HtmlSerializerBuilder lookForLabelParameters(boolean value) { - return property(HTML_lookForLabelParameters, value); + return set(HTML_lookForLabelParameters, value); } /** * Configuration property: The parameter name to use when using {@link HtmlSerializer#HTML_lookForLabelParameters}. * - *

            - *
          • Name: "HtmlSerializer.labelParameter" - *
          • Data type: String - *
          • Default: "label" - *
          • Session-overridable: true - *
          - * *
          Notes:
          *
            *
          • This is equivalent to calling property(HTML_labelParameter, value). @@ -161,19 +133,12 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { * @see HtmlSerializer#HTML_labelParameter */ public HtmlSerializerBuilder labelParameter(String value) { - return property(HTML_labelParameter, value); + return set(HTML_labelParameter, value); } /** * Configuration property: Add key/value headers on bean/map tables. * - *
              - *
            • Name: "HtmlSerializer.addKeyValueTableHeaders" - *
            • Data type: Boolean - *
            • Default: false - *
            • Session-overridable: true - *
            - * *
            Notes:
            *
              *
            • This is equivalent to calling property(HTML_addKeyValueTableHeaders, value). @@ -185,7 +150,7 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { * @see HtmlSerializer#HTML_addKeyValueTableHeaders */ public HtmlSerializerBuilder addKeyValueTableHeaders(boolean value) { - return property(HTML_addKeyValueTableHeaders, value); + return set(HTML_addKeyValueTableHeaders, value); } @Override /* XmlSerializerBuilder */ @@ -344,416 +309,410 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder { return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beansRequireDefaultConstructor(boolean value) { super.beansRequireDefaultConstructor(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beansRequireSerializable(boolean value) { super.beansRequireSerializable(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beansRequireSettersForGetters(boolean value) { super.beansRequireSettersForGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beansRequireSomeProperties(boolean value) { super.beansRequireSomeProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanMapPutReturnsOldValue(boolean value) { super.beanMapPutReturnsOldValue(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanConstructorVisibility(Visibility value) { super.beanConstructorVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanClassVisibility(Visibility value) { super.beanClassVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanFieldVisibility(Visibility value) { super.beanFieldVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder methodVisibility(Visibility value) { super.methodVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder useJavaBeanIntrospector(boolean value) { super.useJavaBeanIntrospector(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder useInterfaceProxies(boolean value) { super.useInterfaceProxies(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder ignoreUnknownBeanProperties(boolean value) { super.ignoreUnknownBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { super.ignoreUnknownNullBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { super.ignorePropertiesWithoutSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { super.ignoreInvocationExceptionsOnGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { super.ignoreInvocationExceptionsOnSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder sortProperties(boolean value) { super.sortProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder notBeanPackages(String...values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder notBeanPackages(Collection values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setNotBeanPackages(String...values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setNotBeanPackages(Collection values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeNotBeanPackages(String...values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeNotBeanPackages(Collection values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder notBeanClasses(Class...values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder notBeanClasses(Collection> values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setNotBeanClasses(Class...values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setNotBeanClasses(Collection> values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeNotBeanClasses(Class...values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeNotBeanClasses(Collection> values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanFilters(Class...values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanFilters(Collection> values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setBeanFilters(Class...values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setBeanFilters(Collection> values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeBeanFilters(Class...values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeBeanFilters(Collection> values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder pojoSwaps(Class...values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder pojoSwaps(Collection> values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setPojoSwaps(Class...values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setPojoSwaps(Collection> values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removePojoSwaps(Class...values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removePojoSwaps(Collection> values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder implClasses(Map,Class> values) { + @Override /* ContextBuilder */ + public HtmlSerializerBuilder implClasses(Map> values) { super.implClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder implClass(Class interfaceClass, Class implClass) { super.implClass(interfaceClass, implClass); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder includeProperties(Map values) { super.includeProperties(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder includeProperties(String beanClassName, String properties) { super.includeProperties(beanClassName, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder includeProperties(Class beanClass, String properties) { super.includeProperties(beanClass, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder excludeProperties(Map values) { super.excludeProperties(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder excludeProperties(String beanClassName, String properties) { super.excludeProperties(beanClassName, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder excludeProperties(Class beanClass, String properties) { super.excludeProperties(beanClass, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanDictionary(Class...values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanDictionary(Collection> values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setBeanDictionary(Class...values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder setBeanDictionary(Collection> values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeFromBeanDictionary(Class...values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder removeFromBeanDictionary(Collection> values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder beanTypePropertyName(String value) { super.beanTypePropertyName(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder defaultParser(Class value) { super.defaultParser(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder locale(Locale value) { super.locale(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder timeZone(TimeZone value) { super.timeZone(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder mediaType(MediaType value) { super.mediaType(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public HtmlSerializerBuilder debug() { super.debug(); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder property(String name, Object value) { - super.property(name, value); - return this; - } - - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder properties(Map properties) { - super.properties(properties); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder set(String name, Object value) { + super.set(name, value); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder addToProperty(String name, Object value) { - super.addToProperty(name, value); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder set(Map properties) { + super.set(properties); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder putToProperty(String name, Object key, Object value) { - super.putToProperty(name, key, value); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder add(Map properties) { + super.add(properties); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder putToProperty(String name, Object value) { - super.putToProperty(name, value); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder addTo(String name, Object value) { + super.addTo(name, value); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder removeFromProperty(String name, Object value) { - super.removeFromProperty(name, value); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder addTo(String name, String key, Object value) { + super.addTo(name, key, value); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder classLoader(ClassLoader classLoader) { - super.classLoader(classLoader); + @Override /* ContextBuilder */ + public HtmlSerializerBuilder removeFrom(String name, Object value) { + super.removeFrom(name, value); return this; } - @Override /* CoreObjectBuilder */ - public HtmlSerializerBuilder apply(PropertyStore copyFrom) { + @Override /* ContextBuilder */ + public HtmlSerializerBuilder apply(PropertyStore2 copyFrom) { super.apply(copyFrom); return this; } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java deleted file mode 100644 index 8bb191b..0000000 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java +++ /dev/null @@ -1,64 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.html; - -import static org.apache.juneau.html.HtmlSerializer.*; - -import org.apache.juneau.*; -import org.apache.juneau.xml.*; - -/** - * Contains a snapshot-in-time read-only copy of the settings on the {@link HtmlSerializer} class. - */ -public class HtmlSerializerContext extends XmlSerializerContext { - - final AnchorText uriAnchorText; - final boolean - lookForLabelParameters, - detectLinksInStrings, - addKeyValueTableHeaders, - addBeanTypeProperties; - final String labelParameter; - - /** - * Constructor. - * - *

              - * Typically only called from {@link PropertyStore#getContext(Class)}. - * - * @param ps The property store that created this context. - */ - public HtmlSerializerContext(PropertyStore ps) { - super(ps); - uriAnchorText = ps.getProperty(HTML_uriAnchorText, AnchorText.class, AnchorText.TO_STRING); - lookForLabelParameters = ps.getProperty(HTML_lookForLabelParameters, Boolean.class, true); - detectLinksInStrings = ps.getProperty(HTML_detectLinksInStrings, Boolean.class, true); - labelParameter = ps.getProperty(HTML_labelParameter, String.class, "label"); - addKeyValueTableHeaders = ps.getProperty(HTML_addKeyValueTableHeaders, Boolean.class, false); - addBeanTypeProperties = ps.getProperty(HTML_addBeanTypeProperties, boolean.class, - ps.getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true)); - } - - @Override /* Context */ - public ObjectMap asMap() { - return super.asMap() - .append("HtmlSerializerContext", new ObjectMap() - .append("uriAnchorText", uriAnchorText) - .append("lookForLabelParameters", lookForLabelParameters) - .append("detectLinksInStrings", detectLinksInStrings) - .append("labelParameter", labelParameter) - .append("addKeyValueTableHeaders", addKeyValueTableHeaders) - .append("addBeanTypeProperties", addBeanTypeProperties) - ); - } -} http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java index bd15915..6d423ef 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java @@ -58,16 +58,14 @@ public class HtmlSerializerSession extends XmlSerializerSession { * It also include session-level properties that override the properties defined on the bean and * serializer contexts. */ - protected HtmlSerializerSession(HtmlSerializerContext ctx, SerializerSessionArgs args) { + protected HtmlSerializerSession(HtmlSerializer ctx, SerializerSessionArgs args) { super(ctx, args); - String labelParameter; - ObjectMap p = getProperties(); - anchorText = p.getWithDefault(HTML_uriAnchorText, ctx.uriAnchorText, AnchorText.class); - detectLinksInStrings = p.getBoolean(HTML_detectLinksInStrings, ctx.detectLinksInStrings); - lookForLabelParameters = p.getBoolean(HTML_lookForLabelParameters, ctx.lookForLabelParameters); - labelParameter = p.getString(HTML_labelParameter, ctx.labelParameter); - addKeyValueTableHeaders = p.getBoolean(HTML_addKeyValueTableHeaders, ctx.addKeyValueTableHeaders); - addBeanTypeProperties = p.getBoolean(HTML_addBeanTypeProperties, ctx.addBeanTypeProperties); + anchorText = getProperty(HTML_uriAnchorText, AnchorText.class, ctx.uriAnchorText); + detectLinksInStrings = getProperty(HTML_detectLinksInStrings, boolean.class, ctx.detectLinksInStrings); + lookForLabelParameters = getProperty(HTML_lookForLabelParameters, boolean.class, ctx.lookForLabelParameters); + addKeyValueTableHeaders = getProperty(HTML_addKeyValueTableHeaders, boolean.class, ctx.addKeyValueTableHeaders); + addBeanTypeProperties = getProperty(HTML_addBeanTypeProperties, boolean.class, ctx.addBeanTypeProperties); + String labelParameter = getProperty(HTML_labelParameter, String.class, ctx.labelParameter); labelPattern = Pattern.compile("[\\?\\&]" + Pattern.quote(labelParameter) + "=([^\\&]*)"); } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java index 062f99f..b338395 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java @@ -36,16 +36,16 @@ public class HtmlStrippedDocSerializer extends HtmlSerializer { /** * Constructor. * - * @param propertyStore The property store containing all the settings for this object. + * @param ps The property store containing all the settings for this object. */ - public HtmlStrippedDocSerializer(PropertyStore propertyStore) { - this(propertyStore, "text/html", "text/html+stripped"); + public HtmlStrippedDocSerializer(PropertyStore2 ps) { + this(ps, "text/html", "text/html+stripped"); } /** * Constructor. * - * @param propertyStore + * @param ps * The property store containing all the settings for this object. * @param produces * The media type that this serializer produces. @@ -63,12 +63,12 @@ public class HtmlStrippedDocSerializer extends HtmlSerializer { *
              ...or... *
              super(propertyStore, "application/json", "*​/json"); */ - public HtmlStrippedDocSerializer(PropertyStore propertyStore, String produces, String...accept) { - super(propertyStore, produces, accept); + public HtmlStrippedDocSerializer(PropertyStore2 ps, String produces, String...accept) { + super(ps, produces, accept); } @Override /* Serializer */ public WriterSerializerSession createSession(SerializerSessionArgs args) { - return new HtmlStrippedDocSerializerSession(ctx, args); + return new HtmlStrippedDocSerializerSession(this, args); } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java index 31749e1..1459fba 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerSession.java @@ -34,7 +34,7 @@ public class HtmlStrippedDocSerializerSession extends HtmlSerializerSession { * @param args * Runtime arguments. */ - protected HtmlStrippedDocSerializerSession(HtmlSerializerContext ctx, SerializerSessionArgs args) { + protected HtmlStrippedDocSerializerSession(HtmlStrippedDocSerializer ctx, SerializerSessionArgs args) { super(ctx, args); } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java index 7181ed2..9bb852e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayUtils.java @@ -102,13 +102,32 @@ public final class ArrayUtils { */ @SuppressWarnings("unchecked") public static T[] reverse(T[] array) { - assertFieldNotNull(array, "array"); + if (array == null) + return null; Class c = (Class)array.getClass().getComponentType(); T[] a2 = (T[])Array.newInstance(c, array.length); for (int i = 0; i < array.length; i++) a2[a2.length-i-1] = array[i]; return a2; } + + /** + * Sorts the elements in an array without creating a new array. + * + * @param array The array to sort. + * @return The same array. + */ + public static T[] reverseInline(T[] array) { + if (array == null) + return null; + T t; + for (int i = 0, j = array.length-1; i < j; i++, j--) { + t = array[i]; + array[i] = array[j]; + array[j] = t; + } + return array; + } /** * Converts the specified array to a Set. @@ -432,4 +451,26 @@ public final class ArrayUtils { return false; return true; } + + /** + * Converts a collection to an array containing the elements in reversed order. + * + * @param c The component type of the array. + * @param l + * The collection to convert. + *
              The collection is not modified. + * @return + * A new array, or null if the collection was null. + */ + @SuppressWarnings("unchecked") + public static T[] toReverseArray(Class c, Collection l) { + if (l == null) + return null; + Object a = Array.newInstance(c, l.size()); + Iterator i = l.iterator(); + int j = l.size(); + while (i.hasNext()) + Array.set(a, --j, i.next()); + return (T[])a; + } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java index 408548a..cab02c3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java @@ -12,7 +12,6 @@ // *************************************************************************************************************************** package org.apache.juneau.internal; -import java.io.*; import java.lang.annotation.*; import java.lang.reflect.*; import java.util.*; @@ -26,6 +25,33 @@ import org.apache.juneau.utils.*; */ public final class ClassUtils { + private static final Map,ConstructorCacheEntry> CONSTRUCTOR_CACHE = new ConcurrentHashMap<>(); + private static final Map,Stringify> STRINGIFY_CACHE = new ConcurrentHashMap<>(); + + // Special cases. + static { + + // TimeZone doesn't follow any standard conventions. + STRINGIFY_CACHE.put(TimeZone.class, new Stringify(TimeZone.class){ + @Override + public TimeZone fromString(String s) { + return TimeZone.getTimeZone(s); + } + @Override + public String toString(TimeZone tz) { + return tz.getID(); + } + }); + + // Locale(String) doesn't work on strings like "ja_JP". + STRINGIFY_CACHE.put(Locale.class, new Stringify(Locale.class){ + @Override + public Locale fromString(String s) { + return Locale.forLanguageTag(s.replace('_', '-')); + } + }); + } + /** * Given the specified list of objects, return readable names for the class types of the objects. * @@ -162,19 +188,6 @@ public final class ClassUtils { } /** - * Comparator for use with {@link TreeMap TreeMaps} with {@link Class} keys. - */ - public static final class ClassComparator implements Comparator>, Serializable { - - private static final long serialVersionUID = 1L; - - @Override /* Comparator */ - public int compare(Class object1, Class object2) { - return object1.getName().compareTo(object2.getName()); - } - } - - /** * Returns the signature of the specified method. * *

              @@ -593,8 +606,6 @@ public final class ClassUtils { } } - private static final Map,ConstructorCacheEntry> CONSTRUCTOR_CACHE = new ConcurrentHashMap<>(); - /** * Returns true if the specified argument types are valid for the specified parameter types. * @@ -1015,4 +1026,130 @@ public final class ClassUtils { throw new FormattedIllegalArgumentException("Invalid argument of type {0} passed in method {1}. Only arguments of type {2} are allowed.", c1, m, args); } } + + /** + * Finds the public static "fromString" method on the specified class. + * + *

              + * Looks for the following method names: + *

                + *
              • fromString + *
              • fromValue + *
              • valueOf + *
              • parse + *
              • parseString + *
              • forName + *
              • forString + *
              • getTimeZone + *
              + * + * @param c The class to find the method on. + * @return The static method, or null if it couldn't be found. + */ + public static Method findPublicFromStringMethod(Class c) { + for (String methodName : new String[]{"create","fromString","fromValue","valueOf","parse","parseString","forName","forString"}) { + for (Method m : c.getMethods()) { + if (isStatic(m) && isPublic(m) && isNotDeprecated(m)) { + String mName = m.getName(); + if (mName.equals(methodName) && m.getReturnType() == c) { + Class[] args = m.getParameterTypes(); + if (args.length == 1 && args[0] == String.class) { + return m; + } + } + } + } + } + return null; + } + + /** + * Constructs a new instance of the specified class from the specified string. + * + *

              + * Class must be one of the following: + *

                + *
              • Have a public constructor that takes in a single String argument. + *
              • Have a static fromString(String) (or related) method. + *
                See {@findPublicFromStringMethod(Class)} for the list of possible static method names. + *
              • Be an enum. + *
              + * + * @param c The class. + * @param s The string to create the instance from. + * @return A new object instance, or null if a method for converting the string to an object could not be found. + */ + @SuppressWarnings({ "unchecked" }) + public static T fromString(Class c, String s) { + return (T)getStringify(c).fromString(s); + } + + /** + * Converts an object to a string. + * + *

              + * Normally, this is just going to call toString() on the object. + * However, the {@link Locale} and {@link TimeZone} objects are treated special so that the returned value + * works with the {@link #fromString(Class, String)} method. + * + * @param o The object to convert to a string. + * @return The stringified object, or null if the object was null. + */ + @SuppressWarnings({ "unchecked" }) + public static String toString(Object o) { + if (o == null) + return null; + return getStringify(o.getClass()).toString(o); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private static Stringify getStringify(Class c) { + Stringify fs = STRINGIFY_CACHE.get(c); + if (fs == null) { + for (Iterator> i = getParentClasses(c, false, true); i.hasNext(); ) { + Class c2 = i.next(); + fs = STRINGIFY_CACHE.get(c2); + if (fs != null) { + STRINGIFY_CACHE.put(c, fs); + break; + } + } + if (fs == null) { + fs = new Stringify(c); + STRINGIFY_CACHE.put(c, fs); + } + } + return fs; + } + + @SuppressWarnings({"unchecked","rawtypes"}) + private static class Stringify { + final Constructor constructor; + final Method fromStringMethod; + final Class enumClass; + + Stringify(Class c) { + enumClass = c.isEnum() ? (Class)c : null; + fromStringMethod = enumClass != null ? null : findPublicFromStringMethod(c); + constructor = enumClass != null || fromStringMethod != null ? null : findPublicConstructor(c, String.class); + } + + public T fromString(String s) { + try { + if (fromStringMethod != null) + return (T)fromStringMethod.invoke(null, s); + if (constructor != null) + return (T)constructor.newInstance(s); + if (enumClass != null) + return (T)Enum.valueOf(enumClass, s); + return null; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public String toString(T t) { + return t.toString(); + } + } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java index 1e76346..284619c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java @@ -17,7 +17,7 @@ import java.util.*; /** * Utility methods for collections. */ -public class CollectionUtils { +public final class CollectionUtils { /** * Reverses the order of a {@link LinkedHashMap}. @@ -86,4 +86,34 @@ public class CollectionUtils { list.add(append[i]); return list; } + + /** + * Returns a reverse iterable of the specified collection. + * + * @param c The collection to iterate over. + * @return An iterable over the collection in reverse order. + */ + public static Iterable reverseIterable(final Collection c) { + return new Iterable() { + @Override + public Iterator iterator() { + if (c == null) + return Collections.EMPTY_LIST.iterator(); + ArrayList l = new ArrayList<>(c); + Collections.reverse(l); + return l.iterator(); + } + }; + } + + /** + * Same as {@link Collections#reverse(List)}, but returns the list. + * + * @param l The list being reversed + * @return The same list. + */ + public static List reverse(List l) { + Collections.reverse(l); + return l; + } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java index 57df024..422c557 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ObjectUtils.java @@ -147,7 +147,7 @@ import org.apache.juneau.transform.*; * * */ -public class ObjectUtils { +public final class ObjectUtils { // Session objects are usually not thread safe, but we're not using any feature // of bean sessions that would cause thread safety issues. @@ -229,4 +229,18 @@ public class ObjectUtils { return (Array.getLength(o) == 0); return o.toString().isEmpty(); } + + /** + * Returns the first non-null value in the specified array + * + * @param t + * @return The first non-null value, or null if the array is null or empty or contains only null values. + */ + public static T firstNonNull(T[] t) { + if (t != null) + for (T tt : t) + if (tt != null) + return tt; + return null; + } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java index d08d2fc..7d90acf 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java @@ -31,7 +31,7 @@ public final class JsoParser extends InputStreamParser { //------------------------------------------------------------------------------------------------------------------- /** Default parser, all default settings.*/ - public static final JsoParser DEFAULT = new JsoParser(PropertyStore.create()); + public static final JsoParser DEFAULT = new JsoParser(PropertyStore2.DEFAULT); //------------------------------------------------------------------------------------------------------------------- @@ -41,15 +41,15 @@ public final class JsoParser extends InputStreamParser { /** * Constructor. * - * @param propertyStore The property store containing all the settings for this object. + * @param ps The property store containing all the settings for this object. */ - public JsoParser(PropertyStore propertyStore) { - super(propertyStore, "application/x-java-serialized-object"); + public JsoParser(PropertyStore2 ps) { + super(ps, "application/x-java-serialized-object"); } - @Override /* CoreObject */ + @Override /* Context */ public JsoParserBuilder builder() { - return new JsoParserBuilder(propertyStore); + return new JsoParserBuilder(getPropertyStore()); } /** http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java index f0a8c58..b9dd2bb 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java @@ -33,15 +33,15 @@ public class JsoParserBuilder extends ParserBuilder { /** * Constructor. * - * @param propertyStore The initial configuration settings for this builder. + * @param ps The initial configuration settings for this builder. */ - public JsoParserBuilder(PropertyStore propertyStore) { - super(propertyStore); + public JsoParserBuilder(PropertyStore2 ps) { + super(ps); } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParser build() { - return new JsoParser(propertyStore); + return build(JsoParser.class); } @@ -85,380 +85,374 @@ public class JsoParserBuilder extends ParserBuilder { return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beansRequireDefaultConstructor(boolean value) { super.beansRequireDefaultConstructor(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beansRequireSerializable(boolean value) { super.beansRequireSerializable(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beansRequireSettersForGetters(boolean value) { super.beansRequireSettersForGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beansRequireSomeProperties(boolean value) { super.beansRequireSomeProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanMapPutReturnsOldValue(boolean value) { super.beanMapPutReturnsOldValue(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanConstructorVisibility(Visibility value) { super.beanConstructorVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanClassVisibility(Visibility value) { super.beanClassVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanFieldVisibility(Visibility value) { super.beanFieldVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder methodVisibility(Visibility value) { super.methodVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder useJavaBeanIntrospector(boolean value) { super.useJavaBeanIntrospector(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder useInterfaceProxies(boolean value) { super.useInterfaceProxies(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder ignoreUnknownBeanProperties(boolean value) { super.ignoreUnknownBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder ignoreUnknownNullBeanProperties(boolean value) { super.ignoreUnknownNullBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder ignorePropertiesWithoutSetters(boolean value) { super.ignorePropertiesWithoutSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder ignoreInvocationExceptionsOnGetters(boolean value) { super.ignoreInvocationExceptionsOnGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder ignoreInvocationExceptionsOnSetters(boolean value) { super.ignoreInvocationExceptionsOnSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder sortProperties(boolean value) { super.sortProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder notBeanPackages(String...values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder notBeanPackages(Collection values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setNotBeanPackages(String...values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setNotBeanPackages(Collection values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeNotBeanPackages(String...values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeNotBeanPackages(Collection values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder notBeanClasses(Class...values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder notBeanClasses(Collection> values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setNotBeanClasses(Class...values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setNotBeanClasses(Collection> values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeNotBeanClasses(Class...values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeNotBeanClasses(Collection> values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanFilters(Class...values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanFilters(Collection> values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setBeanFilters(Class...values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setBeanFilters(Collection> values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeBeanFilters(Class...values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeBeanFilters(Collection> values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder pojoSwaps(Class...values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder pojoSwaps(Collection> values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setPojoSwaps(Class...values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setPojoSwaps(Collection> values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removePojoSwaps(Class...values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removePojoSwaps(Collection> values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder implClasses(Map,Class> values) { + @Override /* ContextBuilder */ + public JsoParserBuilder implClasses(Map> values) { super.implClasses(values); return this; } - @Override /* CoreObjectBuilder */ - public CoreObjectBuilder implClass(Class interfaceClass, Class implClass) { + @Override /* ContextBuilder */ + public JsoParserBuilder implClass(Class interfaceClass, Class implClass) { super.implClass(interfaceClass, implClass); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanDictionary(Class...values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanDictionary(Collection> values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setBeanDictionary(Class...values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder setBeanDictionary(Collection> values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeFromBeanDictionary(Class...values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder removeFromBeanDictionary(Collection> values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder beanTypePropertyName(String value) { super.beanTypePropertyName(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder defaultParser(Class value) { super.defaultParser(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder locale(Locale value) { super.locale(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder timeZone(TimeZone value) { super.timeZone(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder mediaType(MediaType value) { super.mediaType(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoParserBuilder debug() { super.debug(); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder property(String name, Object value) { - super.property(name, value); + @Override /* ContextBuilder */ + public JsoParserBuilder set(String name, Object value) { + super.set(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder properties(Map properties) { - super.properties(properties); + @Override /* ContextBuilder */ + public JsoParserBuilder set(Map properties) { + super.set(properties); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder addToProperty(String name, Object value) { - super.addToProperty(name, value); + @Override /* ContextBuilder */ + public JsoParserBuilder add(Map properties) { + super.add(properties); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder putToProperty(String name, Object key, Object value) { - super.putToProperty(name, key, value); + @Override /* ContextBuilder */ + public JsoParserBuilder addTo(String name, Object value) { + super.addTo(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder putToProperty(String name, Object value) { - super.putToProperty(name, value); + @Override /* ContextBuilder */ + public JsoParserBuilder addTo(String name, String key, Object value) { + super.addTo(name, key, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder removeFromProperty(String name, Object value) { - super.removeFromProperty(name, value); + @Override /* ContextBuilder */ + public JsoParserBuilder removeFrom(String name, Object value) { + super.removeFrom(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoParserBuilder classLoader(ClassLoader classLoader) { - super.classLoader(classLoader); - return this; - } - - @Override /* CoreObjectBuilder */ - public JsoParserBuilder apply(PropertyStore copyFrom) { + @Override /* ContextBuilder */ + public JsoParserBuilder apply(PropertyStore2 copyFrom) { super.apply(copyFrom); return this; } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java index aabd641..fdad03b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java @@ -34,28 +34,25 @@ public class JsoSerializer extends OutputStreamSerializer { //------------------------------------------------------------------------------------------------------------------- /** Default serializer, all default settings.*/ - public static final JsoSerializer DEFAULT = new JsoSerializer(PropertyStore.create()); + public static final JsoSerializer DEFAULT = new JsoSerializer(PropertyStore2.DEFAULT); //------------------------------------------------------------------------------------------------------------------- // Instance //------------------------------------------------------------------------------------------------------------------- - private final SerializerContext ctx; - /** * Constructor. * - * @param propertyStore The property store containing all the settings for this object. + * @param ps The property store containing all the settings for this object. */ - public JsoSerializer(PropertyStore propertyStore) { - super(propertyStore, "application/x-java-serialized-object"); - this.ctx = createContext(SerializerContext.class); + public JsoSerializer(PropertyStore2 ps) { + super(ps, "application/x-java-serialized-object"); } @Override /* CoreObject */ public JsoSerializerBuilder builder() { - return new JsoSerializerBuilder(propertyStore); + return new JsoSerializerBuilder(getPropertyStore()); } /** @@ -76,6 +73,6 @@ public class JsoSerializer extends OutputStreamSerializer { @Override /* Serializer */ public OutputStreamSerializerSession createSession(SerializerSessionArgs args) { - return new JsoSerializerSession(ctx, args); + return new JsoSerializerSession(this, args); } } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java index d768a67..e0c500d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java @@ -33,15 +33,15 @@ public class JsoSerializerBuilder extends SerializerBuilder { /** * Constructor. * - * @param propertyStore The initial configuration settings for this builder. + * @param ps The initial configuration settings for this builder. */ - public JsoSerializerBuilder(PropertyStore propertyStore) { - super(propertyStore); + public JsoSerializerBuilder(PropertyStore2 ps) { + super(ps); } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializer build() { - return new JsoSerializer(propertyStore); + return build(JsoSerializer.class); } @@ -175,416 +175,410 @@ public class JsoSerializerBuilder extends SerializerBuilder { return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beansRequireDefaultConstructor(boolean value) { super.beansRequireDefaultConstructor(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beansRequireSerializable(boolean value) { super.beansRequireSerializable(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beansRequireSettersForGetters(boolean value) { super.beansRequireSettersForGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beansRequireSomeProperties(boolean value) { super.beansRequireSomeProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanMapPutReturnsOldValue(boolean value) { super.beanMapPutReturnsOldValue(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanConstructorVisibility(Visibility value) { super.beanConstructorVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanClassVisibility(Visibility value) { super.beanClassVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanFieldVisibility(Visibility value) { super.beanFieldVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder methodVisibility(Visibility value) { super.methodVisibility(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder useJavaBeanIntrospector(boolean value) { super.useJavaBeanIntrospector(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder useInterfaceProxies(boolean value) { super.useInterfaceProxies(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder ignoreUnknownBeanProperties(boolean value) { super.ignoreUnknownBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { super.ignoreUnknownNullBeanProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { super.ignorePropertiesWithoutSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { super.ignoreInvocationExceptionsOnGetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { super.ignoreInvocationExceptionsOnSetters(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder sortProperties(boolean value) { super.sortProperties(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder notBeanPackages(String...values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder notBeanPackages(Collection values) { super.notBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setNotBeanPackages(String...values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setNotBeanPackages(Collection values) { super.setNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeNotBeanPackages(String...values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeNotBeanPackages(Collection values) { super.removeNotBeanPackages(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder notBeanClasses(Class...values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder notBeanClasses(Collection> values) { super.notBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setNotBeanClasses(Class...values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setNotBeanClasses(Collection> values) { super.setNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeNotBeanClasses(Class...values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeNotBeanClasses(Collection> values) { super.removeNotBeanClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanFilters(Class...values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanFilters(Collection> values) { super.beanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setBeanFilters(Class...values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setBeanFilters(Collection> values) { super.setBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeBeanFilters(Class...values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeBeanFilters(Collection> values) { super.removeBeanFilters(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder pojoSwaps(Class...values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder pojoSwaps(Collection> values) { super.pojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setPojoSwaps(Class...values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setPojoSwaps(Collection> values) { super.setPojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removePojoSwaps(Class...values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removePojoSwaps(Collection> values) { super.removePojoSwaps(values); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder implClasses(Map,Class> values) { + @Override /* ContextBuilder */ + public JsoSerializerBuilder implClasses(Map> values) { super.implClasses(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder implClass(Class interfaceClass, Class implClass) { super.implClass(interfaceClass, implClass); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder includeProperties(Map values) { super.includeProperties(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder includeProperties(String beanClassName, String properties) { super.includeProperties(beanClassName, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder includeProperties(Class beanClass, String properties) { super.includeProperties(beanClass, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder excludeProperties(Map values) { super.excludeProperties(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder excludeProperties(String beanClassName, String properties) { super.excludeProperties(beanClassName, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder excludeProperties(Class beanClass, String properties) { super.excludeProperties(beanClass, properties); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanDictionary(Class...values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanDictionary(Collection> values) { super.beanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setBeanDictionary(Class...values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder setBeanDictionary(Collection> values) { super.setBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeFromBeanDictionary(Class...values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder removeFromBeanDictionary(Collection> values) { super.removeFromBeanDictionary(values); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder beanTypePropertyName(String value) { super.beanTypePropertyName(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder defaultParser(Class value) { super.defaultParser(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder locale(Locale value) { super.locale(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder timeZone(TimeZone value) { super.timeZone(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder mediaType(MediaType value) { super.mediaType(value); return this; } - @Override /* CoreObjectBuilder */ + @Override /* ContextBuilder */ public JsoSerializerBuilder debug() { super.debug(); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder property(String name, Object value) { - super.property(name, value); + @Override /* ContextBuilder */ + public JsoSerializerBuilder set(String name, Object value) { + super.set(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder properties(Map properties) { - super.properties(properties); + @Override /* ContextBuilder */ + public JsoSerializerBuilder set(Map properties) { + super.set(properties); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder addToProperty(String name, Object value) { - super.addToProperty(name, value); + @Override /* ContextBuilder */ + public JsoSerializerBuilder add(Map properties) { + super.add(properties); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder putToProperty(String name, Object key, Object value) { - super.putToProperty(name, key, value); + @Override /* ContextBuilder */ + public JsoSerializerBuilder addTo(String name, Object value) { + super.addTo(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder putToProperty(String name, Object value) { - super.putToProperty(name, value); + @Override /* ContextBuilder */ + public JsoSerializerBuilder addTo(String name, String key, Object value) { + super.addTo(name, key, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder removeFromProperty(String name, Object value) { - super.removeFromProperty(name, value); + @Override /* ContextBuilder */ + public JsoSerializerBuilder removeFrom(String name, Object value) { + super.removeFrom(name, value); return this; } - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder classLoader(ClassLoader classLoader) { - super.classLoader(classLoader); - return this; - } - - @Override /* CoreObjectBuilder */ - public JsoSerializerBuilder apply(PropertyStore copyFrom) { + @Override /* ContextBuilder */ + public JsoSerializerBuilder apply(PropertyStore2 copyFrom) { super.apply(copyFrom); return this; } http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java index 83b8c42..5d4f6f8 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerSession.java @@ -37,7 +37,7 @@ public class JsoSerializerSession extends OutputStreamSerializerSession { * It also include session-level properties that override the properties defined on the bean and * serializer contexts. */ - protected JsoSerializerSession(SerializerContext ctx, SerializerSessionArgs args) { + protected JsoSerializerSession(JsoSerializer ctx, SerializerSessionArgs args) { super(ctx, args); }