All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.juneau.json.annotation.JsonConfig Maven / Gradle / Ivy

// ***************************************************************************************************************************
// * 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.json.annotation;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

import java.lang.annotation.*;

import org.apache.juneau.annotation.*;
import org.apache.juneau.json.*;
import org.apache.juneau.serializer.*;

/**
 * Annotation for specifying config properties defined in {@link JsonSerializer} and {@link JsonParser}.
 *
 * 

* Used primarily for specifying bean configuration properties on REST classes and methods. * *

See Also:
*/ @Target({TYPE,METHOD}) @Retention(RUNTIME) @Inherited @ContextApply({JsonConfigAnnotation.SerializerApply.class,JsonConfigAnnotation.ParserApply.class}) public @interface JsonConfig { /** * Optional rank for this config. * *

* Can be used to override default ordering and application of config annotations. * * @return The annotation value. */ int rank() default 0; //------------------------------------------------------------------------------------------------------------------- // JsonCommon //------------------------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------------------- // JsonParser //------------------------------------------------------------------------------------------------------------------- /** * Validate end. * *

* If "true", after parsing a POJO from the input, verifies that the remaining input in * the stream consists of only comments or whitespace. * *

    *
  • "true" *
  • "false" (default) *
* *
Notes:
* *
See Also:
    *
  • {@link org.apache.juneau.json.JsonParser.Builder#validateEnd()} *
* * @return The annotation value. */ String validateEnd() default ""; //------------------------------------------------------------------------------------------------------------------- // JsonSerializer //------------------------------------------------------------------------------------------------------------------- /** * Add "_type" properties when needed. * *

* If "true", then "_type" properties will be added to beans if their type cannot be inferred * through reflection. * *

* When present, this value overrides the {@link org.apache.juneau.serializer.Serializer.Builder#addBeanTypes()} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerSet}. * *

    *
  • "true" *
  • "false" (default) *
* *
Notes:
* *
See Also:
    *
  • {@link org.apache.juneau.json.JsonSerializer.Builder#addBeanTypesJson()} *
* * @return The annotation value. */ String addBeanTypes() default ""; /** * Prefix solidus '/' characters with escapes. * *

* If "true", solidus (e.g. slash) characters should be escaped. * The JSON specification allows for either format. *
However, if you're embedding JSON in an HTML script tag, this setting prevents confusion when trying to serialize * <\/script>. * *

    *
  • "true" *
  • "false" (default) *
* *
Notes:
* *
See Also:
    *
  • {@link org.apache.juneau.json.JsonSerializer.Builder#escapeSolidus()} *
* * @return The annotation value. */ String escapeSolidus() default ""; /** * Simple JSON attribute mode. * *

* If "true", JSON attribute names will only be quoted when necessary. *
Otherwise, they are always quoted. * *

* Attributes do not need to be quoted when they conform to the following: *

    *
  1. They start with an ASCII character or '_'. *
  2. They contain only ASCII characters or numbers or '_'. *
  3. They are not one of the following reserved words: *

    * arguments, break, case, catch, class, const, continue, debugger, default, * delete, do, else, enum, eval, export, extends, false, finally, for, function, * if, implements, import, in, instanceof, interface, let, new, null, package, * private, protected, public, return, static, super, switch, this, throw, * true, try, typeof, var, void, while, with, undefined, yield *

    *
* *
    *
  • "true" *
  • "false" (default) *
* *
Notes:
* *
See Also:
    *
  • {@link org.apache.juneau.json.JsonSerializer.Builder#simpleAttrs()} *
* * @return The annotation value. */ String simpleAttrs() default ""; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy