<!--
/***************************************************************************************************************************
 * 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.
 ***************************************************************************************************************************/
 -->

Common Serializer Properties

<p>
	All serializers and parsers extend from the {@link oaj.BeanContext} class.
	Therefore, the following properties are common to all serializers and parsers:
</p>
<ul class='javatree'>
	<li class='jc'>{@link oaj.BeanContext}
	<ul>
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanConstructorVisibility BEAN_beanConstructorVisibility}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanDictionary BEAN_beanDictionary}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanFilters BEAN_beanFilters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanMapPutReturnsOldValue BEAN_beanMapPutReturnsOldValue}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanMethodVisibility BEAN_beanMethodVisibility}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beansRequireDefaultConstructor BEAN_beansRequireDefaultConstructor}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beansRequireSerializable BEAN_beansRequireSerializable}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beansRequireSettersForGetters BEAN_beansRequireSettersForGetters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beansRequireSomeProperties BEAN_beansRequireSomeProperties}
		<li class='jf'>{@link oaj.BeanContext#BEAN_beanTypePropertyName BEAN_beanTypePropertyName}
		<li class='jf'>{@link oaj.BeanContext#BEAN_bpi BEAN_bpi}
		<li class='jf'>{@link oaj.BeanContext#BEAN_bpx BEAN_bpx}
		<li class='jf'>{@link oaj.BeanContext#BEAN_debug BEAN_debug}
		<li class='jf'>{@link oaj.BeanContext#BEAN_examples BEAN_examples}
		<li class='jf'>{@link oaj.BeanContext#BEAN_fluentSetters BEAN_fluentSetters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters BEAN_ignoreInvocationExceptionsOnGetters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters BEAN_ignoreInvocationExceptionsOnSetters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_ignorePropertiesWithoutSetters BEAN_ignorePropertiesWithoutSetters}
		<li class='jf'>{@link oaj.BeanContext#BEAN_ignoreUnknownBeanProperties BEAN_ignoreUnknownBeanProperties}
		<li class='jf'>{@link oaj.BeanContext#BEAN_ignoreUnknownNullBeanProperties BEAN_ignoreUnknownNullBeanProperties}
		<li class='jf'>{@link oaj.BeanContext#BEAN_implClasses BEAN_implClasses}
		<li class='jf'>{@link oaj.BeanContext#BEAN_locale BEAN_locale}
		<li class='jf'>{@link oaj.BeanContext#BEAN_mediaType BEAN_mediaType}
		<li class='jf'>{@link oaj.BeanContext#BEAN_notBeanClasses BEAN_notBeanClasses}
		<li class='jf'>{@link oaj.BeanContext#BEAN_notBeanPackages BEAN_notBeanPackages}
		<li class='jf'>{@link oaj.BeanContext#BEAN_pojoSwaps BEAN_pojoSwaps}
		<li class='jf'>{@link oaj.BeanContext#BEAN_propertyNamer BEAN_propertyNamer}
		<li class='jf'>{@link oaj.BeanContext#BEAN_sortProperties BEAN_sortProperties}
		<li class='jf'>{@link oaj.BeanContext#BEAN_timeZone BEAN_timeZone}
		<li class='jf'>{@link oaj.BeanContext#BEAN_useEnumNames BEAN_useEnumNames}
		<li class='jf'>{@link oaj.BeanContext#BEAN_useInterfaceProxies BEAN_useInterfaceProxies}
		<li class='jf'>{@link oaj.BeanContext#BEAN_useJavaBeanIntrospector BEAN_useJavaBeanIntrospector}
	</ul>
</ul>
