<!--
/***************************************************************************************************************************
 * 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_debug BEAN_debug}
		<li class='jf'>{@link oaj.BeanContext#BEAN_examples BEAN_examples}
		<li class='jf'>{@link oaj.BeanContext#BEAN_excludeProperties BEAN_excludeProperties}
		<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_includeProperties BEAN_includeProperties}
		<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>
