Showing preview only (1,862K chars total). Download the full file or copy to clipboard to get everything.
Repository: eclipse-ee4j/yasson
Branch: main
Commit: ba42fac2dfcc
Files: 596
Total size: 1.6 MB
Directory structure:
gitextract_u4tfpvr0/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── other-issue.md
│ ├── dependabot.yml
│ └── workflows/
│ └── maven.yml
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE.md
├── NOTICE.md
├── README.md
├── etc/
│ ├── checkstyle-suppressions.xml
│ ├── checkstyle.xml
│ ├── copyright-exclude.txt
│ ├── copyright.sh
│ ├── copyright.txt
│ └── delivery-checks.sh
├── pom.xml
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── module-info.java
│ │ │ └── org/
│ │ │ └── eclipse/
│ │ │ └── yasson/
│ │ │ ├── FieldAccessStrategy.java
│ │ │ ├── ImplementationClass.java
│ │ │ ├── JsonBindingProvider.java
│ │ │ ├── YassonConfig.java
│ │ │ ├── YassonJsonb.java
│ │ │ ├── YassonProperties.java
│ │ │ ├── internal/
│ │ │ │ ├── AnnotationFinder.java
│ │ │ │ ├── AnnotationIntrospector.java
│ │ │ │ ├── BuiltInTypes.java
│ │ │ │ ├── ClassMultiReleaseExtension.java
│ │ │ │ ├── ClassParser.java
│ │ │ │ ├── ComponentMatcher.java
│ │ │ │ ├── ConstructorPropertiesAnnotationIntrospector.java
│ │ │ │ ├── DeserializationContextImpl.java
│ │ │ │ ├── InstanceCreator.java
│ │ │ │ ├── JsonBinding.java
│ │ │ │ ├── JsonBindingBuilder.java
│ │ │ │ ├── JsonbConfigProperties.java
│ │ │ │ ├── JsonbContext.java
│ │ │ │ ├── JsonbDateFormatter.java
│ │ │ │ ├── JsonbNumberFormatter.java
│ │ │ │ ├── MappingContext.java
│ │ │ │ ├── ProcessingContext.java
│ │ │ │ ├── ReflectionUtils.java
│ │ │ │ ├── ResolvedParameterizedType.java
│ │ │ │ ├── SerializationContextImpl.java
│ │ │ │ ├── VariableTypeInheritanceSearch.java
│ │ │ │ ├── components/
│ │ │ │ │ ├── AbstractComponentBinding.java
│ │ │ │ │ ├── AdapterBinding.java
│ │ │ │ │ ├── BeanManagerInstanceCreator.java
│ │ │ │ │ ├── ComponentBindings.java
│ │ │ │ │ ├── DefaultConstructorCreator.java
│ │ │ │ │ ├── DeserializerBinding.java
│ │ │ │ │ ├── JsonbComponentInstanceCreatorFactory.java
│ │ │ │ │ └── SerializerBinding.java
│ │ │ │ ├── deserializer/
│ │ │ │ │ ├── AdapterDeserializer.java
│ │ │ │ │ ├── ArrayDeserializer.java
│ │ │ │ │ ├── ArrayInstanceCreator.java
│ │ │ │ │ ├── CollectionDeserializer.java
│ │ │ │ │ ├── CollectionInstanceCreator.java
│ │ │ │ │ ├── ContextSwitcher.java
│ │ │ │ │ ├── CyclicReferenceDeserializer.java
│ │ │ │ │ ├── DefaultObjectInstanceCreator.java
│ │ │ │ │ ├── DeferredDeserializer.java
│ │ │ │ │ ├── DeserializationModelCreator.java
│ │ │ │ │ ├── InheritanceInstanceCreator.java
│ │ │ │ │ ├── JsonbCreatorDeserializer.java
│ │ │ │ │ ├── JustReturn.java
│ │ │ │ │ ├── MapDeserializer.java
│ │ │ │ │ ├── MapInstanceCreator.java
│ │ │ │ │ ├── ModelDeserializer.java
│ │ │ │ │ ├── NullCheckDeserializer.java
│ │ │ │ │ ├── ObjectDeserializer.java
│ │ │ │ │ ├── OptionalDeserializer.java
│ │ │ │ │ ├── PositionChecker.java
│ │ │ │ │ ├── RequiredCreatorParameter.java
│ │ │ │ │ ├── UserDefinedDeserializer.java
│ │ │ │ │ ├── ValueExtractor.java
│ │ │ │ │ ├── ValueSetterDeserializer.java
│ │ │ │ │ ├── YassonParser.java
│ │ │ │ │ └── types/
│ │ │ │ │ ├── AbstractDateDeserializer.java
│ │ │ │ │ ├── AbstractNumberDeserializer.java
│ │ │ │ │ ├── BigDecimalDeserializer.java
│ │ │ │ │ ├── BigIntegerDeserializer.java
│ │ │ │ │ ├── BooleanDeserializer.java
│ │ │ │ │ ├── ByteDeserializer.java
│ │ │ │ │ ├── CalendarDeserializer.java
│ │ │ │ │ ├── CharDeserializer.java
│ │ │ │ │ ├── DateDeserializer.java
│ │ │ │ │ ├── DoubleDeserializer.java
│ │ │ │ │ ├── DurationDeserializer.java
│ │ │ │ │ ├── EnumDeserializer.java
│ │ │ │ │ ├── FloatDeserializer.java
│ │ │ │ │ ├── InstantDeserializer.java
│ │ │ │ │ ├── IntegerDeserializer.java
│ │ │ │ │ ├── JsonValueDeserializer.java
│ │ │ │ │ ├── LocalDateDeserializer.java
│ │ │ │ │ ├── LocalDateTimeDeserializer.java
│ │ │ │ │ ├── LocalTimeDeserializer.java
│ │ │ │ │ ├── LongDeserializer.java
│ │ │ │ │ ├── MonthDayTypeDeserializer.java
│ │ │ │ │ ├── NumberDeserializer.java
│ │ │ │ │ ├── ObjectTypeDeserializer.java
│ │ │ │ │ ├── OffsetDateTimeDeserializer.java
│ │ │ │ │ ├── OffsetTimeDeserializer.java
│ │ │ │ │ ├── OptionalDoubleDeserializer.java
│ │ │ │ │ ├── OptionalIntDeserializer.java
│ │ │ │ │ ├── OptionalLongDeserializer.java
│ │ │ │ │ ├── PathDeserializer.java
│ │ │ │ │ ├── PeriodDeserializer.java
│ │ │ │ │ ├── ShortDeserializer.java
│ │ │ │ │ ├── SqlDateDeserializer.java
│ │ │ │ │ ├── SqlTimestampDeserializer.java
│ │ │ │ │ ├── StringDeserializer.java
│ │ │ │ │ ├── TimeZoneDeserializer.java
│ │ │ │ │ ├── TypeDeserializer.java
│ │ │ │ │ ├── TypeDeserializerBuilder.java
│ │ │ │ │ ├── TypeDeserializers.java
│ │ │ │ │ ├── UriDeserializer.java
│ │ │ │ │ ├── UrlDeserializer.java
│ │ │ │ │ ├── UuidDeserializer.java
│ │ │ │ │ ├── XmlGregorianCalendarDeserializer.java
│ │ │ │ │ ├── YearMonthTypeDeserializer.java
│ │ │ │ │ ├── ZoneIdDeserializer.java
│ │ │ │ │ ├── ZoneOffsetDeserializer.java
│ │ │ │ │ └── ZonedDateTimeDeserializer.java
│ │ │ │ ├── jsonstructure/
│ │ │ │ │ ├── JsonArrayBuilder.java
│ │ │ │ │ ├── JsonArrayIterator.java
│ │ │ │ │ ├── JsonGeneratorToStructureAdapter.java
│ │ │ │ │ ├── JsonObjectBuilder.java
│ │ │ │ │ ├── JsonObjectIterator.java
│ │ │ │ │ ├── JsonStructureBuilder.java
│ │ │ │ │ ├── JsonStructureIterator.java
│ │ │ │ │ └── JsonStructureToParserAdapter.java
│ │ │ │ ├── model/
│ │ │ │ │ ├── AnnotationTarget.java
│ │ │ │ │ ├── ClassModel.java
│ │ │ │ │ ├── CreatorModel.java
│ │ │ │ │ ├── JsonbAnnotatedElement.java
│ │ │ │ │ ├── JsonbCreator.java
│ │ │ │ │ ├── ModulesUtil.java
│ │ │ │ │ ├── Property.java
│ │ │ │ │ ├── PropertyModel.java
│ │ │ │ │ ├── ReverseTreeMap.java
│ │ │ │ │ └── customization/
│ │ │ │ │ ├── ClassCustomization.java
│ │ │ │ │ ├── ComponentBoundCustomization.java
│ │ │ │ │ ├── CreatorCustomization.java
│ │ │ │ │ ├── Customization.java
│ │ │ │ │ ├── CustomizationBase.java
│ │ │ │ │ ├── PropertyCustomization.java
│ │ │ │ │ ├── PropertyOrdering.java
│ │ │ │ │ ├── StrategiesProvider.java
│ │ │ │ │ ├── TypeInheritanceConfiguration.java
│ │ │ │ │ └── VisibilityStrategiesProvider.java
│ │ │ │ ├── properties/
│ │ │ │ │ ├── MessageKeys.java
│ │ │ │ │ └── Messages.java
│ │ │ │ └── serializer/
│ │ │ │ ├── AbstractSerializer.java
│ │ │ │ ├── AdapterSerializer.java
│ │ │ │ ├── ArraySerializer.java
│ │ │ │ ├── CollectionSerializer.java
│ │ │ │ ├── CyclicReferenceSerializer.java
│ │ │ │ ├── KeyWriter.java
│ │ │ │ ├── MapSerializer.java
│ │ │ │ ├── ModelSerializer.java
│ │ │ │ ├── NullSerializer.java
│ │ │ │ ├── NullVisibilitySwitcher.java
│ │ │ │ ├── ObjectSerializer.java
│ │ │ │ ├── OptionalSerializer.java
│ │ │ │ ├── RecursionChecker.java
│ │ │ │ ├── SerializationModelCreator.java
│ │ │ │ ├── SerializerBuilderParams.java
│ │ │ │ ├── UserDefinedSerializer.java
│ │ │ │ ├── ValueGetterSerializer.java
│ │ │ │ ├── YassonGenerator.java
│ │ │ │ └── types/
│ │ │ │ ├── AbstractDateSerializer.java
│ │ │ │ ├── AbstractNumberSerializer.java
│ │ │ │ ├── BigDecimalSerializer.java
│ │ │ │ ├── BigIntegerSerializer.java
│ │ │ │ ├── BooleanSerializer.java
│ │ │ │ ├── ByteSerializer.java
│ │ │ │ ├── CalendarSerializer.java
│ │ │ │ ├── CharSerializer.java
│ │ │ │ ├── DateSerializer.java
│ │ │ │ ├── DoubleSerializer.java
│ │ │ │ ├── DurationSerializer.java
│ │ │ │ ├── EnumSerializer.java
│ │ │ │ ├── FloatSerializer.java
│ │ │ │ ├── InstantSerializer.java
│ │ │ │ ├── IntegerSerializer.java
│ │ │ │ ├── JsonValueSerializer.java
│ │ │ │ ├── LocalDateSerializer.java
│ │ │ │ ├── LocalDateTimeSerializer.java
│ │ │ │ ├── LocalTimeSerializer.java
│ │ │ │ ├── LongSerializer.java
│ │ │ │ ├── MonthDayTypeSerializer.java
│ │ │ │ ├── NumberSerializer.java
│ │ │ │ ├── ObjectTypeSerializer.java
│ │ │ │ ├── OffsetDateTimeSerializer.java
│ │ │ │ ├── OffsetTimeSerializer.java
│ │ │ │ ├── OptionalDoubleSerializer.java
│ │ │ │ ├── OptionalIntSerializer.java
│ │ │ │ ├── OptionalLongSerializer.java
│ │ │ │ ├── PathSerializer.java
│ │ │ │ ├── PeriodSerializer.java
│ │ │ │ ├── ShortSerializer.java
│ │ │ │ ├── SqlDateSerializer.java
│ │ │ │ ├── SqlTimestampSerializer.java
│ │ │ │ ├── StringSerializer.java
│ │ │ │ ├── TimeZoneSerializer.java
│ │ │ │ ├── TypeSerializer.java
│ │ │ │ ├── TypeSerializerBuilder.java
│ │ │ │ ├── TypeSerializers.java
│ │ │ │ ├── UriSerializer.java
│ │ │ │ ├── UrlSerializer.java
│ │ │ │ ├── UuidSerializer.java
│ │ │ │ ├── XmlGregorianCalendarSerializer.java
│ │ │ │ ├── YearMonthTypeSerializer.java
│ │ │ │ ├── ZoneIdSerializer.java
│ │ │ │ ├── ZoneOffsetSerializer.java
│ │ │ │ └── ZonedDateTimeSerializer.java
│ │ │ └── spi/
│ │ │ └── JsonbComponentInstanceCreator.java
│ │ ├── java16/
│ │ │ └── org/
│ │ │ └── eclipse/
│ │ │ └── yasson/
│ │ │ └── internal/
│ │ │ └── ClassMultiReleaseExtension.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── native-image/
│ │ │ │ └── org.eclipse/
│ │ │ │ └── yasson/
│ │ │ │ └── native-image.properties
│ │ │ └── services/
│ │ │ └── jakarta.json.bind.spi.JsonbProvider
│ │ └── yasson-messages.properties
│ └── test/
│ ├── java/
│ │ ├── PackagelessClassTest.java
│ │ ├── PackagelessModel.java
│ │ └── org/
│ │ └── eclipse/
│ │ └── yasson/
│ │ ├── Assertions.java
│ │ ├── DefaultGetterInInterface.java
│ │ ├── FieldAccessStrategyTest.java
│ │ ├── Issue454Test.java
│ │ ├── Issue456Test.java
│ │ ├── JavaxNamingExcludedTest.java
│ │ ├── Jsonbs.java
│ │ ├── SimpleTest.java
│ │ ├── TestTypeToken.java
│ │ ├── YassonConfigTest.java
│ │ ├── adapters/
│ │ │ ├── AdaptersTest.java
│ │ │ ├── JsonbTypeAdapterTest.java
│ │ │ └── model/
│ │ │ ├── AdaptedPojo.java
│ │ │ ├── Author.java
│ │ │ ├── Box.java
│ │ │ ├── BoxToCrateCompatibleGenericsAdapter.java
│ │ │ ├── BoxToCratePropagatedIntegerStringAdapter.java
│ │ │ ├── BoxToCratePropagatedTypeArgsAdapter.java
│ │ │ ├── BoxToJsonObjectAdapter.java
│ │ │ ├── BoxWithAdapter.java
│ │ │ ├── BoxWithAdapterAdapter.java
│ │ │ ├── BoxWithDeserializer.java
│ │ │ ├── BoxWithDeserializerDeserializer.java
│ │ │ ├── BoxWithSerializer.java
│ │ │ ├── BoxWithSerializerSerializer.java
│ │ │ ├── Chain.java
│ │ │ ├── ChainAdapter.java
│ │ │ ├── ChainSerializer.java
│ │ │ ├── Crate.java
│ │ │ ├── FirstNameAdapter.java
│ │ │ ├── Foo.java
│ │ │ ├── FooAdapter.java
│ │ │ ├── FooSerializer.java
│ │ │ ├── GenericBox.java
│ │ │ ├── GenericCrate.java
│ │ │ ├── IntegerListToStringAdapter.java
│ │ │ ├── JsonObjectPojo.java
│ │ │ ├── LocalPolymorphicAdapter.java
│ │ │ ├── LocalTypeWrapper.java
│ │ │ ├── MultiinterfaceAdapter.java
│ │ │ ├── MultilevelAdapterClass.java
│ │ │ ├── NumberAdapter.java
│ │ │ ├── ReturnNullAdapter.java
│ │ │ ├── SerializableAdapter.java
│ │ │ ├── SupertypeAdapterPojo.java
│ │ │ ├── UUIDContainer.java
│ │ │ ├── UUIDMapperClsBased.java
│ │ │ └── UUIDMapperIfcBased.java
│ │ ├── customization/
│ │ │ ├── AnnotationInheritanceTest.java
│ │ │ ├── EncodingTest.java
│ │ │ ├── ImplementationClassTest.java
│ │ │ ├── InterfaceAnnotationsTest.java
│ │ │ ├── JsonbCreatorTest.java
│ │ │ ├── JsonbDateFormatterTest.java
│ │ │ ├── JsonbNillableTest.java
│ │ │ ├── JsonbPropertyTest.java
│ │ │ ├── JsonbPropertyVisibilityStrategyTest.java
│ │ │ ├── NumberFormatTest.java
│ │ │ ├── PrettyPrintTest.java
│ │ │ ├── PropertyOrderTest.java
│ │ │ ├── YassonSpecificConfigTests.java
│ │ │ ├── model/
│ │ │ │ ├── Animal.java
│ │ │ │ ├── CollectionsWithFormatters.java
│ │ │ │ ├── CreatorConstructorPojo.java
│ │ │ │ ├── CreatorFactoryMethodPojo.java
│ │ │ │ ├── CreatorIncompatibleTypePojo.java
│ │ │ │ ├── CreatorMultipleDeclarationErrorPojo.java
│ │ │ │ ├── CreatorPackagePrivateConstructor.java
│ │ │ │ ├── CreatorWithoutJavabeanProperty.java
│ │ │ │ ├── CreatorWithoutJsonbProperty.java
│ │ │ │ ├── CreatorWithoutJsonbProperty1.java
│ │ │ │ ├── DateFormatPojo.java
│ │ │ │ ├── DateFormatPojoWithClassLevelFormatter.java
│ │ │ │ ├── Dog.java
│ │ │ │ ├── FieldCustomOrder.java
│ │ │ │ ├── FieldCustomOrderWrapper.java
│ │ │ │ ├── FieldOrder.java
│ │ │ │ ├── FieldOrderNameAnnotation.java
│ │ │ │ ├── FieldSpecificOrder.java
│ │ │ │ ├── ImplementationClassPojo.java
│ │ │ │ ├── InheritedAnnotationsPojo.java
│ │ │ │ ├── InheritsJsonbProperty.java
│ │ │ │ ├── InheritsNillable.java
│ │ │ │ ├── InheritsNillableRecursion.java
│ │ │ │ ├── InterfacedPojoA.java
│ │ │ │ ├── InterfacedPojoAbsImpl.java
│ │ │ │ ├── InterfacedPojoB.java
│ │ │ │ ├── InterfacedPojoC.java
│ │ │ │ ├── InterfacedPojoImpl.java
│ │ │ │ ├── JsonbNillableClassFirstLevel.java
│ │ │ │ ├── JsonbNillableClassSecondLevel.java
│ │ │ │ ├── JsonbNillableInterfaceBase.java
│ │ │ │ ├── JsonbNillableInterfaceBaseOne.java
│ │ │ │ ├── JsonbNillableInterfaceBaseTwo.java
│ │ │ │ ├── JsonbNillableOverriddenWithJsonbProperty.java
│ │ │ │ ├── JsonbNillableOverridesClass.java
│ │ │ │ ├── JsonbNillableOverridesInterface.java
│ │ │ │ ├── JsonbNillableValue.java
│ │ │ │ ├── JsonbPropertyName.java
│ │ │ │ ├── JsonbPropertyNameCollision.java
│ │ │ │ ├── JsonbPropertyNillable.java
│ │ │ │ ├── NumberFormatPojo.java
│ │ │ │ ├── NumberFormatPojoWithoutClassLevelFormatter.java
│ │ │ │ ├── ParameterNameTester.java
│ │ │ │ ├── RenamedPropertiesContainer.java
│ │ │ │ ├── TrimmedDatePojo.java
│ │ │ │ └── packagelevelannotations/
│ │ │ │ ├── JsonbNillablePackageLevel.java
│ │ │ │ ├── PackageLevelOverriddenWithClassLevel.java
│ │ │ │ └── package-info.java
│ │ │ ├── polymorphism/
│ │ │ │ ├── AnnotationPolymorphismTest.java
│ │ │ │ ├── MultiplePolymorphicInfoTest.java
│ │ │ │ └── NestedPolymorphismTest.java
│ │ │ └── transients/
│ │ │ ├── JsonbTransientTest.java
│ │ │ └── models/
│ │ │ ├── JsonbTransientCollisionOnGetter.java
│ │ │ ├── JsonbTransientCollisionOnProperty.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndGetter.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndGetterAndSetter.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndSetter.java
│ │ │ ├── JsonbTransientCollisionOnSetter.java
│ │ │ ├── JsonbTransientValue.java
│ │ │ ├── TransientGetterNoField.java
│ │ │ ├── TransientGetterPlusCustomizationAnnotatedFieldContainer.java
│ │ │ ├── TransientSetterPlusCustomizationAnnotatedFieldContainer.java
│ │ │ └── TransientSetterPlusCustomizationAnnotatedGetterContainer.java
│ │ ├── defaultmapping/
│ │ │ ├── EnumTest.java
│ │ │ ├── IJsonTest.java
│ │ │ ├── anonymous/
│ │ │ │ ├── AnonymousClassTest.java
│ │ │ │ └── OuterPojo.java
│ │ │ ├── basic/
│ │ │ │ ├── BasicTest.java
│ │ │ │ ├── BooleanTest.java
│ │ │ │ ├── NumberTest.java
│ │ │ │ ├── PropertyMismatchTest.java
│ │ │ │ ├── SingleValueTest.java
│ │ │ │ ├── UnqualifiedPropertiesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── BigDecimalInNumber.java
│ │ │ │ └── BooleanModel.java
│ │ │ ├── collections/
│ │ │ │ ├── ArrayTest.java
│ │ │ │ ├── CollectionsTest.java
│ │ │ │ ├── Language.java
│ │ │ │ └── MapKeyTypesTest.java
│ │ │ ├── dates/
│ │ │ │ ├── DatesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractDateTimePojo.java
│ │ │ │ ├── CalendarPojo.java
│ │ │ │ ├── ClassLevelDateAnnotation.java
│ │ │ │ ├── ClassLevelDateAnnotationParent.java
│ │ │ │ ├── CollectionDatePojo.java
│ │ │ │ ├── DatePojo.java
│ │ │ │ ├── DateWithZonePojo.java
│ │ │ │ ├── InstantPojo.java
│ │ │ │ ├── LocalDatePojo.java
│ │ │ │ ├── LocalDateTimePojo.java
│ │ │ │ ├── LocalTimePojo.java
│ │ │ │ ├── MonthDayPojo.java
│ │ │ │ ├── OffsetDateTimePojo.java
│ │ │ │ ├── OffsetTimePojo.java
│ │ │ │ ├── YearMonthPojo.java
│ │ │ │ └── ZonedDateTimePojo.java
│ │ │ ├── generics/
│ │ │ │ ├── GenericsTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractGenericWrapper.java
│ │ │ │ ├── AbstractMember.java
│ │ │ │ ├── AnotherGenericTestClass.java
│ │ │ │ ├── BoundedGenericClass.java
│ │ │ │ ├── Circle.java
│ │ │ │ ├── CollectionContainer.java
│ │ │ │ ├── CollectionElement.java
│ │ │ │ ├── CollectionWrapper.java
│ │ │ │ ├── ColoredCircle.java
│ │ │ │ ├── ConstructorContainer.java
│ │ │ │ ├── CyclicSubClass.java
│ │ │ │ ├── ExtendedGenericTestClass.java
│ │ │ │ ├── FinalGenericWrapper.java
│ │ │ │ ├── FinalMember.java
│ │ │ │ ├── GenericArrayClass.java
│ │ │ │ ├── GenericTestClass.java
│ │ │ │ ├── GenericWithUnboundedWildcardClass.java
│ │ │ │ ├── LowerBoundTypeVariableWithCollectionAttributeClass.java
│ │ │ │ ├── MiddleGenericWrapper.java
│ │ │ │ ├── MultiLevelExtendedGenericTestClass.java
│ │ │ │ ├── MultipleBoundsContainer.java
│ │ │ │ ├── MyCyclicGenericClass.java
│ │ │ │ ├── PropagatedGenericClass.java
│ │ │ │ ├── ScalarValueWrapper.java
│ │ │ │ ├── Shape.java
│ │ │ │ ├── StaticCreatorContainer.java
│ │ │ │ ├── TreeContainer.java
│ │ │ │ ├── TreeElement.java
│ │ │ │ ├── TreeTypeContainer.java
│ │ │ │ ├── TypeContainer.java
│ │ │ │ ├── WildCardClass.java
│ │ │ │ └── WildcardMultipleBoundsClass.java
│ │ │ ├── inheritance/
│ │ │ │ ├── InheritanceTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractZeroLevel.java
│ │ │ │ ├── FirstLevel.java
│ │ │ │ ├── PartialOverride.java
│ │ │ │ ├── PartialOverrideBase.java
│ │ │ │ ├── PropertyOrderFirst.java
│ │ │ │ ├── PropertyOrderSecond.java
│ │ │ │ ├── PropertyOrderZero.java
│ │ │ │ ├── SecondLevel.java
│ │ │ │ └── generics/
│ │ │ │ ├── AbstractZeroLevelGeneric.java
│ │ │ │ ├── AnotherGenericInterface.java
│ │ │ │ ├── ExtendsExtendsPropagatedGenericClass.java
│ │ │ │ ├── ExtendsPropagatedGenericClass.java
│ │ │ │ ├── FirstLevelGeneric.java
│ │ │ │ ├── GenericInterface.java
│ │ │ │ ├── ImplementsGenericInterfaces.java
│ │ │ │ └── SecondLevelGeneric.java
│ │ │ ├── jsonp/
│ │ │ │ ├── JsonpLong.java
│ │ │ │ ├── JsonpString.java
│ │ │ │ ├── JsonpTest.java
│ │ │ │ └── model/
│ │ │ │ └── JsonpPojo.java
│ │ │ ├── lambda/
│ │ │ │ ├── Addressable.java
│ │ │ │ ├── Cat.java
│ │ │ │ ├── LambdaExpressionTest.java
│ │ │ │ ├── Pet.java
│ │ │ │ └── Robot.java
│ │ │ ├── modifiers/
│ │ │ │ ├── ClassModifiersTest.java
│ │ │ │ ├── DefaultMappingModifiersTest.java
│ │ │ │ └── model/
│ │ │ │ ├── ChildOfPackagePrivateParent.java
│ │ │ │ ├── FieldModifiersClass.java
│ │ │ │ ├── MethodModifiersClass.java
│ │ │ │ ├── PackagePrivateParent.java
│ │ │ │ ├── Person.java
│ │ │ │ ├── PrivateConstructorClass.java
│ │ │ │ └── ProtectedConstructorClass.java
│ │ │ ├── properties/
│ │ │ │ └── PropertiesTest.java
│ │ │ ├── specific/
│ │ │ │ ├── CustomerTest.java
│ │ │ │ ├── JsonStreamsTest.java
│ │ │ │ ├── NullTest.java
│ │ │ │ ├── ObjectGraphTest.java
│ │ │ │ ├── OptionalTest.java
│ │ │ │ ├── RecursiveReferenceTest.java
│ │ │ │ ├── SpecificTest.java
│ │ │ │ ├── UnmarshallingUnsupportedTypesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── Address.java
│ │ │ │ ├── ClassWithUnsupportedFields.java
│ │ │ │ ├── CustomUnsupportedInterface.java
│ │ │ │ ├── Customer.java
│ │ │ │ ├── NotMatchingGettersAndSetters.java
│ │ │ │ ├── OptionalWrapper.java
│ │ │ │ ├── SpecificOptionalWrapper.java
│ │ │ │ ├── Street.java
│ │ │ │ ├── StreetWithPrimitives.java
│ │ │ │ └── SupportedTypes.java
│ │ │ └── typeConvertors/
│ │ │ ├── DefaultSerializersTest.java
│ │ │ └── model/
│ │ │ ├── BigDecimalWrapper.java
│ │ │ ├── BigIntegerWrapper.java
│ │ │ ├── ByteArrayWrapper.java
│ │ │ ├── CalendarWrapper.java
│ │ │ └── StringWrapper.java
│ │ ├── documented/
│ │ │ └── DocumentationExampleTest.java
│ │ ├── internal/
│ │ │ ├── AnnotationFinderTest.java
│ │ │ ├── AnnotationFinderTestFixtures.java
│ │ │ ├── AnnotationIntrospectorTest.java
│ │ │ ├── AnnotationIntrospectorTestAsserts.java
│ │ │ ├── AnnotationIntrospectorTestFixtures.java
│ │ │ ├── AnnotationIntrospectorWithoutOptionalModulesTest.java
│ │ │ ├── ClassParserTest.java
│ │ │ ├── CollectionsWithJavaBaseTypesTest.java
│ │ │ ├── ConstructorPropertiesAnnotationIntrospectorTest.java
│ │ │ ├── JsonBindingTest.java
│ │ │ ├── ReflectionUtilsTest.java
│ │ │ ├── cdi/
│ │ │ │ ├── AdaptedPojo.java
│ │ │ │ ├── CalledMethods.java
│ │ │ │ ├── CdiDependentAdapter.java
│ │ │ │ ├── CdiInjectionTest.java
│ │ │ │ ├── CdiTestService.java
│ │ │ │ ├── Hello1.java
│ │ │ │ ├── Hello2.java
│ │ │ │ ├── HelloService1.java
│ │ │ │ ├── HelloService2.java
│ │ │ │ ├── IHelloService.java
│ │ │ │ ├── JndiBeanManager.java
│ │ │ │ ├── MethodCalledEvent.java
│ │ │ │ ├── MockInjectionTarget.java
│ │ │ │ ├── MockInjectionTargetFactory.java
│ │ │ │ ├── MockJndiContext.java
│ │ │ │ ├── MockJndiContextFactory.java
│ │ │ │ ├── NonCdiAdapter.java
│ │ │ │ └── WeldManager.java
│ │ │ ├── concurrent/
│ │ │ │ ├── JsonProcessingResult.java
│ │ │ │ ├── MarshallerTask.java
│ │ │ │ ├── MarshallerTaskResult.java
│ │ │ │ ├── MultiTenancyTest.java
│ │ │ │ ├── ResultChecker.java
│ │ │ │ └── UnmarshallerTask.java
│ │ │ ├── model/
│ │ │ │ ├── ModulesUtil.java
│ │ │ │ └── customization/
│ │ │ │ └── naming/
│ │ │ │ ├── NamingPojo.java
│ │ │ │ └── PropertyNamingStrategyTest.java
│ │ │ └── serializer/
│ │ │ └── ObjectDeserializerTest.java
│ │ ├── jsonpsubstitution/
│ │ │ ├── AdaptedJsonParser.java
│ │ │ ├── PreinstantiatedJsonpTest.java
│ │ │ └── SuffixJsonGenerator.java
│ │ ├── jsonstructure/
│ │ │ ├── InnerPojo.java
│ │ │ ├── InnerPojoDeserializer.java
│ │ │ ├── InnerPojoSerializer.java
│ │ │ ├── Issue673.java
│ │ │ ├── JsonGeneratorToStructureAdapterTest.java
│ │ │ ├── JsonStructureToParserAdapterTest.java
│ │ │ └── Pojo.java
│ │ ├── logger/
│ │ │ └── JsonbLoggerFormatter.java
│ │ ├── records/
│ │ │ ├── Car.java
│ │ │ ├── CarWithCreateNamingStrategyTest.java
│ │ │ ├── CarWithCreator.java
│ │ │ ├── CarWithDefaultConstructor.java
│ │ │ ├── CarWithExtraMethod.java
│ │ │ ├── CarWithGenerics.java
│ │ │ ├── CarWithMultipleConstructors.java
│ │ │ ├── CarWithMultipleConstructorsAndCreator.java
│ │ │ ├── CarWithoutAnnotations.java
│ │ │ ├── Color.java
│ │ │ └── RecordTest.java
│ │ └── serializers/
│ │ ├── MapToEntriesArraySerializerTest.java
│ │ ├── MapToObjectSerializerTest.java
│ │ ├── SerializersTest.java
│ │ ├── TypeDeserializerOnContainersTest.java
│ │ ├── TypeSerializerOnContainersTest.java
│ │ └── model/
│ │ ├── AbstractJsonbSerializer.java
│ │ ├── AnnotatedGenericWithSerializerType.java
│ │ ├── AnnotatedGenericWithSerializerTypeDeserializer.java
│ │ ├── AnnotatedGenericWithSerializerTypeSerializer.java
│ │ ├── AnnotatedWithSerializerType.java
│ │ ├── AnnotatedWithSerializerTypeDeserializer.java
│ │ ├── AnnotatedWithSerializerTypeSerializer.java
│ │ ├── AnnotatedWithSerializerTypeSerializerOverride.java
│ │ ├── Author.java
│ │ ├── Box.java
│ │ ├── BoxWithAnnotations.java
│ │ ├── Containee.java
│ │ ├── ContaineeDeserializer.java
│ │ ├── ContaineeSerializer.java
│ │ ├── Container.java
│ │ ├── Crate.java
│ │ ├── CrateDeserializer.java
│ │ ├── CrateDeserializerWithConversion.java
│ │ ├── CrateInner.java
│ │ ├── CrateJsonObjectDeserializer.java
│ │ ├── CrateSerializer.java
│ │ ├── CrateSerializerWithConversion.java
│ │ ├── ExplicitJsonbSerializer.java
│ │ ├── GenericPropertyPojo.java
│ │ ├── GenericPropertyPojoSerializer.java
│ │ ├── ImplicitJsonbSerializer.java
│ │ ├── NumberDeserializer.java
│ │ ├── NumberSerializer.java
│ │ ├── Pokemon.java
│ │ ├── RecursiveDeserializer.java
│ │ ├── RecursiveSerializer.java
│ │ ├── SimpleAnnotatedSerializedArrayContainer.java
│ │ ├── SimpleContainer.java
│ │ ├── SimpleContainerArrayDeserializer.java
│ │ ├── SimpleContainerArraySerializer.java
│ │ ├── StringPaddingSerializer.java
│ │ ├── StringWrapper.java
│ │ ├── SupertypeSerializerPojo.java
│ │ └── Trainer.java
│ └── resources/
│ ├── META-INF/
│ │ └── beans.xml
│ ├── jndi.properties
│ ├── logging.properties
│ ├── test.policy
│ └── yasson-messages_cs.properties
├── yasson-jmh/
│ ├── .gitignore
│ ├── README.md
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── org/
│ └── eclipse/
│ └── yasson/
│ └── jmh/
│ ├── CollectionsTest.java
│ ├── ScalarDataTest.java
│ ├── TenPropertySerializationTest.java
│ └── model/
│ ├── CollectionsData.java
│ ├── ScalarData.java
│ └── TenPropertyData.java
└── yasson-tck/
├── .gitignore
└── pom.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is. If there is an Exception, please include the full stack trace.
**To Reproduce**
Steps to reproduce the bug
**Expected behavior**
A clear and concise description of what you expected to happen.
**System information:**
- OS: [e.g. Linux, Windows, Mac]
- Java Version: [e.g. 8, 11]
- Yasson Version: [e.g. 1.0.5]
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/ISSUE_TEMPLATE/other-issue.md
================================================
---
name: Other issue
about: Not a bug or a feature request
title: ''
labels: ''
assignees: ''
---
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: daily
# TODO - add maven dependabot if community agrees it's useful
================================================
FILE: .github/workflows/maven.yml
================================================
#
# Copyright (c) 2021, 2026 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#
name: Yasson
on:
push:
branches:
- 'main'
- '*-RELEASE'
pull_request:
branches:
- 'main'
- '*-RELEASE'
jobs:
build:
name: Test on JDK ${{ matrix.java_version }}
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [ 11, 17, 21 ]
steps:
- name: Checkout for build
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Set up compile JDK
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with: #Compile java needs to be the highest to ensure proper compilation of the multi-release jar
distribution: 'temurin'
java-version: 17
cache: 'maven'
- name: Copyright
run: bash etc/copyright.sh
- name: Checkstyle
run: mvn -B checkstyle:checkstyle
- name: Yasson install
run: mvn -U -C clean install -DskipTests
- name: Yasson tests
run: mvn -U -B -C -Dmaven.javadoc.skip=true verify
- name: JSONB-API TCK
run: cd yasson-tck && mvn -U -B test -DargLine="-Djava.locale.providers=COMPAT"
================================================
FILE: .gitignore
================================================
/target/
/target-tck/
.classpath
.project
.idea/
.settings/
/.DS_Store
bin/
.envrc
.vscode/
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Eclipse Yasson
Thanks for your interest in this project.
## Project description
Eclipse Yasson is a Java framework which provides a standard binding layer
between Java classes and JSON documents. This is similar to what JAXB is doing
in the XML world. Yasson is an official reference implementation of JSON Binding
(JSR-367).
* https://projects.eclipse.org/projects/ee4j.yasson
## Developer resources
Information regarding source code management, builds, coding standards, and
more.
* https://projects.eclipse.org/projects/ee4j.yasson/developer
The project maintains the following source code repositories
* https://github.com/eclipse/yasson
* https://github.com/eclipse-ee4j/yasson
## Eclipse Contributor Agreement
Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).
* http://www.eclipse.org/legal/ECA.php
Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.
For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit
## Contact
Contact the project developers via the project's "dev" list.
* https://dev.eclipse.org/mailman/listinfo/yasson-dev
================================================
FILE: LICENSE.md
================================================
# Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
“Contribution” means:
a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works.
“Contributor” means any person or entity that Distributes the Program.
“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
“Program” means the Contributions Distributed in accordance with this Agreement.
“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors.
“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship.
“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof.
“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy.
“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files.
“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and
b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of the Program.
3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement.
Exhibit A – Form of Secondary Licenses Notice
“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.”
Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
You may add additional accurate notices of copyright ownership.
# Eclipse Distribution License - v 1.0
Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: NOTICE.md
================================================
# Notices for Eclipse Yasson
This content is produced and maintained by the Eclipse Yasson project.
* Project home: https://projects.eclipse.org/projects/ee4j.yasson
## Trademarks
Eclipse Yasson is a trademark of the Eclipse Foundation.
## Copyright
All content is the property of the respective authors or their employers. For
more information regarding authorship of content, please consult the listed
source code repository logs.
## Declared Project Licenses
This program and the accompanying materials are made available under the terms
of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-v20.html, or the Eclipse Distribution License
v. 1.0 which is available at http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
## Source Code
The project maintains the following source code repositories:
* https://github.com/eclipse/yasson
* https://github.com/eclipse-ee4j/yasson
## Third-party Content
cdi-api 2.0 (JSR 365: Contexts and Dependency Injection for Java (2.0)
## Cryptography
Content may contain encryption software. The country in which you are currently
may have restrictions on the import, possession, and use, and/or re-export to
another country, of encryption software. BEFORE using any encryption software,
please check the country's laws, regulations and policies concerning the import,
possession, or use, and re-export of encryption software, to see if this is
permitted.
================================================
FILE: README.md
================================================
# Eclipse Yasson
[](https://mvnrepository.com/artifact/org.eclipse/yasson)
<!-- TODO reenable once snapshots can be browsed via https://central.sonatype.com/service/rest/repository/browse/maven-snapshots
[](https://jakarta.oss.sonatype.org/content/repositories/staging/org/eclipse/yasson/)
-->
[](https://gitter.im/eclipse/yasson)
[](https://www.javadoc.io/doc/org.eclipse/yasson)
[](https://github.com/eclipse-ee4j/yasson/actions/workflows/maven.yml?branch=main)
[](https://opensource.org/licenses/EPL-2.0)
Yasson is a Java framework which provides a standard binding layer between Java classes and JSON documents. This is similar to what JAXB is doing in the XML world. Yasson is an official reference implementation of JSON Binding ([JSR-367](https://jcp.org/en/jsr/detail?id=367)).
It defines a **default mapping** algorithm for converting existing Java classes to JSON suitable for the most cases:
```java
Jsonb jsonb = JsonbBuilder.create();
String result = jsonb.toJson(someObject);
```
For whom it's not enough it provides rich customization abilities through a set of **annotations** and rich **programmatic API**:
```java
// Create custom configuration
JsonbConfig config = new JsonbConfig()
.withNullValues(true)
.withFormatting(true);
// Create Jsonb with custom configuration
Jsonb jsonb = JsonbBuilder.create(config);
// Use it!
String result = jsonb.toJson(someObject);
```
## Questions?
Something not working right? Have an idea for an enhancement? Get in touch with the Yasson community in the following ways:
- [Gitter](https://gitter.im/eclipse/yasson): a free instant-messaging platform (similar to Slack) that anyone can join.
- [Stackoverflow](https://stackoverflow.com/questions/tagged/yasson): As a question tagged `[jsonb-api]` and `[yasson]`
- [Github Issues](https://github.com/eclipse-ee4j/yasson/issues/new): Open issues for enhancement ideas or bug reports
## Licenses
- [Eclipse Distribution License 1.0 (BSD)](https://projects.eclipse.org/content/eclipse-distribution-license-1.0-bsd)
- [Eclipse Public License 2.0](https://projects.eclipse.org/content/eclipse-public-license-2.0)
## Links
- Yasson home page: https://projects.eclipse.org/projects/ee4j.yasson
- JSON-B official web site: https://jakartaee.github.io/jsonb-api/
- JSON-B API & spec project: https://github.com/jakartaee/jsonb-api
- JSR-367 page on JCP site: https://jcp.org/en/jsr/detail?id=367
================================================
FILE: etc/checkstyle-suppressions.xml
================================================
<?xml version="1.0"?>
<!--
Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<!-- I was not able to properly set import ordering for static imports -->
<suppress checks="ImportOrder" message="Extra separation in import group before" />
</suppressions>
================================================
FILE: etc/checkstyle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2019, 2024 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<!--
This file is based on maven-checkstyle-plugin config/sun_checks.xml file.
Checkstyle configuration that checks the coding conventions based on:
- the Java Language Specification at
http://java.sun.com/docs/books/jls/second_edition/html/index.html
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
- the Javadoc guidelines at
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
- some custom relaxations of the rules above & best practices
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
Most Checks are configurable, be sure to consult the documentation.
To completely disable a check, just comment it out or delete it from the file.
Finally, it is worth reading the documentation.
-->
<module name="Checker">
<!-- exclude module-info.java check - checkstyle can't process it -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->
<property name="charset" value="UTF-8"/>
<!-- Checks that each Java package has a Javadoc file used for commenting. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
<!-- <module name="JavadocPackage" />-->
<!-- Checks to see if a file contains a tab character. -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<!--
Making sure we do not have @author tags in javadocs
There is a list of developers in pom.xml that is sufficient for our needs.
See https://github.com/checkstyle/checkstyle/issues/5339
-->
<module name="RegexpSingleline">
<!-- The '.' in id is needed, otherwise ArrayIndexOutOfBounds happens -->
<property name="id" value="Javadoc.javadocNoAuthor"/>
<property name="format" value="^\s*\*\s*@author"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Javadoc has illegal ''author'' tag."/>
<property name="fileExtensions" value="java"/>
</module>
<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>
<module name="FileLength"/>
<module name="SuppressWarningsFilter"/>
<module name="TreeWalker">
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
<module name="SuppressWarningsHolder"/>
<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod">
<property name="accessModifiers" value="protected"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="allowMissingParamTags" value="true"/>
</module>
<module name="JavadocType">
<property name="scope" value="protected"/>
</module>
<module name="JavadocVariable">
<property name="scope" value="protected"/>
</module>
<module name="JavadocStyle"/>
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="UnusedImports"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="ImportOrder">
<property name="groups" value="java, javax, jakarta, org.eclipse.yasson"/>
<property name="ordered" value="true"/>
<property name="separated" value="true"/>
<property name="option" value="bottom"/>
</module>
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>
<module name="NeedBraces">
<property name="allowSingleLineStatement" value="true"/>
</module>
<module name="LeftCurly"/>
<module name="RightCurly"/>
<module name="RightCurly">
<property name="option" value="alone"/>
<property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/>
</module>
<!-- Indentation -->
<property name="tabWidth" value="4"/>
<!-- Wrapping Lines -->
<module name="NoLineWrap"/>
<module name="SeparatorWrap">
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<!-- Several variable declaration on one line: int i, p; -->
<module name="MultipleVariableDeclarations"/>
<module name="OuterTypeFilename"/>
<module name="OneTopLevelClass"/>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="OperatorWrap"/>
<module name="WhitespaceAfter"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<!-- Removed static initializer issues: RCURLY, SLIST -->
<property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV,
DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO,
LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH,
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,
TYPE_EXTENSION_AND"/>
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MissingSwitchDefault"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier">
<property name="packageAllowed" value="true"/>
</module>
<module name="ThrowsCount">
<property name="max" value="3"/>
</module>
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<module name="TodoComment"/>
<module name="UpperEll"/>
<module name="OneStatementPerLine"/>
<!-- <module name="FallThrough"/>-->
<module name="NoFinalizer"/>
</module>
</module>
================================================
FILE: etc/copyright-exclude.txt
================================================
.iml
.apt
.args
.bundle
.class
.ddl
.exe
.gif
.gitignore
.ico
.jar
.jks
.jpg
.json
.mm
.ods
.png
.svg
.war
.zip
.dat
.md
.p12
.txt
.mf
.pem
.p8
.pkcs8.pem
.p12
.bin
.vm
.policy
================================================
FILE: etc/copyright.sh
================================================
#!/bin/bash -x
#
# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#
die(){ echo "${1}" ; exit 1 ;}
readonly RESULT_FILE="target/copyright-check.txt"
mkdir target
mvn -q validate -Pcopyright \
> ${RESULT_FILE} || (cat ${RESULT_FILE}; die "Error running the Maven command")
grep -i "copyright" ${RESULT_FILE} \
&& die "COPYRIGHT ERROR" || echo "COPYRIGHT OK"
================================================
FILE: etc/copyright.txt
================================================
/*
* Copyright (c) YYYY Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
================================================
FILE: etc/delivery-checks.sh
================================================
#!/bin/bash
#
# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#
mvn checkstyle:checkstyle && \
etc/copyright.sh && \
echo "Completed normally"
================================================
FILE: pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2016, 2026 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.eclipse.ee4j</groupId>
<artifactId>project</artifactId>
<version>2.0.2</version>
</parent>
<groupId>org.eclipse</groupId>
<artifactId>yasson</artifactId>
<version>3.0.5-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Yasson</name>
<description>Eclipse Yasson. Reference implementation of JSR-367 (JSON-B).</description>
<url>https://projects.eclipse.org/projects/ee4j.yasson</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>11</maven.compiler.release>
<maven.compiler.testRelease>${maven.compiler.release}</maven.compiler.testRelease>
<nexus.staging.repository>yasson-maven2-staging</nexus.staging.repository>
<!--Dependencies-->
<hamcrest.version>2.2</hamcrest.version>
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
<jakarta.el-api.version>6.0.0</jakarta.el-api.version>
<jakarta.enterprise.cdi-api.version>4.1.0</jakarta.enterprise.cdi-api.version>
<jakarta.interceptor-api.version>2.2.0</jakarta.interceptor-api.version>
<jakarta.json.bind.version>3.0.1</jakarta.json.bind.version>
<jakarta.json.version>2.1.3</jakarta.json.version>
<jakarta.parson.version>1.1.7</jakarta.parson.version>
<junit-jupiter.version>5.10.2</junit-jupiter.version>
<weld-se-core.version>6.0.0.Beta1</weld-se-core.version>
<!--Plugins-->
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
<buildnumber-maven-plugin.version>3.2.0</buildnumber-maven-plugin.version>
<spotbugs-maven-plugin.version>4.8.5.0</spotbugs-maven-plugin.version>
<glassfish-copyright-maven-plugin.version>2.4</glassfish-copyright-maven-plugin.version>
<maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version>
<maven-checkstyle-plugin.version>3.3.1</maven-checkstyle-plugin.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-enforcer-plugin.version>3.4.1</maven-enforcer-plugin.version>
<maven-jar-plugin.version>3.4.1</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<version>${jakarta.enterprise.cdi-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>${jakarta.el-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.interceptor</groupId>
<artifactId>jakarta.interceptor-api</artifactId>
<version>${jakarta.interceptor-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta.annotation-api.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Compile dependencies -->
<dependency>
<groupId>jakarta.json.bind</groupId>
<artifactId>jakarta.json.bind-api</artifactId>
<version>${jakarta.json.bind.version}</version>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>${jakarta.json.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
<version>${jakarta.parson.version}</version>
</dependency>
<!-- Test/Provided dependencies -->
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>${weld-se-core.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<organization>
<name>Oracle Corporation</name>
<url>http://www.oracle.com/</url>
</organization>
<issueManagement>
<system>github</system>
<url>https://github.com/eclipse-ee4j/yasson/issues</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>Yasson mailing list</name>
<post>yasson-dev@eclipse.org</post>
<subscribe>https://dev.eclipse.org/mailman/listinfo/yasson-dev</subscribe>
<unsubscribe>https://dev.eclipse.org/mailman/listinfo/yasson-dev</unsubscribe>
<archive>https://dev.eclipse.org/mhonarc/lists/yasson-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Eclipse Public License v. 2.0</name>
<url>http://www.eclipse.org/legal/epl-v20.html</url>
<distribution>repo</distribution>
<comments>Standard Eclipse License</comments>
</license>
<license>
<name>Eclipse Distribution License v. 1.0</name>
<url>http://www.eclipse.org/org/documents/edl-v10.php</url>
<distribution>repo</distribution>
<comments>Standard Eclipse Distribution License</comments>
</license>
</licenses>
<scm>
<connection>scm:git:ssh://git@github.com/eclipse-ee4j/yasson.git</connection>
<developerConnection>scm:git:ssh://git@github.com/eclipse-ee4j/yasson.git</developerConnection>
<url>https://github.com/eclipse-ee4j/yasson.git</url>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<email>dmitry.kornilov@oracle.com</email>
<id>maiden168</id>
<name>Dmitry Kornilov</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Spec Lead</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>roman.grigoriadi@oracle.com</email>
<id>roman.grigoriadi</id>
<name>Roman Grigoriadi</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>david.k.kral@oracle.com</email>
<id>david.kral</id>
<name>David Kral</name>
<organization>Oracle</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CET</timezone>
</developer>
<developer>
<email>andy.guibert@gmail.com</email>
<id>aguibert</id>
<name>Andy Guibert</name>
<organization>IBM</organization>
<roles>
<role>JSON Binding 1.0 Developer</role>
</roles>
<timezone>CST</timezone>
</developer>
</developers>
<profiles>
<profile>
<id>checkstyle</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>run-checkstyle</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spotbugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<threshold>Low</threshold>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>copyright</id>
<build>
<plugins>
<plugin>
<groupId>org.glassfish.copyright</groupId>
<artifactId>glassfish-copyright-maven-plugin</artifactId>
<configuration>
<!-- Ignore the year to comply with Eclipse Foundation. -->
<ignoreYear>true</ignoreYear>
</configuration>
<executions>
<!--Copyright goal does not fail when copyright is not properly updated,
but prints out which file has incorrect copyright.-->
<execution>
<id>print-copyright</id>
<goals>
<goal>copyright</goal>
</goals>
<phase>validate</phase>
</execution>
<!--Check goal does not print out incorrect copyright files, but fails when there are errors.-->
<execution>
<id>check-copyright</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk16</id>
<activation>
<jdk>[16,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<release>16</release>
<testRelease>16</testRelease>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/test/java</compileSourceRoot>
<compileSourceRoot>${project.basedir}/src/test/java16</compileSourceRoot>
</compileSourceRoots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/RecordTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<!-- defaults for compile and testCompile -->
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>11</release>
<source>11</source>
<target>11</target>
</configuration>
</execution>
<execution>
<id>default-testCompile</id>
<configuration>
<release>11</release>
</configuration>
</execution>
<execution>
<id>multi-release-compile-16</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>16</release>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/java16</compileSourceRoot>
</compileSourceRoots>
<multiReleaseOutput>true</multiReleaseOutput>
</configuration>
</execution>
</executions>
<configuration>
<compilerArgs>
<arg>-Xlint:all</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
<manifestEntries>
<Multi-Release>true</Multi-Release>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<!-- This plugin generates the buildNumber property used in maven-bundle-plugin -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>${buildnumber-maven-plugin.version}</version>
<configuration>
<format>{0,date,MM/dd/yyyy hh:mm aa}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<bottom><![CDATA[Copyright © 2017, 2024 Oracle Corporation. All rights reserved.<br>]]></bottom>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${maven-bundle-plugin.version}</version>
<executions>
<execution>
<id>osgi-bundle</id>
<phase>prepare-package</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<niceManifest>true</niceManifest>
<instructions>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>org.eclipse.yasson;version=${project.version}</Export-Package>
<Private-Package>org.eclipse.yasson.*;version=${project.version}</Private-Package>
<Multi-Release>true</Multi-Release>
<Import-Package>
jakarta.enterprise.context.spi;version=!;resolution:="optional",
jakarta.enterprise.inject.spi;version=!;resolution:="optional",
javax.naming;resolution:="optional",
java.beans;resolution:="optional",
*
</Import-Package>
<Require-Capability>osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=11))"</Require-Capability>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<!-- <testFailureIgnore>true</testFailureIgnore>-->
<trimStackTrace>false</trimStackTrace>
<excludes>
<exclude>**/JavaxNamingExcludedTest.java</exclude>
<exclude>**/AnnotationIntrospectorWithoutOptionalModulesTest.java</exclude>
<exclude>**/*Record*</exclude>
</excludes>
<argLine>
<!--Remove when CDI is updated to support modules
(Yasson does read CDI which is on CP, CDI access yasson's classes with reflection)
-->
--add-reads org.eclipse.yasson=ALL-UNNAMED --add-opens org.eclipse.yasson/org.eclipse.yasson.internal.cdi=ALL-UNNAMED
--add-exports org.eclipse.yasson/org.eclipse.yasson.internal.cdi=java.naming
</argLine>
</configuration>
</execution>
<execution>
<id>optional-modules-excluded</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<argLine>
<!--java.management is required by Maven's ForkedBooter-->
--limit-modules java.base,java.logging,java.sql,jakarta.json.bind,jakarta.json,java.management,jdk.localedata,org.eclipse.parsson,org.eclipse.yasson
</argLine>
<includes>
<include>**/JavaxNamingExcludedTest.class</include>
<include>**/AnnotationIntrospectorWithoutOptionalModulesTest.class</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<requireJavaVersion>
<version>[11,)</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.6.0,)</version>
</requireMavenVersion>
<DependencyConvergence/>
</rules>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>LICENSE.md</include>
<include>NOTICE.md</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>etc/checkstyle.xml</configLocation>
<suppressionsLocation>etc/checkstyle-suppressions.xml</suppressionsLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
</plugin>
<plugin>
<groupId>org.glassfish.copyright</groupId>
<artifactId>glassfish-copyright-maven-plugin</artifactId>
<version>${glassfish-copyright-maven-plugin.version}</version>
<configuration>
<templateFile>etc/copyright.txt</templateFile>
<excludeFile>etc/copyright-exclude.txt</excludeFile>
<scm>git</scm>
<debug>false</debug>
<scmOnly>true</scmOnly>
<warn>true</warn>
<ignoreYear>false</ignoreYear>
<preserveCopyrights>true</preserveCopyrights>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: src/main/java/module-info.java
================================================
/*
* Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
/**
* Yasson, the implementation of the Jakarta JSON Binding.
*/
module org.eclipse.yasson {
requires jakarta.json;
requires jakarta.json.bind;
requires java.logging;
requires static java.xml;
requires static java.naming;
requires static java.sql;
requires static java.desktop;
requires static jakarta.cdi;
exports org.eclipse.yasson;
exports org.eclipse.yasson.spi;
provides jakarta.json.bind.spi.JsonbProvider with org.eclipse.yasson.JsonBindingProvider;
uses org.eclipse.yasson.spi.JsonbComponentInstanceCreator;
}
================================================
FILE: src/main/java/org/eclipse/yasson/FieldAccessStrategy.java
================================================
/*
* Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import jakarta.json.bind.config.PropertyVisibilityStrategy;
/**
* <p>Strategy that can be used to force always using fields instead of getters setters for getting / setting value.</p>
* <p>Suggested approach is to use default visibility strategy, which will use public getters / setters, or field
* if it is public.</p>
*
* <p>Please consider, that forcing accessing fields will in most cases (when field is not public)
* result in calling {@link Field#setAccessible(boolean)} to break into clients code.
* This may cause problems if client code is loaded as JPMS (Java Platform Module System) module, as OSGi module or
* when SecurityManager is turned on.</p>
*/
public class FieldAccessStrategy implements PropertyVisibilityStrategy {
@Override
public boolean isVisible(Field field) {
return true;
}
@Override
public boolean isVisible(Method method) {
return false;
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/ImplementationClass.java
================================================
/*
* Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Marks an interface with implementation class, which should be used for deserialiation.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface ImplementationClass {
/**
* Class, which will be used as implementation for annotated member.
*
* @return Serializaer to use.
*/
Class<?> value();
}
================================================
FILE: src/main/java/org/eclipse/yasson/JsonBindingProvider.java
================================================
/*
* Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
import jakarta.json.bind.JsonbBuilder;
import jakarta.json.bind.spi.JsonbProvider;
import org.eclipse.yasson.internal.JsonBindingBuilder;
/**
* JsonbProvider implementation.
*/
public class JsonBindingProvider extends JsonbProvider {
@Override
public JsonbBuilder create() {
return new JsonBindingBuilder();
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/YassonConfig.java
================================================
/*
* Copyright (c) 2019, 2022 IBM and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
import java.util.Map;
import jakarta.json.bind.JsonbConfig;
import jakarta.json.bind.serializer.JsonbSerializer;
/**
* Custom properties for configuring Yasson outside of the specification {@link jakarta.json.bind.JsonbConfig} scope.
*/
public class YassonConfig extends JsonbConfig {
/**
* @see #withFailOnUnknownProperties(boolean)
*/
public static final String FAIL_ON_UNKNOWN_PROPERTIES = "jsonb.fail-on-unknown-properties";
/**
* @see #withUserTypeMapping(java.util.Map)
*/
public static final String USER_TYPE_MAPPING = "jsonb.user-type-mapping";
/**
* @see #withZeroTimeParseDefaulting(boolean)
*/
public static final String ZERO_TIME_PARSE_DEFAULTING = "jsonb.zero-time-defaulting";
/**
* @see #withNullRootSerializer(jakarta.json.bind.serializer.JsonbSerializer)
*/
public static final String NULL_ROOT_SERIALIZER = "yasson.null-root-serializer";
/**
* @see #withEagerParsing(Class...)
*/
public static final String EAGER_PARSE_CLASSES = "yasson.eager-parse-classes";
/**
* @see #withForceMapArraySerializerForNullKeys(boolean)
*/
public static final String FORCE_MAP_ARRAY_SERIALIZER_FOR_NULL_KEYS = "yasson.force-map-array-serializer-for-null-keys";
/**
* @see #withTimeInMillisAsAString(boolean)
*/
public static final String DATE_TIME_IN_MILLIS_AS_A_STRING = "yasson.time-in-millis-as-a-string";
/**
* Property used to specify behaviour on deserialization when JSON document contains properties
* which doesn't exist in the target class. Default value is 'false'.
* @param failOnUnknownProperties Whether or not to fail if unknown properties are encountered
* @return This YassonConfig instance
*/
public YassonConfig withFailOnUnknownProperties(boolean failOnUnknownProperties) {
setProperty(FAIL_ON_UNKNOWN_PROPERTIES, failOnUnknownProperties);
return this;
}
/**
* User type mapping for map interface to implementation classes.
* @param mapping A map of interface to implementation class mappings
* @return This YassonConfig instance
*/
public YassonConfig withUserTypeMapping(Map<Class<?>, Class<?>> mapping) {
setProperty(USER_TYPE_MAPPING, mapping);
return this;
}
/**
* <p>Makes parsing dates defaulting to zero hour, minute and second.
* This will made available to parse patterns like yyyy.MM.dd to
* {@link java.util.Date}, {@link java.util.Calendar}, {@link java.time.Instant} {@link java.time.LocalDate}
* or even {@link java.time.ZonedDateTime}.
* <p>If time zone is not set in the pattern then UTC time zone is used.
* So for example json value 2018.01.01 becomes 2018.01.01 00:00:00 UTC when parsed
* to instant {@link java.time.Instant} or {@link java.time.ZonedDateTime}.
* @param defaultZeroHour Whether or not to default parsing dates to the zero hour
* @return This YassonConfig instance
*/
public YassonConfig withZeroTimeParseDefaulting(boolean defaultZeroHour) {
setProperty(ZERO_TIME_PARSE_DEFAULTING, defaultZeroHour);
return this;
}
/**
* Serializer to use when object provided to {@link jakarta.json.bind.Jsonb#toJson(Object)} is {@code null} or an empty
* Optional. Must be instance of {@link jakarta.json.bind.serializer.JsonbSerializer}{@code <Object>}. Its obj value
* will be respective parameter.
* @param nullSerializer JsonbSerializer instance to use for serializing null root values
* @return This YassonConfig instance
*/
public YassonConfig withNullRootSerializer(JsonbSerializer<?> nullSerializer) {
setProperty(NULL_ROOT_SERIALIZER, nullSerializer);
return this;
}
/**
* @param classes A list of classes to eagerly parse upon creation of the Jsonb instance used with this configuration.
* @return This YassonConfig instance
*/
public YassonConfig withEagerParsing(Class<?>... classes) {
setProperty(EAGER_PARSE_CLASSES, classes);
return this;
}
/**
* Property needed to make MapToEntriesArraySerializer the serializer used
* when a null key is found in the map. Default value is false.
* @param value true to force the use of the MapToEntriesArraySerializer if
* a null key is detected in the map, false to work as before
* @return This YassonConfig instance
*/
public YassonConfig withForceMapArraySerializerForNullKeys(boolean value) {
setProperty(FORCE_MAP_ARRAY_SERIALIZER_FOR_NULL_KEYS, value);
return this;
}
/**
* It is required to handle time millisecond format as a number. See
* {@link jakarta.json.bind.annotation.JsonbDateFormat#TIME_IN_MILLIS}. It is possible to override this and force
* Yasson to handle it as a String, by using this method.
*
* @param value whether to treat dates formatted by {@link jakarta.json.bind.annotation.JsonbDateFormat#TIME_IN_MILLIS}
* as a String. Default value is {@code false}.
* @return This YassonConfig instance
* @since 3.0.0
*/
public YassonConfig withTimeInMillisAsAString(boolean value) {
setProperty(DATE_TIME_IN_MILLIS_AS_A_STRING, value);
return this;
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/YassonJsonb.java
================================================
/*
* Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
import java.lang.reflect.Type;
import jakarta.json.JsonStructure;
import jakarta.json.bind.JsonbException;
import jakarta.json.stream.JsonGenerator;
import jakarta.json.stream.JsonParser;
/**
* Adds methods to Jsonb that are operating directly with {@link JsonGenerator} or {@link JsonParser} types.
* <p>
* {@link jakarta.json.spi.JsonProvider} operates on top of the
* {@link java.io.InputStream} / {@link java.io.OutputStream} or {@link java.io.Reader} / {@link java.io.Writer}
* and creates generator / parser instances during runtime.
* </p>
* <p>
* This interface accepts instantiated generators and parsers with different input / output sources.
* </p>
*/
public interface YassonJsonb extends jakarta.json.bind.Jsonb {
/**
* Reads in a JSON data with a specified {@link JsonParser} and return the
* resulting content tree. Provided json parser must be fully initialized,
* no further configurations will be applied.
*
* @param jsonParser The json parser instance to be used to read JSON data.
* @param type Type of the content tree's root object.
* @param <T> Type of the content tree's root object.
* @return the newly created root object of the java content tree
* @throws JsonbException If any unexpected error(s) occur(s) during deserialization.
*/
<T> T fromJson(JsonParser jsonParser, Class<T> type) throws JsonbException;
/**
* Reads in a JSON data with a specified {@link JsonParser} and return the
* resulting content tree. Provided json parser must be fully initialized,
* no further configurations will be applied.
*
* @param jsonParser The json parser instance to be used to read JSON data.
* @param runtimeType Runtime type of the content tree's root object.
* @param <T> Type of the content tree's root object.
* @return the newly created root object of the java content tree
* @throws JsonbException If any unexpected error(s) occur(s) during deserialization.
*/
<T> T fromJson(JsonParser jsonParser, Type runtimeType) throws JsonbException;
/**
* Reads a {@link JsonStructure} and and converts it into
* resulting java content tree.
*
* @param jsonStructure {@link JsonStructure} to be used as a source for conversion.
* @param type Type of the content tree's root object.
* @param <T> Type of the content tree's root object.
* @return the newly created root object of the java content tree
* @throws JsonbException If any unexpected error(s) occur(s) during conversion.
*/
<T> T fromJsonStructure(JsonStructure jsonStructure, Class<T> type) throws JsonbException;
/**
* Reads a {@link JsonStructure} and and converts it into
* resulting java content tree.
*
* @param jsonStructure {@link JsonStructure} to be used as a source for conversion.
* @param runtimeType Runtime type of the content tree's root object.
* @param <T> Type of the content tree's root object.
* @return the newly created root object of the java content tree
* @throws JsonbException If any unexpected error(s) occur(s) during deserialization.
*/
<T> T fromJsonStructure(JsonStructure jsonStructure, Type runtimeType) throws JsonbException;
/**
* Writes the object content tree with a specified {@link JsonGenerator}.
* Provided json generator must be fully initialized, no further configurations are applied.
*
* @param object The object content tree to be serialized.
* @param jsonGenerator The json generator to write JSON data. The generator is not closed
* on a completion for further interaction.
* @throws JsonbException If any unexpected problem occurs during the
* serialization.
* @since JSON Binding 1.0
*/
void toJson(Object object, JsonGenerator jsonGenerator) throws JsonbException;
/**
* Writes the object content tree with a specified {@link JsonGenerator}.
* Provided json generator must be fully initialized, no further configurations are applied.
*
* @param object The object content tree to be serialized.
* @param runtimeType Runtime type of the content tree's root object.
* @param jsonGenerator The json generator to write JSON data. The generator is not closed
* on a completion for further interaction.
* @throws JsonbException If any unexpected problem occurs during the
* serialization.
* @since JSON Binding 1.0
*/
void toJson(Object object, Type runtimeType, JsonGenerator jsonGenerator) throws JsonbException;
/**
* Serializes the object content tree to a {@link jakarta.json.JsonStructure}.
*
* @param object The object content tree to be serialized.
* @return The {@link JsonStructure} serialized from java content tree.
* @throws JsonbException If any unexpected problem occurs during the
* serialization.
* @since JSON Binding 1.0
*/
JsonStructure toJsonStructure(Object object) throws JsonbException;
/**
* Serializes the object content tree to a {@link jakarta.json.JsonStructure}.
*
* @param object The object content tree to be serialized.
* @param runtimeType Runtime type of the content tree's root object.
* @return The {@link JsonStructure} serialized from java content tree.
* @throws JsonbException If any unexpected problem occurs during the
* serialization.
* @since JSON Binding 1.0
*/
JsonStructure toJsonStructure(Object object, Type runtimeType) throws JsonbException;
}
================================================
FILE: src/main/java/org/eclipse/yasson/YassonProperties.java
================================================
/*
* Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019, 2020 Payara Foundation and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson;
/**
* @deprecated Use {@link YassonConfig} instead
*/
@Deprecated
public class YassonProperties {
private YassonProperties() {
throw new IllegalStateException("Util classes cannot be instantiated.");
}
/**
* @deprecated
* @see YassonConfig#withFailOnUnknownProperties(boolean)
*/
public static final String FAIL_ON_UNKNOWN_PROPERTIES = YassonConfig.FAIL_ON_UNKNOWN_PROPERTIES;
/**
* @deprecated
* @see YassonConfig#withUserTypeMapping(java.util.Map)
*/
public static final String USER_TYPE_MAPPING = YassonConfig.USER_TYPE_MAPPING;
/**
* @deprecated
* @see YassonConfig#withZeroTimeParseDefaulting(boolean)
*/
public static final String ZERO_TIME_PARSE_DEFAULTING = YassonConfig.ZERO_TIME_PARSE_DEFAULTING;
/**
* @deprecated
* @see YassonConfig#withNullRootSerializer(jakarta.json.bind.serializer.JsonbSerializer)
*/
public static final String NULL_ROOT_SERIALIZER = YassonConfig.NULL_ROOT_SERIALIZER;
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/AnnotationFinder.java
================================================
/*
* Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
/**
* Finds an annotation including inherited annotations (e.g. meta-annotations).
*/
class AnnotationFinder {
private static final String CONSTRUCTOR_PROPERTIES_ANNOTATION = "java.beans.ConstructorProperties";
private static final Logger LOGGER = Logger.getLogger(AnnotationFinder.class.getName());
private final String annotationClassName;
private final Class<? extends Annotation> annotationClass; // may be null
/**
* Gets the {@link AnnotationFinder} for the given Annotation-Type.
*
* @param annotation {@link Class}, that is a sub-type of {@link Annotation}
* @return {@link AnnotationFinder}
*/
public static AnnotationFinder findAnnotation(Class<?> annotation) {
return findAnnotationByName(annotation.getName());
}
/**
* Gets the {@link AnnotationFinder} for the given Annotation-Type Name.
*
* @param annotationClassName {@link String}, that is a sub-type of {@link Annotation}
* @return {@link AnnotationFinder}
*/
public static AnnotationFinder findAnnotationByName(String annotationClassName) {
return new AnnotationFinder(annotationClassName, getOptionalAnnotationClass(annotationClassName));
}
/**
* Gets the {@link AnnotationFinder} for @ConstructorProperties-Annotation.
*
* @return {@link AnnotationFinder}
*/
public static AnnotationFinder findConstructorProperties() {
return findAnnotationByName(CONSTRUCTOR_PROPERTIES_ANNOTATION);
}
private AnnotationFinder(String annotationClassName, Class<? extends Annotation> annotationClass) {
this.annotationClassName = annotationClassName;
this.annotationClass = annotationClass;
}
@SuppressWarnings("unchecked")
public <T extends Annotation> T in(Annotation[] annotations) {
if (annotationClass == null) {
return null;
}
return (T) findAnnotation(annotations, annotationClass, new HashSet<>());
}
/**
* Looks for the annotation {@link #in(Annotation[])} <br>
* and executes the "value" Method of it dynamically.
*
* @param annotations - Array of {@link Annotation}n.
* @return {@link Object}
*/
public Object valueIn(Annotation[] annotations) {
return invocateValueMethod(in(annotations));
}
private Object invocateValueMethod(Annotation annotation) {
if (annotation == null) {
return null;
}
try {
return annotation.annotationType().getMethod("value").invoke(annotation);
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
String message = Messages
.getMessage(MessageKeys.MISSING_VALUE_PROPERTY_IN_ANNOTATION, annotation.annotationType().getName());
LOGGER.finest(message);
return null;
}
}
@SuppressWarnings("unchecked")
private static <T extends Annotation> Class<T> getOptionalAnnotationClass(String classname) {
try {
return (Class<T>) Class.forName(classname);
} catch (ClassNotFoundException e) {
String message = Messages.getMessage(MessageKeys.ANNOTATION_NOT_AVAILABLE, classname);
LOGGER.finest(message);
return null;
}
}
/**
* Searches for annotation, collects processed, to avoid StackOverflow.
*/
// "static" to use it in a hybrid procedural and object oriented manner.
@SuppressWarnings("unchecked")
public static <T extends Annotation> T findAnnotation(Annotation[] declaredAnnotations,
Class<T> annotationClass,
Set<Annotation> processed) {
for (Annotation candidate : declaredAnnotations) {
final Class<? extends Annotation> annType = candidate.annotationType();
if (annType.equals(annotationClass)) {
return (T) candidate;
}
processed.add(candidate);
final List<Annotation> inheritedAnnotations = new ArrayList<>(Arrays.asList(annType.getDeclaredAnnotations()));
inheritedAnnotations.removeAll(processed);
if (inheritedAnnotations.size() > 0) {
final T inherited = findAnnotation(inheritedAnnotations.toArray(new Annotation[inheritedAnnotations.size()]),
annotationClass,
processed);
if (inherited != null) {
return inherited;
}
}
}
return null;
}
@Override
public String toString() {
return "AnnotationFinder [annotationClassName=" + annotationClassName + ", annotationClass=" + annotationClass + "]";
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/AnnotationIntrospector.java
================================================
/*
* Copyright (c) 2016, 2023 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Executable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalAccessor;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.OptionalLong;
import java.util.Queue;
import java.util.Set;
import jakarta.json.bind.JsonbException;
import jakarta.json.bind.adapter.JsonbAdapter;
import jakarta.json.bind.annotation.JsonbDateFormat;
import jakarta.json.bind.annotation.JsonbNillable;
import jakarta.json.bind.annotation.JsonbNumberFormat;
import jakarta.json.bind.annotation.JsonbProperty;
import jakarta.json.bind.annotation.JsonbPropertyOrder;
import jakarta.json.bind.annotation.JsonbSubtype;
import jakarta.json.bind.annotation.JsonbTransient;
import jakarta.json.bind.annotation.JsonbTypeAdapter;
import jakarta.json.bind.annotation.JsonbTypeDeserializer;
import jakarta.json.bind.annotation.JsonbTypeInfo;
import jakarta.json.bind.annotation.JsonbTypeSerializer;
import jakarta.json.bind.annotation.JsonbVisibility;
import jakarta.json.bind.config.PropertyNamingStrategy;
import jakarta.json.bind.config.PropertyVisibilityStrategy;
import jakarta.json.bind.serializer.JsonbDeserializer;
import jakarta.json.bind.serializer.JsonbSerializer;
import org.eclipse.yasson.ImplementationClass;
import org.eclipse.yasson.internal.components.AdapterBinding;
import org.eclipse.yasson.internal.components.DeserializerBinding;
import org.eclipse.yasson.internal.components.SerializerBinding;
import org.eclipse.yasson.internal.model.AnnotationTarget;
import org.eclipse.yasson.internal.model.CreatorModel;
import org.eclipse.yasson.internal.model.JsonbAnnotatedElement;
import org.eclipse.yasson.internal.model.JsonbAnnotatedElement.AnnotationWrapper;
import org.eclipse.yasson.internal.model.JsonbCreator;
import org.eclipse.yasson.internal.model.Property;
import org.eclipse.yasson.internal.model.customization.ClassCustomization;
import org.eclipse.yasson.internal.model.customization.TypeInheritanceConfiguration;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
/**
* Introspects configuration on classes and their properties by reading annotations.
*/
public class AnnotationIntrospector {
// private static final Set<Class<?>> OPTIONALS = Set.of(Optional.class,
// OptionalInt.class,
// OptionalLong.class,
// OptionalDouble.class);
private final JsonbContext jsonbContext;
private final ConstructorPropertiesAnnotationIntrospector constructorPropertiesIntrospector;
private static final Set<Class<? extends Annotation>> REPEATABLE = Set.of(JsonbTypeInfo.class);
/**
* Annotations to report exception when used in combination with {@link JsonbTransient}.
*/
private static final List<Class<? extends Annotation>> TRANSIENT_INCOMPATIBLE =
Arrays.asList(JsonbDateFormat.class, JsonbNumberFormat.class, JsonbProperty.class,
JsonbTypeAdapter.class, JsonbTypeSerializer.class, JsonbTypeDeserializer.class);
/**
* Creates annotation introspecting component passing {@link JsonbContext} inside.
*
* @param jsonbContext mandatory
*/
public AnnotationIntrospector(JsonbContext jsonbContext) {
Objects.requireNonNull(jsonbContext);
this.jsonbContext = jsonbContext;
this.constructorPropertiesIntrospector = ConstructorPropertiesAnnotationIntrospector.forContext(jsonbContext);
}
/**
* Gets a name of property for JSON marshalling.
* Can be different writeName for same property.
*
* @param property property representation - field, getter, setter (not null)
* @return read name
*/
public String getJsonbPropertyJsonWriteName(Property property) {
Objects.requireNonNull(property);
return getJsonbPropertyCustomizedName(property, property.getGetterElement());
}
/**
* Gets a name of property for JSON unmarshalling.
* Can be different from writeName for same property.
*
* @param property property representation - field, getter, setter (not null)
* @return write name
*/
public String getJsonbPropertyJsonReadName(Property property) {
Objects.requireNonNull(property);
return getJsonbPropertyCustomizedName(property, property.getSetterElement());
}
private String getJsonbPropertyCustomizedName(Property property, JsonbAnnotatedElement<Method> methodElement) {
JsonbProperty methodAnnotation = getMethodAnnotation(JsonbProperty.class, methodElement);
if (methodAnnotation != null && !methodAnnotation.value().isEmpty()) {
return methodAnnotation.value();
}
//in case of property name getter/setter override field value
JsonbProperty fieldAnnotation = getFieldAnnotation(JsonbProperty.class, property.getFieldElement());
if (fieldAnnotation != null && !fieldAnnotation.value().isEmpty()) {
return fieldAnnotation.value();
}
return null;
}
/**
* Searches for JsonbCreator annotation on constructors and static methods.
*
* @param clazz class to search
* @param propertyNamingStrategy The naming strategy to use for the ${@code JsonbConstructor} annotation,
* if set and no {@code JsonbProperty} annotations are present.
* @return JsonbCreator metadata object
*/
public JsonbCreator getCreator(Class<?> clazz, PropertyNamingStrategy propertyNamingStrategy) {
JsonbCreator jsonbCreator = null;
Constructor<?>[] declaredConstructors =
AccessController.doPrivileged((PrivilegedAction<Constructor<?>[]>) clazz::getDeclaredConstructors);
for (Constructor<?> constructor : declaredConstructors) {
final jakarta.json.bind.annotation.JsonbCreator annot = findAnnotation(constructor.getDeclaredAnnotations(),
jakarta.json.bind.annotation.JsonbCreator.class);
if (annot != null) {
jsonbCreator = createJsonbCreator(constructor, jsonbCreator, clazz, propertyNamingStrategy);
}
}
Method[] declaredMethods =
AccessController.doPrivileged((PrivilegedAction<Method[]>) clazz::getDeclaredMethods);
for (Method method : declaredMethods) {
final jakarta.json.bind.annotation.JsonbCreator annot = findAnnotation(method.getDeclaredAnnotations(),
jakarta.json.bind.annotation.JsonbCreator.class);
if (annot != null && Modifier.isStatic(method.getModifiers())) {
if (!clazz.equals(method.getReturnType())) {
throw new JsonbException(Messages.getMessage(MessageKeys.INCOMPATIBLE_FACTORY_CREATOR_RETURN_TYPE,
method,
clazz));
}
jsonbCreator = createJsonbCreator(method, jsonbCreator, clazz, propertyNamingStrategy);
}
}
if (jsonbCreator == null) {
jsonbCreator = ClassMultiReleaseExtension.findCreator(clazz, declaredConstructors, this, propertyNamingStrategy);
if (jsonbCreator == null) {
jsonbCreator = constructorPropertiesIntrospector.getCreator(declaredConstructors);
}
}
return jsonbCreator;
}
JsonbCreator createJsonbCreator(Executable executable, JsonbCreator existing, Class<?> clazz, PropertyNamingStrategy propertyNamingStrategy) {
if (existing != null) {
throw new JsonbException(Messages.getMessage(MessageKeys.MULTIPLE_JSONB_CREATORS, clazz));
}
final Parameter[] parameters = executable.getParameters();
CreatorModel[] creatorModels = new CreatorModel[parameters.length];
for (int i = 0; i < parameters.length; i++) {
final Parameter parameter = parameters[i];
final JsonbProperty jsonbPropertyAnnotation = parameter.getAnnotation(JsonbProperty.class);
if (jsonbPropertyAnnotation != null && !jsonbPropertyAnnotation.value().isEmpty()) {
creatorModels[i] = new CreatorModel(jsonbPropertyAnnotation.value(), parameter, executable, jsonbContext);
} else {
final String translatedParameterName = propertyNamingStrategy.translateName(parameter.getName());
creatorModels[i] = new CreatorModel(translatedParameterName, parameter, executable, jsonbContext);
}
}
return new JsonbCreator(executable, creatorModels);
}
/**
* Checks for {@link JsonbAdapter} on a property.
*
* @param property property not null
* @return components info
*/
public AdapterBinding getAdapterBinding(Property property) {
Objects.requireNonNull(property);
JsonbTypeAdapter adapterAnnotation = getAnnotationFromProperty(JsonbTypeAdapter.class, property)
.orElseGet(() -> getAnnotationFromPropertyType(property, JsonbTypeAdapter.class));
if (adapterAnnotation == null) {
return null;
}
return getAdapterBindingFromAnnotation(adapterAnnotation, ReflectionUtils.getOptionalRawType(property.getPropertyType()));
}
/**
* Checks for {@link JsonbAdapter} on a type.
*
* @param clsElement type not null
* @return components info
*/
public AdapterBinding getAdapterBinding(JsonbAnnotatedElement<Class<?>> clsElement) {
Objects.requireNonNull(clsElement);
JsonbTypeAdapter adapterAnnotation = clsElement.getElement().getAnnotation(JsonbTypeAdapter.class);
if (adapterAnnotation == null) {
return null;
}
return getAdapterBindingFromAnnotation(adapterAnnotation, Optional.ofNullable(clsElement.getElement()));
}
private AdapterBinding getAdapterBindingFromAnnotation(JsonbTypeAdapter adapterAnnotation, Optional<Class<?>> expectedClass) {
final Class<? extends JsonbAdapter> adapterClass = adapterAnnotation.value();
final AdapterBinding adapterBinding = jsonbContext.getComponentMatcher().introspectAdapterBinding(adapterClass, null);
if (expectedClass.isPresent() && !(
ReflectionUtils.getRawType(adapterBinding.getBindingType()).isAssignableFrom(expectedClass.get()))) {
throw new JsonbException(Messages.getMessage(MessageKeys.ADAPTER_INCOMPATIBLE,
adapterBinding.getBindingType(),
expectedClass.get()));
}
return adapterBinding;
}
/**
* Checks for {@link JsonbDeserializer} on a property.
*
* @param property property not null
* @return components info
*/
public DeserializerBinding getDeserializerBinding(Property property) {
Objects.requireNonNull(property);
JsonbTypeDeserializer deserializerAnnotation = getAnnotationFromProperty(JsonbTypeDeserializer.class, property)
.orElseGet(() -> getAnnotationFromPropertyType(property, JsonbTypeDeserializer.class));
if (deserializerAnnotation == null) {
return null;
}
final Class<? extends JsonbDeserializer> deserializerClass = deserializerAnnotation.value();
return jsonbContext.getComponentMatcher().introspectDeserializerBinding(deserializerClass, null);
}
/**
* Checks for {@link JsonbDeserializer} on a {@link Parameter}.
*
* @param parameter parameter not null
* @return components info
*/
public DeserializerBinding<?> getDeserializerBinding(Parameter parameter) {
Objects.requireNonNull(parameter);
JsonbTypeDeserializer deserializerAnnotation =
Optional.ofNullable(parameter.getDeclaredAnnotation(JsonbTypeDeserializer.class))
.orElseGet(() -> getAnnotationFromParameterType(parameter, JsonbTypeDeserializer.class));
if (deserializerAnnotation == null) {
return null;
}
final Class<? extends JsonbDeserializer> deserializerClass = deserializerAnnotation.value();
return jsonbContext.getComponentMatcher().introspectDeserializerBinding(deserializerClass, null);
}
/**
* Checks for {@link JsonbAdapter} on a {@link Parameter}.
*
* @param parameter parameter not null
* @return components info
*/
public AdapterBinding getAdapterBinding(Parameter parameter) {
Objects.requireNonNull(parameter);
JsonbTypeAdapter adapter =
Optional.ofNullable(parameter.getDeclaredAnnotation(JsonbTypeAdapter.class))
.orElseGet(() -> getAnnotationFromParameterType(parameter, JsonbTypeAdapter.class));
if (adapter == null) {
return null;
}
return getAdapterBindingFromAnnotation(adapter, ReflectionUtils.getOptionalRawType(parameter.getParameterizedType()));
}
private <T extends Annotation> T getAnnotationFromParameterType(Parameter parameter, Class<T> annotationClass) {
final Optional<Class<?>> optionalRawType = ReflectionUtils.getOptionalRawType(parameter.getParameterizedType());
//will not work for type variable properties, which are bound to class that is annotated.
return optionalRawType.map(aClass -> findAnnotation(collectAnnotations(aClass).getAnnotations(), annotationClass))
.orElse(null);
}
/**
* Checks for {@link JsonbDeserializer} on a type.
*
* @param clsElement type not null
* @return components info
*/
public DeserializerBinding getDeserializerBinding(JsonbAnnotatedElement<Class<?>> clsElement) {
Objects.requireNonNull(clsElement);
JsonbTypeDeserializer deserializerAnnotation = clsElement.getElement().getAnnotation(JsonbTypeDeserializer.class);
if (deserializerAnnotation == null) {
return null;
}
final Class<? extends JsonbDeserializer> deserializerClass = deserializerAnnotation.value();
return jsonbContext.getComponentMatcher().introspectDeserializerBinding(deserializerClass, null);
}
/**
* Checks for {@link JsonbSerializer} on a property.
*
* @param property property not null
* @return components info
*/
public SerializerBinding getSerializerBinding(Property property) {
Objects.requireNonNull(property);
JsonbTypeSerializer serializerAnnotation = getAnnotationFromProperty(JsonbTypeSerializer.class, property)
.orElseGet(() -> getAnnotationFromPropertyType(property, JsonbTypeSerializer.class));
if (serializerAnnotation == null) {
return null;
}
final Class<? extends JsonbSerializer> serializerClass = serializerAnnotation.value();
return jsonbContext.getComponentMatcher().introspectSerializerBinding(serializerClass, null);
}
/**
* Checks for {@link JsonbSerializer} on a type.
*
* @param clsElement type not null
* @return components info
*/
public SerializerBinding getSerializerBinding(JsonbAnnotatedElement<Class<?>> clsElement) {
Objects.requireNonNull(clsElement);
JsonbTypeSerializer serializerAnnotation = clsElement.getElement().getAnnotation(JsonbTypeSerializer.class);
if (serializerAnnotation == null) {
return null;
}
final Class<? extends JsonbSerializer> serializerClass = serializerAnnotation.value();
return jsonbContext.getComponentMatcher().introspectSerializerBinding(serializerClass, null);
}
private <T extends Annotation> T getAnnotationFromPropertyType(Property property, Class<T> annotationClass) {
final Optional<Class<?>> optionalRawType = ReflectionUtils.getOptionalRawType(property.getPropertyType());
if (!optionalRawType.isPresent()) {
//will not work for type variable properties, which are bound to class that is annotated.
return null;
}
return findAnnotation(collectAnnotations(optionalRawType.get()).getAnnotations(), annotationClass);
}
/**
* Checks if property is nillable.
* Looks for {@link JsonbProperty} nillable attribute only.
* JsonbNillable is checked only for ClassModels.
*
* @param property property to search in, not null
* @return True if property should be serialized when null.
*/
public Optional<Boolean> isPropertyNillable(Property property) {
Objects.requireNonNull(property);
Optional<JsonbNillable> nillable = getAnnotationFromProperty(JsonbNillable.class, property);
if (nillable.isPresent()) {
return nillable.map(JsonbNillable::value);
}
final Optional<JsonbProperty> jsonbProperty = getAnnotationFromProperty(JsonbProperty.class, property);
return jsonbProperty.map(JsonbProperty::nillable);
}
/**
* Checks for JsonbNillable annotation on a class, its superclasses and interfaces.
*
* @param clazzElement class to search JsonbNillable in.
* @return true if found
*/
public boolean isClassNillable(JsonbAnnotatedElement<Class<?>> clazzElement) {
final JsonbNillable jsonbNillable = findAnnotation(clazzElement.getAnnotations(), JsonbNillable.class);
if (jsonbNillable != null) {
return jsonbNillable.value();
}
Class<?> clazz = clazzElement.getElement();
if (clazz == Optional.class
|| clazz == OptionalDouble.class
|| clazz == OptionalInt.class
|| clazz == OptionalLong.class) {
return true;
}
return jsonbContext.getConfigProperties().getConfigNullable();
}
/**
* Checks for {@link JsonbPropertyOrder} annotation.
*
* @param clazzElement class to search on
* @return ordered properties names or null if not found
*/
public String[] getPropertyOrder(JsonbAnnotatedElement<Class<?>> clazzElement) {
final JsonbPropertyOrder jsonbPropertyOrder = clazzElement.getElement().getAnnotation(JsonbPropertyOrder.class);
return jsonbPropertyOrder != null ? jsonbPropertyOrder.value() : null;
}
/**
* Checks if property is annotated transient. If JsonbTransient annotation is present on field getter or setter, and other
* annotation is present
* on either of it, JsonbException is thrown with message describing collision.
*
* @param property The property to inspect if there is any {@link JsonbTransient} annotation defined for it
* @return Set of {@link AnnotationTarget}s specifying in which scope the {@link JsonbTransient} is applied
*/
public EnumSet<AnnotationTarget> getJsonbTransientCategorized(Property property) {
Objects.requireNonNull(property);
EnumSet<AnnotationTarget> transientTarget = EnumSet.noneOf(AnnotationTarget.class);
Map<AnnotationTarget, JsonbTransient> annotationFromPropertyCategorized = getAnnotationFromPropertyCategorized(
JsonbTransient.class,
property);
if (annotationFromPropertyCategorized.size() > 0) {
transientTarget.addAll(annotationFromPropertyCategorized.keySet());
return transientTarget;
}
return transientTarget;
}
/**
* Search {@link JsonbDateFormat} on property, if not found looks at annotations declared on property type class.
*
* @param property Property to search on.
* @return Map of {@link JsonbDateFormatter} instances categorized by their scopes (class, property, getter or setter). If
* there is no date
* formatter specified for given property, an empty map would be returned
*/
public Map<AnnotationTarget, JsonbDateFormatter> getJsonbDateFormatCategorized(Property property) {
Objects.requireNonNull(property);
Map<AnnotationTarget, JsonbDateFormatter> result = new HashMap<>();
Map<AnnotationTarget, JsonbDateFormat> annotationFromPropertyCategorized = getAnnotationFromPropertyCategorized(
JsonbDateFormat.class,
property);
if (annotationFromPropertyCategorized.size() != 0) {
annotationFromPropertyCategorized.forEach((key, annotation) -> result
.put(key, createJsonbDateFormatter(annotation.value(), annotation.locale(), property)));
}
// No date format on property, try class level
// if property is not TypeVariable and its class is not date skip it
final Optional<Class<?>> propertyRawTypeOptional = ReflectionUtils.getOptionalRawType(property.getPropertyType());
if (propertyRawTypeOptional.isPresent()) {
Class<?> rawType = propertyRawTypeOptional.get();
if (!(
Date.class.isAssignableFrom(rawType) || Calendar.class.isAssignableFrom(rawType)
|| TemporalAccessor.class.isAssignableFrom(rawType))) {
return new HashMap<>();
}
}
JsonbDateFormat classLevelDateFormatter = findAnnotation(property.getDeclaringClassElement().getAnnotations(),
JsonbDateFormat.class);
if (classLevelDateFormatter != null) {
result.put(AnnotationTarget.CLASS,
createJsonbDateFormatter(classLevelDateFormatter.value(), classLevelDateFormatter.locale(), property));
}
return result;
}
/**
* Search for {@link JsonbDateFormat} annotation on java class and construct {@link JsonbDateFormatter}.
* If not found looks at annotations declared on property type class.
*
* @param clazzElement class to search not null
* @return formatter to use
*/
public JsonbDateFormatter getJsonbDateFormat(JsonbAnnotatedElement<Class<?>> clazzElement) {
Objects.requireNonNull(clazzElement);
final JsonbDateFormat format = findAnnotation(clazzElement.getAnnotations(), JsonbDateFormat.class);
if (format == null) {
return jsonbContext.getConfigProperties().getConfigDateFormatter();
}
return new JsonbDateFormatter(format.value(), format.locale());
}
/**
* Search for {@link JsonbNumberFormat} annotation on java class.
*
* @param clazzElement class to search not null
* @return formatter to use
*/
public JsonbNumberFormatter getJsonbNumberFormat(JsonbAnnotatedElement<Class<?>> clazzElement) {
final JsonbNumberFormat formatAnnotation = findAnnotation(clazzElement.getAnnotations(), JsonbNumberFormat.class);
if (formatAnnotation == null) {
return null;
}
return new JsonbNumberFormatter(formatAnnotation.value(), formatAnnotation.locale());
}
/**
* Search {@link JsonbNumberFormat} on property, if not found looks at annotations declared on property type class.
*
* @param property Property to search on.
* @return Map of {@link JsonbNumberFormatter} instances categorized by their scopes (class, property, getter or setter).
* If there is no number
* formatter specified for given property, an empty map would be returned
*/
public Map<AnnotationTarget, JsonbNumberFormatter> getJsonNumberFormatter(Property property) {
Map<AnnotationTarget, JsonbNumberFormatter> result = new HashMap<>();
Map<AnnotationTarget, JsonbNumberFormat> annotationFromPropertyCategorized = getAnnotationFromPropertyCategorized(
JsonbNumberFormat.class,
property);
// if (annotationFromPropertyCategorized.size() == 0) {
// final Optional<Class<?>> propertyRawTypeOptional = ReflectionUtils.getOptionalRawType(property
// .getPropertyType());
// if (propertyRawTypeOptional.isPresent()) {
// Class<?> rawType = propertyRawTypeOptional.get();
// if (!Number.class.isAssignableFrom(rawType)) {
// return new HashMap<>();
// }
// }
// } else {
// annotationFromPropertyCategorized.forEach((key, annotation) -> result
// .put(key, new JsonbNumberFormatter(annotation.value(), annotation.locale())));
// }
annotationFromPropertyCategorized.forEach((key, annotation) -> result
.put(key, new JsonbNumberFormatter(annotation.value(), annotation.locale())));
JsonbNumberFormat classLevelNumberFormatter = findAnnotation(property.getDeclaringClassElement().getAnnotations(),
JsonbNumberFormat.class);
if (classLevelNumberFormatter != null) {
result.put(AnnotationTarget.CLASS,
new JsonbNumberFormatter(classLevelNumberFormatter.value(), classLevelNumberFormatter.locale()));
}
return result;
}
/**
* Returns {@link JsonbNumberFormatter} instance if {@link JsonbNumberFormat} annotation is present.
*
* @param param annotated method parameter
* @return formatter instance if {@link JsonbNumberFormat} is present otherwise null
*/
public JsonbNumberFormatter getConstructorNumberFormatter(JsonbAnnotatedElement<Parameter> param) {
return param.getAnnotation(JsonbNumberFormat.class)
.map(annotation -> new JsonbNumberFormatter(annotation.value(), annotation.locale()))
.orElse(null);
}
/**
* Returns {@link JsonbDateFormatter} instance if {@link JsonbDateFormat} annotation is present.
*
* @param param annotated method parameter
* @return formatter instance if {@link JsonbDateFormat} is present otherwise null
*/
public JsonbDateFormatter getConstructorDateFormatter(JsonbAnnotatedElement<Parameter> param) {
return param.getAnnotation(JsonbDateFormat.class)
.map(annotation -> new JsonbDateFormatter(DateTimeFormatter.ofPattern(annotation.value(),
Locale.forLanguageTag(annotation.locale())),
annotation.value(), annotation.locale()))
.orElse(null);
}
/**
* Creates {@link JsonbDateFormatter} caches formatter instance if possible.
* For DEFAULT_FORMAT appropriate singleton instances from java.time.format.DateTimeFormatter
* are used in date converters.
*/
private JsonbDateFormatter createJsonbDateFormatter(String format, String locale, Property property) {
if (JsonbDateFormat.TIME_IN_MILLIS.equals(format) || JsonbDateFormat.DEFAULT_FORMAT.equals(format)) {
//for epochMillis formatter is not used, for default format singleton instances of DateTimeFormatter
//are used in the converters
return new JsonbDateFormatter(format, locale);
}
final Optional<Class<?>> optionalRawType = ReflectionUtils.getOptionalRawType(property.getPropertyType());
final Class<?> propertyRawType = optionalRawType.orElse(null);
if (propertyRawType != null
&& !TemporalAccessor.class.isAssignableFrom(propertyRawType)
&& !Date.class.isAssignableFrom(propertyRawType)
&& !Calendar.class.isAssignableFrom(propertyRawType)) {
throw new IllegalStateException(Messages.getMessage(MessageKeys.UNSUPPORTED_DATE_TYPE, propertyRawType));
}
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.appendPattern(format);
if (jsonbContext.getConfigProperties().isZeroTimeDefaulting()) {
builder.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0);
builder.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0);
builder.parseDefaulting(ChronoField.HOUR_OF_DAY, 0);
}
DateTimeFormatter dateTimeFormatter = builder.toFormatter(Locale.forLanguageTag(locale));
return new JsonbDateFormatter(dateTimeFormatter, format, locale);
}
/**
* Get a @JsonbVisibility annotation from a class or its package.
*
* @param clazz Class to lookup annotation
* @return Instantiated PropertyVisibilityStrategy if annotation is present
*/
public PropertyVisibilityStrategy getPropertyVisibilityStrategy(Class<?> clazz) {
JsonbVisibility visibilityAnnotation = findAnnotation(clazz.getDeclaredAnnotations(), JsonbVisibility.class);
if ((visibilityAnnotation == null) && (clazz.getPackage() != null)) {
visibilityAnnotation = findAnnotation(clazz.getPackage().getDeclaredAnnotations(), JsonbVisibility.class);
}
if (visibilityAnnotation != null) {
return ReflectionUtils.createNoArgConstructorInstance(
ReflectionUtils.getDefaultConstructor(visibilityAnnotation.value(), true));
}
return jsonbContext.getConfigProperties().getPropertyVisibilityStrategy();
}
/**
* Gets an annotation from first resolved annotation in a property in this order:
* <p>1. Field, 2. Getter, 3 Setter.</p>
* First found overrides other.
*
* @param annotationClass Annotation class to search for
* @param property property to search in
* @param <T> Annotation type
* @return Annotation if found, null otherwise
*/
private <T extends Annotation> Optional<T> getAnnotationFromProperty(Class<T> annotationClass, Property property) {
T fieldAnnotation = getFieldAnnotation(annotationClass, property.getFieldElement());
if (fieldAnnotation != null) {
return Optional.of(fieldAnnotation);
}
T getterAnnotation = getMethodAnnotation(annotationClass, property.getGetterElement());
if (getterAnnotation != null) {
return Optional.of(getterAnnotation);
}
T setterAnnotation = getMethodAnnotation(annotationClass, property.getSetterElement());
if (setterAnnotation != null) {
return Optional.of(setterAnnotation);
}
return Optional.empty();
}
/**
* An override of {@link #getAnnotationFromProperty(Class, Property)} in which it returns the results as a map so that the
* caller can decide which
* one to be used for read/write operation. Some annotations should have different behaviours based on the scope that
* they're applied on.
*
* @param annotationClass The annotation class to search
* @param property The property to search in
* @param <T> Annotation type
* @return A map of all occurrences of requested annotation for given property. Caller can determine based on
* {@link AnnotationTarget} that given
* annotation is specified on what level (Class, Property, Getter or Setter). If no annotation found for given property, an
* empty map would be
* returned
*/
private <T extends Annotation> Map<AnnotationTarget, T> getAnnotationFromPropertyCategorized(Class<T> annotationClass,
Property property) {
Map<AnnotationTarget, T> result = new HashMap<>();
T fieldAnnotation = getFieldAnnotation(annotationClass, property.getFieldElement());
if (fieldAnnotation != null) {
result.put(AnnotationTarget.PROPERTY, fieldAnnotation);
}
T getterAnnotation = getMethodAnnotation(annotationClass, property.getGetterElement());
if (getterAnnotation != null) {
result.put(AnnotationTarget.GETTER, getterAnnotation);
}
T setterAnnotation = getMethodAnnotation(annotationClass, property.getSetterElement());
if (setterAnnotation != null) {
result.put(AnnotationTarget.SETTER, setterAnnotation);
}
return result;
}
private <T extends Annotation> T getFieldAnnotation(Class<T> annotationClass, JsonbAnnotatedElement<Field> fieldElement) {
if (fieldElement == null) {
return null;
}
return findAnnotation(fieldElement.getAnnotations(), annotationClass);
}
private <T extends Annotation> T findAnnotation(Annotation[] declaredAnnotations, Class<T> annotationClass) {
return AnnotationFinder.findAnnotation(declaredAnnotations, annotationClass, new HashSet<>());
}
/**
* Finds annotations incompatible with {@link JsonbTransient} annotation.
*
* @param target target to check
*/
public void checkTransientIncompatible(JsonbAnnotatedElement<?> target) {
if (target == null) {
return;
}
for (Class<? extends Annotation> ann : TRANSIENT_INCOMPATIBLE) {
Annotation annotation = findAnnotation(target.getAnnotations(), ann);
if (annotation != null) {
throw new JsonbException(Messages.getMessage(MessageKeys.JSONB_TRANSIENT_WITH_OTHER_ANNOTATIONS));
}
}
}
private <T extends Annotation> T getMethodAnnotation(Class<T> annotationClass, JsonbAnnotatedElement<Method> methodElement) {
if (methodElement == null) {
return null;
}
return findAnnotation(methodElement.getAnnotations(), annotationClass);
}
private <T extends Annotation> void collectFromInterfaces(Class<T> annotationClass,
Class<?> clazz,
Map<Class<?>, T> collectedAnnotations) {
for (Class<?> interfaceClass : clazz.getInterfaces()) {
T annotation = findAnnotation(interfaceClass.getDeclaredAnnotations(), annotationClass);
if (annotation != null) {
collectedAnnotations.put(interfaceClass, annotation);
}
collectFromInterfaces(annotationClass, interfaceClass, collectedAnnotations);
}
}
/**
* Get class interfaces recursively.
*
* @param cls Class to process.
* @return A list of all class interfaces.
*/
public Set<Class<?>> collectInterfaces(Class<?> cls) {
Set<Class<?>> collected = new LinkedHashSet<>();
Queue<Class<?>> toScan = new LinkedList<>(Arrays.asList(cls.getInterfaces()));
Class<?> nextIfc;
while ((nextIfc = toScan.poll()) != null) {
collected.add(nextIfc);
toScan.addAll(Arrays.asList(nextIfc.getInterfaces()));
}
return collected;
}
/**
* Processes customizations.
*
* @param clsElement Element to process.
* @param propertyNamingStrategy The naming strategy to use for the ${@code JsonbConstructor} annotation,
* if set and no {@code JsonbProperty} annotations are present.
* @return Populated {@link ClassCustomization} instance.
*/
public ClassCustomization introspectCustomization(JsonbAnnotatedElement<Class<?>> clsElement,
ClassCustomization parentCustomization,
PropertyNamingStrategy propertyNamingStrategy) {
return ClassCustomization.builder()
.nillable(isClassNillable(clsElement))
.dateTimeFormatter(getJsonbDateFormat(clsElement))
.numberFormatter(getJsonbNumberFormat(clsElement))
.creator(getCreator(clsElement.getElement(), propertyNamingStrategy))
.propertyOrder(getPropertyOrder(clsElement))
.adapterBinding(getAdapterBinding(clsElement))
.serializerBinding(getSerializerBinding(clsElement))
.deserializerBinding(getDeserializerBinding(clsElement))
.propertyVisibilityStrategy(getPropertyVisibilityStrategy(clsElement.getElement()))
.polymorphismConfig(getPolymorphismConfig(clsElement, parentCustomization))
.build();
}
private TypeInheritanceConfiguration getPolymorphismConfig(JsonbAnnotatedElement<Class<?>> clsElement,
ClassCustomization parentCustomization) {
TypeInheritanceConfiguration parentPolyConfig = parentCustomization.getPolymorphismConfig();
LinkedList<AnnotationWrapper<?>> annotations = clsElement.getAnnotations(JsonbTypeInfo.class);
if (parentPolyConfig != null) {
if (annotations.size() == 1 && annotations.getFirst().isInherited()) {
throw new JsonbException("Cannot process type information from multiple sources! Sources: "
+ parentPolyConfig.getDefinedType().getName() + " and "
+ annotations.getFirst());
} else if (annotations.size() > 1) {
throw new JsonbException("Cannot process type information from multiple sources! Sources: " + annotations);
} else if (annotations.isEmpty()) {
return TypeInheritanceConfiguration.builder().of(parentPolyConfig)
.inherited(true)
.build();
}
}
ListIterator<AnnotationWrapper<?>> listIterator = annotations.listIterator(annotations.size());
while (listIterator.hasPrevious()) {
AnnotationWrapper<?> annotationWrapper = listIterator.previous();
JsonbTypeInfo annotation = (JsonbTypeInfo) annotationWrapper.getAnnotation();
TypeInheritanceConfiguration.Builder builder = TypeInheritanceConfiguration.builder();
builder.fieldName(annotation.key())
.inherited(annotationWrapper.isInherited())
.parentConfig(parentPolyConfig)
.definedType(annotationWrapper.getDefinedType());
for (JsonbSubtype subType : annotation.value()) {
if (!annotationWrapper.getDefinedType().isAssignableFrom(subType.type())) {
throw new JsonbException("Defined alias type has to be child of the current type. JsonbSubType on the "
+ annotationWrapper.getDefinedType().getName()
+ " defines incorrect alias "
+ subType);
}
builder.alias(subType.type(), subType.alias());
}
parentPolyConfig = builder.build();
}
checkDuplicityPolymorphicPropertyNames(parentPolyConfig);
return parentPolyConfig;
}
private void checkDuplicityPolymorphicPropertyNames(TypeInheritanceConfiguration typeInheritanceConfiguration) {
if (typeInheritanceConfiguration == null) {
return;
}
Map<String, TypeInheritanceConfiguration> keyNames = new HashMap<>();
TypeInheritanceConfiguration current = typeInheritanceConfiguration;
while (current != null) {
String fieldName = current.getFieldName();
if (keyNames.containsKey(fieldName)) {
TypeInheritanceConfiguration conflicting = keyNames.get(fieldName);
throw new JsonbException("One polymorphic chain cannot have two conflicting property names. "
+ "Polymorphic type defined on the type "
+ conflicting.getDefinedType().getName() + " and "
+ current.getDefinedType().getName() + " have conflicting property name");
}
keyNames.put(fieldName, current);
current = current.getParentConfig();
}
}
/**
* Returns class if {@link ImplementationClass} annotation is present.
*
* @param property annotated property
* @return Class if {@link ImplementationClass} is present otherwise null
*/
public Class<?> getImplementationClass(Property property) {
Optional<ImplementationClass> annotationFromProperty = getAnnotationFromProperty(ImplementationClass.class, property);
return annotationFromProperty.<Class<?>>map(ImplementationClass::value).orElse(null);
}
/**
* Collect annotations of given class, its interfaces and the package.
*
* @param clazz Class to process.
* @return Element with class and annotations.
*/
public JsonbAnnotatedElement<Class<?>> collectAnnotations(Class<?> clazz) {
JsonbAnnotatedElement<Class<?>> classElement = new JsonbAnnotatedElement<>(clazz);
if (BuiltInTypes.isKnownType(clazz)) {
return classElement;
}
Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<?>>> interfaceAnnotations
= collectInterfaceAnnotations(clazz, clazz);
for (LinkedList<AnnotationWrapper<?>> wrappers : interfaceAnnotations.values()) {
for (AnnotationWrapper<?> wrapper : wrappers) {
if (classElement.getAnnotation(wrapper.getAnnotation().annotationType()).isEmpty()
|| REPEATABLE.contains(wrapper.getAnnotation().annotationType())) {
classElement.putAnnotationWrapper(wrapper);
}
}
}
if (!clazz.isPrimitive() && !clazz.isArray() && (clazz.getPackage() != null)) {
addIfNotPresent(classElement, null, clazz.getPackage().getAnnotations());
}
return classElement;
}
private Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<?>>> collectInterfaceAnnotations(Class<?> currentInterf,
Class<?> processed) {
Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<?>>> map = new HashMap<>();
if (!currentInterf.equals(processed)) {
for (Annotation annotation : currentInterf.getDeclaredAnnotations()) {
map.computeIfAbsent(annotation.annotationType(), aClass -> new LinkedList<>())
.add(new AnnotationWrapper<>(annotation, true, currentInterf));
}
}
Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<?>>> parents = new HashMap<>();
for (Class<?> parentInterf : currentInterf.getInterfaces()) {
Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<?>>> current = collectInterfaceAnnotations(parentInterf,
processed);
current.entrySet().stream()
.filter(entry -> !parents.containsKey(entry.getKey()) || REPEATABLE.contains(entry.getKey()))
.peek(entry -> {
if (parents.containsKey(entry.getKey())) {
throw new JsonbException("Cannot process annotation " + entry.getKey().getName() + " from multiple "
+ "parallel sources");
}
})
.forEach(entry -> {
parents.computeIfAbsent(entry.getKey(), aClass -> new LinkedList<>()).addAll(entry.getValue());
map.computeIfAbsent(entry.getKey(), aClass -> new LinkedList<>()).addAll(entry.getValue());
});
}
return map;
}
// private void collectParentInterfaceAnnotations(Class<?> currentInterf,
// Map<Class<? extends Annotation>, LinkedList<Annotation>> overall) {
// Map<Class<? extends Annotation>, LinkedList<Annotation>> parents = new HashMap<>();
// for (Class<?> parentInterf : currentInterf.getInterfaces()) {
// collectParentInterfaceAnnotations(parentInterf, );
// current.entrySet().stream()
// .filter(entry -> parents.containsKey(entry.getKey()) || REPEATABLE.contains(entry.getKey()))
// .peek(entry -> {
// if (parents.containsKey(entry.getKey())) {
// throw new JsonbException("CHANGE THIS EXCEPTION");
// }
// })
// .forEach(entry -> {
// parents.computeIfAbsent(entry.getKey(), aClass -> new LinkedList<>()).addAll(entry.getValue());
// map.computeIfAbsent(entry.getKey(), aClass -> new LinkedList<>()).addAll(entry.getValue());
// });
// }
// if (currentInterf.isInterface()) {
// for (Annotation annotation : currentInterf.getDeclaredAnnotations()) {
// map.computeIfAbsent(annotation.annotationType(), aClass -> new LinkedList<>()).add(annotation);
// }
// }
// return map;
// }
private void addIfNotPresent(JsonbAnnotatedElement<?> element, Class<?> definedType, Annotation... annotations) {
for (Annotation annotation : annotations) {
if (element.getAnnotation(annotation.annotationType()).isEmpty()
|| REPEATABLE.contains(annotation.annotationType())) {
element.putAnnotation(annotation, true, definedType);
}
}
}
public boolean requiredParameters(Executable executable, JsonbAnnotatedElement<Parameter> annotated) {
return jsonbContext.getConfigProperties().hasRequiredCreatorParameters();
// if (OPTIONALS.contains(annotated.getElement().getType())) {
// return false;
// }
// return annotated.getAnnotation(JsonbRequired.class)
// .or(() -> Optional.ofNullable(executable.getAnnotation(JsonbRequired.class)))
// .map(JsonbRequired::value)
// .orElseGet(() -> jsonbContext.getConfigProperties().hasRequiredCreatorParameters());
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/BuiltInTypes.java
================================================
/*
* Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URI;
import java.net.URL;
import java.nio.file.Path;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.Period;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Map;
import java.util.Optional;
import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.OptionalLong;
import java.util.Set;
import java.util.TimeZone;
import java.util.UUID;
import javax.xml.datatype.XMLGregorianCalendar;
import jakarta.json.JsonValue;
/**
* Types which are supported by the Yasson by default.
*/
public class BuiltInTypes {
private static final Set<Class<?>> BUILD_IN_SUPPORT;
static {
Set<Class<?>> buildInTypes = new HashSet<>();
buildInTypes.add(Byte.class);
buildInTypes.add(Byte.TYPE);
buildInTypes.add(BigDecimal.class);
buildInTypes.add(BigInteger.class);
buildInTypes.add(Boolean.class);
buildInTypes.add(Boolean.TYPE);
buildInTypes.add(Calendar.class);
buildInTypes.add(Character.class);
buildInTypes.add(Character.TYPE);
buildInTypes.add(Date.class);
buildInTypes.add(Double.class);
buildInTypes.add(Double.TYPE);
buildInTypes.add(Duration.class);
buildInTypes.add(Float.class);
buildInTypes.add(Float.TYPE);
buildInTypes.add(Integer.class);
buildInTypes.add(Integer.TYPE);
buildInTypes.add(Instant.class);
buildInTypes.add(LocalDateTime.class);
buildInTypes.add(LocalDate.class);
buildInTypes.add(LocalTime.class);
buildInTypes.add(Long.class);
buildInTypes.add(Long.TYPE);
buildInTypes.add(Number.class);
buildInTypes.add(OffsetDateTime.class);
buildInTypes.add(OffsetTime.class);
buildInTypes.add(OptionalDouble.class);
buildInTypes.add(OptionalInt.class);
buildInTypes.add(OptionalLong.class);
buildInTypes.add(Path.class);
buildInTypes.add(Period.class);
buildInTypes.add(Short.class);
buildInTypes.add(Short.TYPE);
buildInTypes.add(String.class);
buildInTypes.add(TimeZone.class);
buildInTypes.add(URI.class);
buildInTypes.add(URL.class);
buildInTypes.add(UUID.class);
if (isClassAvailable("javax.xml.datatype.XMLGregorianCalendar")) {
buildInTypes.add(XMLGregorianCalendar.class);
}
buildInTypes.add(ZonedDateTime.class);
buildInTypes.add(ZoneId.class);
buildInTypes.add(ZoneOffset.class);
if (isClassAvailable("java.sql.Date")) {
buildInTypes.add(java.sql.Date.class);
buildInTypes.add(java.sql.Timestamp.class);
}
BUILD_IN_SUPPORT = Set.copyOf(buildInTypes);
}
private BuiltInTypes() {
throw new IllegalStateException("Util class cannot be instantiated");
}
/**
* Check whether the class is available.
*
* @param className name of the checked class
* @return true if available, otherwise false
*/
public static boolean isClassAvailable(String className) {
try {
Class.forName(className);
return true;
} catch (ClassNotFoundException | LinkageError e) {
return false;
}
}
/**
* Whether the type is a supported type by default.
*
* @param clazz type to check
* @return whether is supported
*/
public static boolean isKnownType(Class<?> clazz) {
boolean knownContainerValueType = Collection.class.isAssignableFrom(clazz)
|| Map.class.isAssignableFrom(clazz)
|| JsonValue.class.isAssignableFrom(clazz)
|| Optional.class.isAssignableFrom(clazz)
|| clazz.isArray();
return knownContainerValueType || findIfClassIsSupported(clazz);
}
private static boolean findIfClassIsSupported(Class<?> clazz) {
Class<?> current = clazz;
do {
if (BUILD_IN_SUPPORT.contains(current)) {
return true;
}
current = current.getSuperclass();
} while (current != null);
return false;
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/ClassMultiReleaseExtension.java
================================================
/*
* Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.Optional;
import jakarta.json.bind.JsonbException;
import jakarta.json.bind.config.PropertyNamingStrategy;
import org.eclipse.yasson.internal.model.JsonbCreator;
import org.eclipse.yasson.internal.model.Property;
/**
* Search for instance creator from other sources.
* Mainly intended to add extensibility for different java versions and new features.
*/
public class ClassMultiReleaseExtension {
private ClassMultiReleaseExtension() {
throw new IllegalStateException("This class cannot be instantiated");
}
static boolean shouldTransformToPropertyName(Method method) {
return true;
}
static boolean isSpecialAccessorMethod(Method method, Map<String, Property> classProperties) {
return false;
}
static JsonbCreator findCreator(Class<?> clazz,
Constructor<?>[] declaredConstructors,
AnnotationIntrospector introspector,
PropertyNamingStrategy propertyNamingStrategy) {
return null;
}
public static boolean isRecord(Class<?> clazz) {
return false;
}
public static Optional<JsonbException> exceptionToThrow(Class<?> clazz) {
return Optional.empty();
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/ClassParser.java
================================================
/*
* Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import jakarta.json.bind.JsonbException;
import jakarta.json.bind.config.PropertyVisibilityStrategy;
import org.eclipse.yasson.internal.model.ClassModel;
import org.eclipse.yasson.internal.model.CreatorModel;
import org.eclipse.yasson.internal.model.JsonbAnnotatedElement;
import org.eclipse.yasson.internal.model.JsonbCreator;
import org.eclipse.yasson.internal.model.Property;
import org.eclipse.yasson.internal.model.PropertyModel;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
/**
* Created a class internal model.
*/
class ClassParser {
private static final String IS_PREFIX = "is";
private static final String GET_PREFIX = "get";
private static final String SET_PREFIX = "set";
private final JsonbContext jsonbContext;
ClassParser(JsonbContext jsonbContext) {
this.jsonbContext = jsonbContext;
}
/**
* Parse class fields and getters setters. Merge to java bean like properties.
*/
void parseProperties(ClassModel classModel, JsonbAnnotatedElement<Class<?>> classElement) {
final Map<String, Property> classProperties = new HashMap<>();
parseFields(classElement, classProperties);
parseClassAndInterfaceMethods(classElement, classProperties);
//add sorted properties from parent, if they are not overridden in current class
//parent properties are by default first by alphabet, than properties from a subclass
final List<PropertyModel> sortedParentProperties = getSortedParentProperties(classModel, classElement, classProperties);
List<PropertyModel> classPropertyModels = classProperties.values().stream()
.map(property -> new PropertyModel(classModel, property, jsonbContext))
.collect(Collectors.toList());
//check for collision on same property read name
List<PropertyModel> unsortedMerged = new ArrayList<>(sortedParentProperties.size() + classPropertyModels.size());
unsortedMerged.addAll(sortedParentProperties);
unsortedMerged.addAll(classPropertyModels);
checkPropertyNameClash(unsortedMerged, classModel.getType());
mergePropertyModels(classPropertyModels);
List<PropertyModel> sortedPropertyModels = new ArrayList<>(sortedParentProperties.size() + classPropertyModels.size());
sortedPropertyModels.addAll(sortedParentProperties);
sortedPropertyModels.addAll(jsonbContext.getConfigProperties().getPropertyOrdering()
.orderProperties(classPropertyModels, classModel));
//reference property to creator parameter by name to merge configuration in runtime
JsonbCreator creator = classModel.getClassCustomization().getCreator();
if (creator != null) {
sortedPropertyModels.forEach(propertyModel -> {
for (CreatorModel creatorModel : creator.getParams()) {
if (creatorModel.getName().equals(propertyModel.getPropertyName())) {
creatorModel.getCustomization().setPropertyModel(propertyModel);
}
}
});
}
classModel.setProperties(sortedPropertyModels);
}
private static void mergePropertyModels(List<PropertyModel> unsortedMerged) {
PropertyModel[] clone = unsortedMerged.toArray(new PropertyModel[0]);
for (int i = 0; i < clone.length; i++) {
for (int j = i + 1; j < clone.length; j++) {
PropertyModel firstPropertyModel = clone[i];
PropertyModel secondPropertyModel = clone[j];
if (firstPropertyModel.equals(secondPropertyModel)) {
// Need to merge two properties
unsortedMerged.remove(firstPropertyModel);
unsortedMerged.remove(secondPropertyModel);
if (!firstPropertyModel.isReadable() && !firstPropertyModel.isWritable()) {
unsortedMerged.add(secondPropertyModel);
} else if (!secondPropertyModel.isReadable() && !secondPropertyModel.isWritable()) {
unsortedMerged.add(firstPropertyModel);
} else {
unsortedMerged.add(new PropertyModel(firstPropertyModel, secondPropertyModel));
}
}
}
}
}
private void parseClassAndInterfaceMethods(JsonbAnnotatedElement<Class<?>> classElement,
Map<String, Property> classProperties) {
Class<?> concreteClass = classElement.getElement();
parseMethods(concreteClass, classElement, classProperties);
for (Class<?> ifc : jsonbContext.getAnnotationIntrospector().collectInterfaces(concreteClass)) {
parseIfaceMethodAnnotations(ifc, classElement, classProperties);
}
}
private void parseIfaceMethodAnnotations(Class<?> ifc,
JsonbAnnotatedElement<Class<?>> classElement,
Map<String, Property> classProperties) {
Method[] declaredMethods = AccessController.doPrivileged((PrivilegedAction<Method[]>) ifc::getDeclaredMethods);
for (Method method : declaredMethods) {
final String methodName = method.getName();
if (!isPropertyMethod(method)) {
continue;
}
String propertyName = toPropertyMethod(methodName);
Property property = classProperties.get(propertyName);
if (method.isDefault()) {
// Interface provides default implementation
if (property == null) {
// the property does not yet exists : create it from scratch
property = registerMethod(propertyName, method, classElement, classProperties);
} else {
// property already exists, take care not overriding already parsed implementation
if (isSetter(method)) {
if (property.getSetter() == null) {
property.setSetter(method);
}
} else {
if (property.getGetter() == null) {
property.setGetter(method);
}
}
}
}
if (property == null) {
//May happen for classes which both extend a class with some method and implement interface with same method.
continue;
}
JsonbAnnotatedElement<Method> methodElement = isGetter(method)
? property.getGetterElement() : property.getSetterElement();
//Only push iface annotations if not overridden on impl classes
for (Annotation ann : method.getDeclaredAnnotations()) {
if (methodElement.getAnnotation(ann.annotationType()).isEmpty()) {
methodElement.putAnnotation(ann, true, null);
}
}
}
}
private Property registerMethod(String propertyName,
Method method,
JsonbAnnotatedElement<Class<?>> classElement,
Map<String, Property> classProperties) {
Property property = classProperties.computeIfAbsent(propertyName, n -> new Property(n, classElement));
if (isSetter(method)) {
property.setSetter(method);
} else {
property.setGetter(method);
}
return property;
}
private void parseMethods(Class<?> clazz,
JsonbAnnotatedElement<Class<?>> classElement,
Map<String, Property> classProperties) {
Method[] declaredMethods = AccessController.doPrivileged((PrivilegedAction<Method[]>) clazz::getDeclaredMethods);
for (Method method : declaredMethods) {
String name = method.getName();
//isBridge method filters out methods inherited from interfaces
boolean isAccessorMethod = ClassMultiReleaseExtension.isSpecialAccessorMethod(method, classProperties)
|| isPropertyMethod(method);
if (!isAccessorMethod || method.isBridge() || isSpecialCaseMethod(clazz, method)) {
continue;
}
final String propertyName = ClassMultiReleaseExtension.shouldTransformToPropertyName(method)
? toPropertyMethod(name)
: name;
registerMethod(propertyName, method, classElement, classProperties);
}
}
/**
* Filter out certain methods that get forcibly added to some classes.
* For example the public groovy.lang.MetaClass X.getMetaClass() method from Groovy classes
*/
private static boolean isSpecialCaseMethod(Class<?> clazz, Method m) {
if (!Modifier.isPublic(m.getModifiers()) || Modifier.isStatic(m.getModifiers()) || m.isSynthetic()) {
return false;
}
// Groovy objects will have public groovy.lang.MetaClass X.getMetaClass()
// which causes an infinite loop in serialization
if (m.getName().equals("getMetaClass")
&& m.getReturnType().getCanonicalName().equals("groovy.lang.MetaClass")) {
return true;
}
// WELD proxy objects will have 'public org.jboss.weld
if (m.getName().equals("getMetadata")
&& m.getReturnType().getCanonicalName().equals("org.jboss.weld.proxy.WeldClientProxy$Metadata")) {
return true;
}
return false;
}
private static boolean isGetter(Method m) {
return (m.getName().startsWith(GET_PREFIX) || m.getName().startsWith(IS_PREFIX)) && m.getParameterCount() == 0;
}
private static boolean isSetter(Method m) {
return m.getName().startsWith(SET_PREFIX) && m.getParameterCount() == 1;
}
private static String toPropertyMethod(String name) {
return lowerFirstLetter(name.substring(name.startsWith(IS_PREFIX) ? 2 : 3));
}
private static String lowerFirstLetter(String name) {
Objects.requireNonNull(name);
if (name.length() == 0) {
//methods named get() or set()
return name;
}
if (name.length() > 1
&& Character.isUpperCase(name.charAt(1))
&& Character.isUpperCase(name.charAt(0))) {
return name;
}
char[] chars = name.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}
private static boolean isPropertyMethod(Method m) {
return isGetter(m) || isSetter(m);
}
private static void parseFields(JsonbAnnotatedElement<Class<?>> classElement, Map<String, Property> classProperties) {
Field[] declaredFields = AccessController.doPrivileged(
(PrivilegedAction<Field[]>) () -> classElement.getElement().getDeclaredFields());
for (Field field : declaredFields) {
final String name = field.getName();
if (field.isSynthetic()) {
continue;
}
final Property property = new Property(name, classElement);
property.setField(field);
classProperties.put(name, property);
}
}
private static void checkPropertyNameClash(List<PropertyModel> collectedProperties, Class<?> cls) {
final List<PropertyModel> checkedProperties = new ArrayList<>();
for (PropertyModel collectedPropertyModel : collectedProperties) {
for (PropertyModel checkedPropertyModel : checkedProperties) {
if ((checkedPropertyModel.getReadName().equals(collectedPropertyModel.getReadName())
&& checkedPropertyModel.isReadable() //
&& collectedPropertyModel.isReadable())
|| (checkedPropertyModel.getWriteName().equals(collectedPropertyModel.getWriteName())
&& checkedPropertyModel.isWritable() //
&& collectedPropertyModel.isWritable())) {
throw new JsonbException(
Messages.getMessage(MessageKeys.PROPERTY_NAME_CLASH, checkedPropertyModel.getPropertyName(),
collectedPropertyModel.getPropertyName(), cls.getName()));
}
}
checkedProperties.add(collectedPropertyModel);
}
}
/**
* Merges current class properties with parent class properties.
* If javabean property is declared in more than one inheritance levels,
* merge field, getters and setters of that property.
* <p>
* For example BaseClass contains field foo and getter getFoo. In BaseExtensions there is a setter setFoo.
* All three will be merged for BaseExtension.
* <p>
* Such property is sorted based on where its getter or field is located.
*/
private List<PropertyModel> getSortedParentProperties(ClassModel classModel,
JsonbAnnotatedElement<Class<?>> classElement,
Map<String, Property> classProperties) {
List<PropertyModel> sortedProperties = new ArrayList<>();
//Pull properties from parent
if (classModel.getParentClassModel() != null) {
for (PropertyModel parentProp : classModel.getParentClassModel().getSortedProperties()) {
final Property current = classProperties.get(parentProp.getPropertyName());
//don't replace overridden properties
if (current == null) {
sortedProperties.add(parentProp);
} else {
//merge
final Property merged = mergeProperty(current, parentProp, classElement);
PropertyVisibilityStrategy propertyVisibilityStrategy = classModel.getClassCustomization()
.getPropertyVisibilityStrategy();
if (PropertyModel.isPropertyReadable(current.getField(), current.getGetter(), propertyVisibilityStrategy)) {
classProperties.replace(current.getName(), merged);
} else {
sortedProperties.add(new PropertyModel(classModel, merged, jsonbContext));
classProperties.remove(current.getName());
}
}
}
}
return sortedProperties;
}
/**
* Select the correct method to use. The correct method is the most specific
* method which is not a default one:
* <ul>
* <li> if current is not defined, returns parent;</li>
* <li> if parent is not defined, returns current;</li>
* <li> if current is a default method and parent is not, returns parent;</li>
* <ul>
* <li><i>By definition, it is not possible to make a choice betweentwo default
* methods. <br/>Here, the most specific is selected, but a concrete
* implementation MUST eventually be provided as the source code won't even
* compile if such a method does not exist</i></li>
* </ul>
* <li> returns current otherwise</li>
* </ul>
*
* @param current current 'child' implementation
* @param parent parent implementation
* @return effective method to register as getter or setter
*/
private static Method selectMostSpecificNonDefaultMethod(Method current, Method parent) {
return (
current != null ? (
parent != null && current.isDefault()
&& !parent.isDefault() ? parent : current) : parent);
}
private static Property mergeProperty(Property current,
PropertyModel parentProp,
JsonbAnnotatedElement<Class<?>> classElement) {
Field field = current.getField() != null
? current.getField() : parentProp.getField();
Method getter = selectMostSpecificNonDefaultMethod(current.getGetter(),
parentProp.getGetter());
Method setter = selectMostSpecificNonDefaultMethod(current.getSetter(),
parentProp.getSetter());
Property merged = new Property(parentProp.getPropertyName(), classElement);
if (field != null) {
merged.setField(field);
}
if (getter != null) {
merged.setGetter(getter);
}
if (setter != null) {
merged.setSetter(setter);
}
return merged;
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/ComponentMatcher.java
================================================
/*
* Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.util.LinkedList;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.function.Function;
import jakarta.json.bind.JsonbConfig;
import jakarta.json.bind.adapter.JsonbAdapter;
import jakarta.json.bind.annotation.JsonbTypeSerializer;
import jakarta.json.bind.serializer.JsonbDeserializer;
import jakarta.json.bind.serializer.JsonbSerializer;
import org.eclipse.yasson.internal.components.AbstractComponentBinding;
import org.eclipse.yasson.internal.components.AdapterBinding;
import org.eclipse.yasson.internal.components.ComponentBindings;
import org.eclipse.yasson.internal.components.DeserializerBinding;
import org.eclipse.yasson.internal.components.SerializerBinding;
import org.eclipse.yasson.internal.model.customization.ComponentBoundCustomization;
/**
* Searches for a registered components or Serializer for a given type.
*/
public class ComponentMatcher {
private final JsonbContext jsonbContext;
/**
* Flag for searching for generic serializers and adapters in runtime.
*/
private volatile boolean genericComponents;
private final ConcurrentMap<Type, ComponentBindings> userComponents;
/**
* Create component matcher.
*
* @param context mandatory
*/
ComponentMatcher(JsonbContext context) {
Objects.requireNonNull(context);
this.jsonbContext = context;
userComponents = new ConcurrentHashMap<>();
init();
}
/**
* Called during context creation, introspecting user components provided with JsonbConfig.
*/
void init() {
final JsonbSerializer<?>[] serializers = (JsonbSerializer<?>[]) jsonbContext.getConfig()
.getProperty(JsonbConfig.SERIALIZERS).orElseGet(() -> new JsonbSerializer<?>[] {});
for (JsonbSerializer<?> serializer : serializers) {
SerializerBinding<?> serializerBinding = introspectSerializerBinding(serializer.getClass(), serializer);
addSerializer(serializerBinding.getBindingType(), serializerBinding);
}
final JsonbDeserializer<?>[] deserializers = (JsonbDeserializer<?>[]) jsonbContext.getConfig()
.getProperty(JsonbConfig.DESERIALIZERS).orElseGet(() -> new JsonbDeserializer<?>[] {});
for (JsonbDeserializer<?> deserializer : deserializers) {
DeserializerBinding<?> deserializerBinding = introspectDeserializerBinding(deserializer.getClass(), deserializer);
addDeserializer(deserializerBinding.getBindingType(), deserializerBinding);
}
final JsonbAdapter<?, ?>[] adapters = (JsonbAdapter<?, ?>[]) jsonbContext.getConfig().getProperty(JsonbConfig.ADAPTERS)
.orElseGet(() -> new JsonbAdapter<?, ?>[] {});
for (JsonbAdapter<?, ?> adapter : adapters) {
AdapterBinding adapterBinding = introspectAdapterBinding(adapter.getClass(), adapter);
addAdapter(adapterBinding.getBindingType(), adapterBinding);
}
}
private ComponentBindings getBindingInfo(Type type) {
return userComponents
.compute(type, (type1, bindingInfo) -> bindingInfo != null ? bindingInfo : new ComponentBindings(type1));
}
private void addSerializer(Type bindingType, SerializerBinding<?> serializer) {
userComponents.computeIfPresent(bindingType, (type, bindings) -> {
if (bindings.getSerializer() != null) {
return bindings;
}
registerGeneric(bindingType);
return new ComponentBindings(bindingType, serializer, bindings.getDeserializer(), bindings.getAdapterInfo());
});
}
private void addDeserializer(Type bindingType, DeserializerBinding<?> deserializer) {
userComponents.computeIfPresent(bindingType, (type, bindings) -> {
if (bindings.getDeserializer() != null) {
return bindings;
}
registerGeneric(bindingType);
return new ComponentBindings(bindingType, bindings.getSerializer(), deserializer, bindings.getAdapterInfo());
});
}
private void addAdapter(Type bindingType, AdapterBinding adapter) {
userComponents.computeIfPresent(bindingType, (type, bindings) -> {
if (bindings.getAdapterInfo() != null) {
return bindings;
}
registerGeneric(bindingType);
return new ComponentBindings(bindingType, bindings.getSerializer(), bindings.getDeserializer(), adapter);
});
}
/**
* If type is not parametrized runtime component resolution doesn't has to happen.
*
* @param bindingType component binding type
*/
private void registerGeneric(Type bindingType) {
if (bindingType instanceof ParameterizedType && !genericComponents) {
genericComponents = true;
}
}
/**
* Lookup serializer binding for a given property runtime type.
*
* @param propertyRuntimeType runtime type of a property
* @param customization with component info
* @return serializer optional
*/
public Optional<SerializerBinding<?>> getSerializerBinding(Type propertyRuntimeType,
ComponentBoundCustomization customization) {
if (customization == null || customization.getSerializerBinding() == null) {
return searchComponentBinding(propertyRuntimeType, ComponentBindings::getSerializer, this::getAnnotationBasedSerializer);
}
final SerializerBinding<?> binding = customization.getSerializerBinding();
// If the binding type exactly matches the runtime type, use it (optimization)
if (binding.getBindingType().equals(propertyRuntimeType)) {
return Optional.of(binding);
}
// Special handling for Object type: search for more specific serializers based on runtime type
// This allows annotation-based or config-based serializers on concrete types to be found
// when the property is declared as Object but has a specific runtime type
if (Object.class.equals(binding.getBindingType())) {
final Optional<SerializerBinding<?>> moreSpecific = searchComponentBinding(propertyRuntimeType,
ComponentBindings::getSerializer, this::getAnnotationBasedSerializer);
if (moreSpecific.isPresent()) {
return moreSpecific;
}
}
// Use the customization binding (user explicitly configured it for this property)
return Optional.of(binding);
}
/**
* Lookup deserializer binding for a given property runtime type.
*
* @param propertyRuntimeType runtime type of a property
* @param customization customization with component info
* @return serializer optional
*/
public Optional<DeserializerBinding<?>> getDeserializerBinding(Type propertyRuntimeType,
ComponentBoundCustomization customization) {
if (customization == null || customization.getDeserializerBinding() == null) {
return searchComponentBinding(propertyRuntimeType, ComponentBindings::getDeserializer);
}
return Optional.of(customization.getDeserializerBinding());
}
/**
* Get components from property model (if declared by annotation and runtime type matches),
* or return components searched by runtime type.
*
* @param propertyRuntimeType runtime type not null
* @param customization customization with component info
* @return components info if present
*/
public Optional<AdapterBinding> getSerializeAdapterBinding(Type propertyRuntimeType,
ComponentBoundCustomization customization) {
if (customization == null || customization.getSerializeAdapterBinding() == null) {
return searchComponentBinding(propertyRuntimeType, ComponentBindings::getAdapterInfo);
}
// Check if the customization's adapter binding matches the runtime type
AdapterBinding binding = customization.getSerializeAdapterBinding();
if (matches(propertyRuntimeType, binding.getBindingType())) {
return Optional.of(binding);
}
// The annotation-based adapter doesn't match the runtime type,
// fall through to search for a better match based on runtime type
return searchComponentBinding(propertyRuntimeType, ComponentBindings::getAdapterInfo);
}
/**
* Get components from property model (if declared by annotation and runtime type matches),
* or return components searched by runtime type.
*
* @param propertyRuntimeType runtime type not null
* @param customization customization with component info
* @return components info if present
*/
public Optional<AdapterBinding> getDeserializeAdapterBinding(Type propertyRuntimeType,
ComponentBoundCustomization customization) {
if (customization == null || customization.getDeserializeAdapterBinding() == null) {
return searchComponentBinding(propertyRuntimeType, ComponentBindings::getAdapterInfo);
}
return Optional.of(customization.getDeserializeAdapterBinding());
}
/**
* Search for a component binding for the given runtime type.
*
* @param runtimeType The runtime type to find a component for
* @param supplier Function to extract the desired component from ComponentBindings
* @param annotationDiscovery Optional function for runtime annotation discovery (null if not applicable)
* @param <T> The type of component binding to search for
* @return Optional containing the component binding if found
*/
private <T extends AbstractComponentBinding> Optional<T> searchComponentBinding(
Type runtimeType,
Function<ComponentBindings, T> supplier,
Function<Class<?>, Optional<T>> annotationDiscovery) {
// First check if there is an exact match
ComponentBindings binding = userComponents.get(runtimeType);
if (binding != null) {
Optional<T> match = getMatchingBinding(runtimeType, binding, supplier);
if (match.isPresent()) {
return match;
}
}
Optional<Class<?>> runtimeClass = ReflectionUtils.getOptionalRawType(runtimeType);
if (runtimeClass.isPresent()) {
// Check for annotation-based component on the runtime type itself
// Currently only used for @JsonbTypeSerializer during serialization
if (annotationDiscovery != null) {
Optional<T> annotationBased = annotationDiscovery.apply(runtimeClass.get());
if (annotationBased.isPresent()) {
return annotationBased;
}
}
// Check if any interfaces have a match
for (Class<?> ifc : runtimeClass.get().getInterfaces()) {
ComponentBindings ifcBinding = userComponents.get(ifc);
if (ifcBinding != null) {
Optional<T> match = getMatchingBinding(ifc, ifcBinding, supplier);
if (match.isPresent()) {
return match;
}
}
}
// check if the superclass has a match
Class<?> superClass = runtimeClass.get().getSuperclass();
if (superClass != null && superClass != Object.class) {
Optional<T> superBinding = searchComponentBinding(superClass, supplier, annotationDiscovery);
if (superBinding.isPresent()) {
return superBinding;
}
}
}
return Optional.empty();
}
// Convenience overload for components without annotation discovery (deserializers, adapters)
private <T extends AbstractComponentBinding> Optional<T> searchComponentBinding(
final Type runtimeType,
final Function<ComponentBindings, T> supplier) {
return searchComponentBinding(runtimeType, supplier, null);
}
/**
* Discovers and caches a serializer defined by @JsonbTypeSerializer annotation on a runtime type.
*
* <p>This method performs <strong>runtime</strong> annotation discovery during serialization,
* which is distinct from the build-time annotation introspection performed by AnnotationIntrospector.
* It is invoked when serializing a property where the runtime type is more specific than the
* declared type (e.g., a property declared as {@code Object} containing an instance of a class
* annotated with @JsonbTypeSerializer).</p>
*
* <p>Note: Only @JsonbTypeSerializer is checked, not @JsonbTypeAdapter or @JsonbTypeDeserializer,
* because:</p>
* <ul>
* <li>Serializers are unidirectional (serialization only), so runtime discovery is complete</li>
* <li>Deserializers don't apply - we lack runtime type information during deserialization</li>
* <li>Adapters are bidirectional - discovering them only at runtime during serialization
* would be incomplete since they couldn't be discovered during deserialization</li>
* </ul>
*
* @param clazz The runtime class to check for @JsonbTypeSerializer annotation
* @return SerializerBinding if annotation is present and successfully introspected, empty otherwise
*/
private Optional<SerializerBinding<?>> getAnnotationBasedSerializer(final Class<?> clazz) {
// Check if the class has a @JsonbTypeSerializer annotation
final JsonbTypeSerializer annotation = clazz.getAnnotation(JsonbTypeSerializer.class);
if (annotation == null) {
return Optional.empty();
}
// Thread-safe get-or-create using compute
final SerializerBinding<?> binding = userComponents.compute(clazz, (type, bindings) -> {
// If already cached, return as-is
if (bindings != null && bindings.getSerializer() != null) {
return bindings;
}
// Create new serializer binding
final Class<? extends JsonbSerializer> serializerClass = annotation.value();
final JsonbSerializer<?> serializer = jsonbContext.getComponentInstanceCreator().getOrCreateComponent(serializerClass);
final SerializerBinding<?> newBinding = new SerializerBinding<>(clazz, serializer);
// Create or update ComponentBindings
if (bindings == null) {
return new ComponentBindings(clazz, newBinding, null, null);
}
return new ComponentBindings(clazz, newBinding, bindings.getDeserializer(), bindings.getAdapterInfo());
}).getSerializer();
return Optional.ofNullable(binding);
}
private <T> Optional<T> getMatchingBinding(Type runtimeType, ComponentBindings binding, Function<ComponentBindings, T> supplier) {
final T component = supplier.apply(binding);
if (component != null && matches(runtimeType, binding.getBindingType())) {
return Optional.of(component);
}
return Optional.empty();
}
private boolean matches(Type runtimeType, Type componentBindingType) {
if (componentBindingType.equals(runtimeType)) {
return true;
}
if (componentBindingType instanceof Class && runtimeType instanceof Class) {
return ((Class<?>) componentBindingType).isAssignableFrom((Class<?>) runtimeType);
}
//don't try to runtime generic scan if not needed
if (!genericComponents) {
return false;
}
return runtimeType instanceof ParameterizedType && componentBindingType instanceof ParameterizedType
&& ReflectionUtils.getRawType(componentBindingType).isAssignableFrom(ReflectionUtils.getRawType(runtimeType))
&& matchTypeArguments((ParameterizedType) runtimeType, (ParameterizedType) componentBindingType);
}
/**
* If runtimeType to adapt is a ParametrizedType, check all type args to match against components args.
*/
private boolean matchTypeArguments(ParameterizedType requiredType, ParameterizedType componentBound) {
final Type[] requiredTypeArguments = requiredType.getActualTypeArguments();
final Type[] adapterBoundTypeArguments = componentBound.getActualTypeArguments();
if (requiredTypeArguments.length != adapterBoundTypeArguments.length) {
return false;
}
for (int i = 0; i < requiredTypeArguments.length; i++) {
Type adapterTypeArgument = adapterBoundTypeArguments[i];
if (!requiredTypeArguments[i].equals(adapterTypeArgument)) {
return false;
}
}
return true;
}
/**
* Introspect components generic information and put resolved types into metadata wrapper.
*
* @param adapterClass class of an components
* @param instance components instance
* @return introspected info with resolved typevar types.
*/
AdapterBinding introspectAdapterBinding(Class<? extends JsonbAdapter> adapterClass, JsonbAdapter instance) {
final ParameterizedType adapterRuntimeType = ReflectionUtils.findParameterizedType(adapterClass, JsonbAdapter.class);
final Type[] adapterTypeArguments = adapterRuntimeType.getActualTypeArguments();
Type adaptFromType = resolveTypeArg(adapterTypeArguments[0], adapterClass);
Type adaptToType = resolveTypeArg(adapterTypeArguments[1], adapterClass);
final ComponentBindings componentBindings = getBindingInfo(adaptFromType);
if (componentBindings.getAdapterInfo() != null && componentBindings.getAdapterInfo().getAdapter().getClass()
.equals(adapterClass)) {
return componentBindings.getAdapterInfo();
}
JsonbAdapter newAdapter = instance != null
? instance
: jsonbContext.getComponentInstanceCreator().getOrCreateComponent(adapterClass);
return new AdapterBinding(adaptFromType, adaptToType, newAdapter);
}
/**
* If an instance of deserializerClass is present in context and is bound for same type, return that instance.
* Otherwise create new instance and set it to context.
*
* @param deserializerClass class of deserializer
* @param instance instance to use if not cached already
* @return wrapper used in property models
*/
@SuppressWarnings("unchecked")
DeserializerBinding introspectDeserializerBinding(Class<? extends JsonbDeserializer> deserializerClass,
JsonbDeserializer instance) {
final ParameterizedType deserializerRuntimeType = ReflectionUtils
.findParameterizedType(deserializerClass, JsonbDeserializer.class);
Type deserializerBindingType = resolveTypeArg(deserializerRuntimeType.getActualTypeArguments()[0], deserializerClass);
final ComponentBindings componentBindings = getBindingInfo(deserializerBindingType);
if (componentBindings.getDeserializer() != null && componentBindings.getDeserializer().getClass()
.equals(deserializerClass)) {
return componentBindings.getDeserializer();
} else {
JsonbDeserializer deserializer = instance != null ? instance : jsonbContext.getComponentInstanceCreator()
.getOrCreateComponent(deserializerClass);
return new DeserializerBinding(deserializerBindingType, deserializer);
}
}
/**
* If an instance of serializerClass is present in context and is bound for same type, return that instance.
* Otherwise create new instance and set it to context.
*
* @param serializerClass class of deserializer
* @param instance instance to use if not cached
* @return wrapper used in property models
*/
@SuppressWarnings("unchecked")
SerializerBinding introspectSerializerBinding(Class<? extends JsonbSerializer> serializerClass, JsonbSerializer instance) {
final ParameterizedType serializerRuntimeType = ReflectionUtils
.findParameterizedType(serializerClass, JsonbSerializer.class);
Type serBindingType = resolveTypeArg(serializerRuntimeType.getActualTypeArguments()[0], serializerClass);
final ComponentBindings componentBindings = getBindingInfo(serBindingType);
if (componentBindings.getSerializer() != null && componentBindings.getSerializer().getClass().equals(serializerClass)) {
return componentBindings.getSerializer();
} else {
JsonbSerializer serializer = instance != null ? instance : jsonbContext.getComponentInstanceCreator()
.getOrCreateComponent(serializerClass);
return new SerializerBinding(serBindingType, serializer);
}
}
private Type resolveTypeArg(Type adapterTypeArg, Type adapterType) {
if (adapterTypeArg instanceof ParameterizedType) {
return ReflectionUtils.resolveTypeArguments((ParameterizedType) adapterTypeArg, adapterType);
} else if (adapterTypeArg instanceof TypeVariable) {
LinkedList<Type> chain = new LinkedList<>();
chain.add(adapterType);
return ReflectionUtils.resolveItemVariableType(chain, (TypeVariable<?>) adapterTypeArg, true);
} else {
return adapterTypeArg;
}
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java
================================================
/*
* Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.reflect.Constructor;
import java.lang.reflect.Executable;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;
import java.util.Arrays;
import java.util.logging.Logger;
import org.eclipse.yasson.internal.model.CreatorModel;
import org.eclipse.yasson.internal.model.JsonbCreator;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
class ConstructorPropertiesAnnotationIntrospector {
private static final Logger LOG = Logger.getLogger(ConstructorPropertiesAnnotationIntrospector.class.getName());
private final JsonbContext jsonbContext;
private final AnnotationFinder constructorProperties;
public static ConstructorPropertiesAnnotationIntrospector forContext(JsonbContext jsonbContext) {
return new ConstructorPropertiesAnnotationIntrospector(jsonbContext, AnnotationFinder.findConstructorProperties());
}
/**
* Only for testing and internal purposes.
* <p>
* Please use static factory methods e.g. {@link #forContext(JsonbContext)}.
*
* @param context {@link JsonbContext}
* @param annotationFinder {@link AnnotationFinder}
*/
protected ConstructorPropertiesAnnotationIntrospector(JsonbContext context, AnnotationFinder annotationFinder) {
this.jsonbContext = context;
this.constructorProperties = annotationFinder;
}
public JsonbCreator getCreator(Constructor<?>[] constructors) {
JsonbCreator jsonbCreator = null;
for (Constructor<?> constructor : constructors) {
Object properties = constructorProperties.valueIn(constructor.getDeclaredAnnotations());
if (!(properties instanceof String[])) {
continue;
}
if (!Modifier.isPublic(constructor.getModifiers())) {
String declaringClass = constructor.getDeclaringClass().getName();
String message = "The constructor of {0} annotated with @ConstructorProperties {1} is not accessible and will "
+ "be ignored.";
LOG.finest(String.format(message, declaringClass, Arrays.toString((String[]) properties)));
continue;
}
if (jsonbCreator != null) {
// don't fail in this case, because it is perfectly allowed to have more than one
// @ConstructorProperties-Annotation in general.
// It is just undefined, which constructor to choose for JSON in this case.
// The behavior should be the same (null), as if there is no ConstructorProperties-Annotation at all.
LOG.warning(Messages.getMessage(MessageKeys.MULTIPLE_CONSTRUCTOR_PROPERTIES_CREATORS,
constructor.getDeclaringClass().getName()));
return null;
}
jsonbCreator = createJsonbCreator(constructor, (String[]) properties);
}
return jsonbCreator;
}
private JsonbCreator createJsonbCreator(Executable executable, String[] properties) {
final Parameter[] parameters = executable.getParameters();
CreatorModel[] creatorModels = new CreatorModel[parameters.length];
for (int i = 0; i < parameters.length; i++) {
final Parameter parameter = parameters[i];
creatorModels[i] = new CreatorModel(properties[i], parameter, executable, jsonbContext);
}
return new JsonbCreator(executable, creatorModels);
}
@Override
public String toString() {
return "ConstructorPropertiesAnnotationIntrospector [jsonbContext=" + jsonbContext + ", constructorProperties=" + constructorProperties + "]";
}
}
================================================
FILE: src/main/java/org/eclipse/yasson/internal/DeserializationContextImpl.java
================================================
/*
* Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.yasson.internal;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import jakarta.json.bind.JsonbException;
import jakarta.json.bind.serializer.DeserializationContext;
import jakarta.json.stream.JsonParser;
import org.eclipse.yasson.internal.deserializer.ModelDeserializer;
import org.eclipse.yasson.internal.model.customization.ClassCustomization;
import org.eclipse.yasson.internal.model.customization.Customization;
import org.eclipse.yasson.internal.properties.MessageKeys;
import org.eclipse.yasson.internal.properties.Messages;
/**
* Deserialization context implementation.
*/
public class DeserializationContextImpl extends ProcessingContext implements DeserializationContext {
private final List<Runnable> delayedSetters = new ArrayList<>();
private JsonParser.Event lastValueEvent;
private Customization customization = ClassCustomization.empty();
private Object instance;
/**
* Parent instance for marshaller and unmarshaller.
*
* @param jsonbContext context of Jsonb
*/
public DeserializationContextImpl(JsonbContext jsonbContext) {
super(jsonbContext);
}
/**
* Create new instance based on previous context.
*
* @param context previous deserialization context
*/
public DeserializationContextImpl(DeserializationContextImpl context) {
super(context.getJsonbContext());
this.lastValueEvent = context.lastValueEvent;
}
/**
* Return instance of currently deserialized type.
*
* @return null if instance has not been created yet
*/
public Object getInstance() {
return instance;
}
/**
* Set currently deserialized type instance.
*
* @param instance deserialized type instance
*/
public void setInstance(Object instance) {
this.instance = instance;
}
/**
* Return the list of deferred deserializers.
*
* @return list of deferred deserializers
*/
public List<Runnable> getDeferredDeserializers() {
return delayedSetters;
}
/**
* Return last obtained {@link JsonParser.Event} event.
*
* @return last obtained event
*/
public JsonParser.Event getLastValueEvent() {
return lastValueEvent;
}
/**
* Set last obtained {@link JsonParser.Event} event.
*
* @param lastValueEvent last obtained event
*/
public void setLastValueEvent(JsonParser.Event lastValueEvent) {
this.lastValueEvent = lastValueEvent;
}
/**
* Return customization used by currently processed user defined deserializer.
*
* @return currently used customization
*/
public Customization getCustomization() {
return customization;
}
/**
* Set customization used by currently processed user defined deserializer.
*
* @param customization currently used customization
*/
public void setCustomization(Customization customization) {
this.customization = customization;
}
@Override
public <T> T deserialize(Class<T> clazz, JsonParser parser) {
return deserializeItem(clazz, parser);
}
@Override
public <T> T deserialize(Type type, JsonParser parser) {
return deserializ
gitextract_u4tfpvr0/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── other-issue.md
│ ├── dependabot.yml
│ └── workflows/
│ └── maven.yml
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE.md
├── NOTICE.md
├── README.md
├── etc/
│ ├── checkstyle-suppressions.xml
│ ├── checkstyle.xml
│ ├── copyright-exclude.txt
│ ├── copyright.sh
│ ├── copyright.txt
│ └── delivery-checks.sh
├── pom.xml
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── module-info.java
│ │ │ └── org/
│ │ │ └── eclipse/
│ │ │ └── yasson/
│ │ │ ├── FieldAccessStrategy.java
│ │ │ ├── ImplementationClass.java
│ │ │ ├── JsonBindingProvider.java
│ │ │ ├── YassonConfig.java
│ │ │ ├── YassonJsonb.java
│ │ │ ├── YassonProperties.java
│ │ │ ├── internal/
│ │ │ │ ├── AnnotationFinder.java
│ │ │ │ ├── AnnotationIntrospector.java
│ │ │ │ ├── BuiltInTypes.java
│ │ │ │ ├── ClassMultiReleaseExtension.java
│ │ │ │ ├── ClassParser.java
│ │ │ │ ├── ComponentMatcher.java
│ │ │ │ ├── ConstructorPropertiesAnnotationIntrospector.java
│ │ │ │ ├── DeserializationContextImpl.java
│ │ │ │ ├── InstanceCreator.java
│ │ │ │ ├── JsonBinding.java
│ │ │ │ ├── JsonBindingBuilder.java
│ │ │ │ ├── JsonbConfigProperties.java
│ │ │ │ ├── JsonbContext.java
│ │ │ │ ├── JsonbDateFormatter.java
│ │ │ │ ├── JsonbNumberFormatter.java
│ │ │ │ ├── MappingContext.java
│ │ │ │ ├── ProcessingContext.java
│ │ │ │ ├── ReflectionUtils.java
│ │ │ │ ├── ResolvedParameterizedType.java
│ │ │ │ ├── SerializationContextImpl.java
│ │ │ │ ├── VariableTypeInheritanceSearch.java
│ │ │ │ ├── components/
│ │ │ │ │ ├── AbstractComponentBinding.java
│ │ │ │ │ ├── AdapterBinding.java
│ │ │ │ │ ├── BeanManagerInstanceCreator.java
│ │ │ │ │ ├── ComponentBindings.java
│ │ │ │ │ ├── DefaultConstructorCreator.java
│ │ │ │ │ ├── DeserializerBinding.java
│ │ │ │ │ ├── JsonbComponentInstanceCreatorFactory.java
│ │ │ │ │ └── SerializerBinding.java
│ │ │ │ ├── deserializer/
│ │ │ │ │ ├── AdapterDeserializer.java
│ │ │ │ │ ├── ArrayDeserializer.java
│ │ │ │ │ ├── ArrayInstanceCreator.java
│ │ │ │ │ ├── CollectionDeserializer.java
│ │ │ │ │ ├── CollectionInstanceCreator.java
│ │ │ │ │ ├── ContextSwitcher.java
│ │ │ │ │ ├── CyclicReferenceDeserializer.java
│ │ │ │ │ ├── DefaultObjectInstanceCreator.java
│ │ │ │ │ ├── DeferredDeserializer.java
│ │ │ │ │ ├── DeserializationModelCreator.java
│ │ │ │ │ ├── InheritanceInstanceCreator.java
│ │ │ │ │ ├── JsonbCreatorDeserializer.java
│ │ │ │ │ ├── JustReturn.java
│ │ │ │ │ ├── MapDeserializer.java
│ │ │ │ │ ├── MapInstanceCreator.java
│ │ │ │ │ ├── ModelDeserializer.java
│ │ │ │ │ ├── NullCheckDeserializer.java
│ │ │ │ │ ├── ObjectDeserializer.java
│ │ │ │ │ ├── OptionalDeserializer.java
│ │ │ │ │ ├── PositionChecker.java
│ │ │ │ │ ├── RequiredCreatorParameter.java
│ │ │ │ │ ├── UserDefinedDeserializer.java
│ │ │ │ │ ├── ValueExtractor.java
│ │ │ │ │ ├── ValueSetterDeserializer.java
│ │ │ │ │ ├── YassonParser.java
│ │ │ │ │ └── types/
│ │ │ │ │ ├── AbstractDateDeserializer.java
│ │ │ │ │ ├── AbstractNumberDeserializer.java
│ │ │ │ │ ├── BigDecimalDeserializer.java
│ │ │ │ │ ├── BigIntegerDeserializer.java
│ │ │ │ │ ├── BooleanDeserializer.java
│ │ │ │ │ ├── ByteDeserializer.java
│ │ │ │ │ ├── CalendarDeserializer.java
│ │ │ │ │ ├── CharDeserializer.java
│ │ │ │ │ ├── DateDeserializer.java
│ │ │ │ │ ├── DoubleDeserializer.java
│ │ │ │ │ ├── DurationDeserializer.java
│ │ │ │ │ ├── EnumDeserializer.java
│ │ │ │ │ ├── FloatDeserializer.java
│ │ │ │ │ ├── InstantDeserializer.java
│ │ │ │ │ ├── IntegerDeserializer.java
│ │ │ │ │ ├── JsonValueDeserializer.java
│ │ │ │ │ ├── LocalDateDeserializer.java
│ │ │ │ │ ├── LocalDateTimeDeserializer.java
│ │ │ │ │ ├── LocalTimeDeserializer.java
│ │ │ │ │ ├── LongDeserializer.java
│ │ │ │ │ ├── MonthDayTypeDeserializer.java
│ │ │ │ │ ├── NumberDeserializer.java
│ │ │ │ │ ├── ObjectTypeDeserializer.java
│ │ │ │ │ ├── OffsetDateTimeDeserializer.java
│ │ │ │ │ ├── OffsetTimeDeserializer.java
│ │ │ │ │ ├── OptionalDoubleDeserializer.java
│ │ │ │ │ ├── OptionalIntDeserializer.java
│ │ │ │ │ ├── OptionalLongDeserializer.java
│ │ │ │ │ ├── PathDeserializer.java
│ │ │ │ │ ├── PeriodDeserializer.java
│ │ │ │ │ ├── ShortDeserializer.java
│ │ │ │ │ ├── SqlDateDeserializer.java
│ │ │ │ │ ├── SqlTimestampDeserializer.java
│ │ │ │ │ ├── StringDeserializer.java
│ │ │ │ │ ├── TimeZoneDeserializer.java
│ │ │ │ │ ├── TypeDeserializer.java
│ │ │ │ │ ├── TypeDeserializerBuilder.java
│ │ │ │ │ ├── TypeDeserializers.java
│ │ │ │ │ ├── UriDeserializer.java
│ │ │ │ │ ├── UrlDeserializer.java
│ │ │ │ │ ├── UuidDeserializer.java
│ │ │ │ │ ├── XmlGregorianCalendarDeserializer.java
│ │ │ │ │ ├── YearMonthTypeDeserializer.java
│ │ │ │ │ ├── ZoneIdDeserializer.java
│ │ │ │ │ ├── ZoneOffsetDeserializer.java
│ │ │ │ │ └── ZonedDateTimeDeserializer.java
│ │ │ │ ├── jsonstructure/
│ │ │ │ │ ├── JsonArrayBuilder.java
│ │ │ │ │ ├── JsonArrayIterator.java
│ │ │ │ │ ├── JsonGeneratorToStructureAdapter.java
│ │ │ │ │ ├── JsonObjectBuilder.java
│ │ │ │ │ ├── JsonObjectIterator.java
│ │ │ │ │ ├── JsonStructureBuilder.java
│ │ │ │ │ ├── JsonStructureIterator.java
│ │ │ │ │ └── JsonStructureToParserAdapter.java
│ │ │ │ ├── model/
│ │ │ │ │ ├── AnnotationTarget.java
│ │ │ │ │ ├── ClassModel.java
│ │ │ │ │ ├── CreatorModel.java
│ │ │ │ │ ├── JsonbAnnotatedElement.java
│ │ │ │ │ ├── JsonbCreator.java
│ │ │ │ │ ├── ModulesUtil.java
│ │ │ │ │ ├── Property.java
│ │ │ │ │ ├── PropertyModel.java
│ │ │ │ │ ├── ReverseTreeMap.java
│ │ │ │ │ └── customization/
│ │ │ │ │ ├── ClassCustomization.java
│ │ │ │ │ ├── ComponentBoundCustomization.java
│ │ │ │ │ ├── CreatorCustomization.java
│ │ │ │ │ ├── Customization.java
│ │ │ │ │ ├── CustomizationBase.java
│ │ │ │ │ ├── PropertyCustomization.java
│ │ │ │ │ ├── PropertyOrdering.java
│ │ │ │ │ ├── StrategiesProvider.java
│ │ │ │ │ ├── TypeInheritanceConfiguration.java
│ │ │ │ │ └── VisibilityStrategiesProvider.java
│ │ │ │ ├── properties/
│ │ │ │ │ ├── MessageKeys.java
│ │ │ │ │ └── Messages.java
│ │ │ │ └── serializer/
│ │ │ │ ├── AbstractSerializer.java
│ │ │ │ ├── AdapterSerializer.java
│ │ │ │ ├── ArraySerializer.java
│ │ │ │ ├── CollectionSerializer.java
│ │ │ │ ├── CyclicReferenceSerializer.java
│ │ │ │ ├── KeyWriter.java
│ │ │ │ ├── MapSerializer.java
│ │ │ │ ├── ModelSerializer.java
│ │ │ │ ├── NullSerializer.java
│ │ │ │ ├── NullVisibilitySwitcher.java
│ │ │ │ ├── ObjectSerializer.java
│ │ │ │ ├── OptionalSerializer.java
│ │ │ │ ├── RecursionChecker.java
│ │ │ │ ├── SerializationModelCreator.java
│ │ │ │ ├── SerializerBuilderParams.java
│ │ │ │ ├── UserDefinedSerializer.java
│ │ │ │ ├── ValueGetterSerializer.java
│ │ │ │ ├── YassonGenerator.java
│ │ │ │ └── types/
│ │ │ │ ├── AbstractDateSerializer.java
│ │ │ │ ├── AbstractNumberSerializer.java
│ │ │ │ ├── BigDecimalSerializer.java
│ │ │ │ ├── BigIntegerSerializer.java
│ │ │ │ ├── BooleanSerializer.java
│ │ │ │ ├── ByteSerializer.java
│ │ │ │ ├── CalendarSerializer.java
│ │ │ │ ├── CharSerializer.java
│ │ │ │ ├── DateSerializer.java
│ │ │ │ ├── DoubleSerializer.java
│ │ │ │ ├── DurationSerializer.java
│ │ │ │ ├── EnumSerializer.java
│ │ │ │ ├── FloatSerializer.java
│ │ │ │ ├── InstantSerializer.java
│ │ │ │ ├── IntegerSerializer.java
│ │ │ │ ├── JsonValueSerializer.java
│ │ │ │ ├── LocalDateSerializer.java
│ │ │ │ ├── LocalDateTimeSerializer.java
│ │ │ │ ├── LocalTimeSerializer.java
│ │ │ │ ├── LongSerializer.java
│ │ │ │ ├── MonthDayTypeSerializer.java
│ │ │ │ ├── NumberSerializer.java
│ │ │ │ ├── ObjectTypeSerializer.java
│ │ │ │ ├── OffsetDateTimeSerializer.java
│ │ │ │ ├── OffsetTimeSerializer.java
│ │ │ │ ├── OptionalDoubleSerializer.java
│ │ │ │ ├── OptionalIntSerializer.java
│ │ │ │ ├── OptionalLongSerializer.java
│ │ │ │ ├── PathSerializer.java
│ │ │ │ ├── PeriodSerializer.java
│ │ │ │ ├── ShortSerializer.java
│ │ │ │ ├── SqlDateSerializer.java
│ │ │ │ ├── SqlTimestampSerializer.java
│ │ │ │ ├── StringSerializer.java
│ │ │ │ ├── TimeZoneSerializer.java
│ │ │ │ ├── TypeSerializer.java
│ │ │ │ ├── TypeSerializerBuilder.java
│ │ │ │ ├── TypeSerializers.java
│ │ │ │ ├── UriSerializer.java
│ │ │ │ ├── UrlSerializer.java
│ │ │ │ ├── UuidSerializer.java
│ │ │ │ ├── XmlGregorianCalendarSerializer.java
│ │ │ │ ├── YearMonthTypeSerializer.java
│ │ │ │ ├── ZoneIdSerializer.java
│ │ │ │ ├── ZoneOffsetSerializer.java
│ │ │ │ └── ZonedDateTimeSerializer.java
│ │ │ └── spi/
│ │ │ └── JsonbComponentInstanceCreator.java
│ │ ├── java16/
│ │ │ └── org/
│ │ │ └── eclipse/
│ │ │ └── yasson/
│ │ │ └── internal/
│ │ │ └── ClassMultiReleaseExtension.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── native-image/
│ │ │ │ └── org.eclipse/
│ │ │ │ └── yasson/
│ │ │ │ └── native-image.properties
│ │ │ └── services/
│ │ │ └── jakarta.json.bind.spi.JsonbProvider
│ │ └── yasson-messages.properties
│ └── test/
│ ├── java/
│ │ ├── PackagelessClassTest.java
│ │ ├── PackagelessModel.java
│ │ └── org/
│ │ └── eclipse/
│ │ └── yasson/
│ │ ├── Assertions.java
│ │ ├── DefaultGetterInInterface.java
│ │ ├── FieldAccessStrategyTest.java
│ │ ├── Issue454Test.java
│ │ ├── Issue456Test.java
│ │ ├── JavaxNamingExcludedTest.java
│ │ ├── Jsonbs.java
│ │ ├── SimpleTest.java
│ │ ├── TestTypeToken.java
│ │ ├── YassonConfigTest.java
│ │ ├── adapters/
│ │ │ ├── AdaptersTest.java
│ │ │ ├── JsonbTypeAdapterTest.java
│ │ │ └── model/
│ │ │ ├── AdaptedPojo.java
│ │ │ ├── Author.java
│ │ │ ├── Box.java
│ │ │ ├── BoxToCrateCompatibleGenericsAdapter.java
│ │ │ ├── BoxToCratePropagatedIntegerStringAdapter.java
│ │ │ ├── BoxToCratePropagatedTypeArgsAdapter.java
│ │ │ ├── BoxToJsonObjectAdapter.java
│ │ │ ├── BoxWithAdapter.java
│ │ │ ├── BoxWithAdapterAdapter.java
│ │ │ ├── BoxWithDeserializer.java
│ │ │ ├── BoxWithDeserializerDeserializer.java
│ │ │ ├── BoxWithSerializer.java
│ │ │ ├── BoxWithSerializerSerializer.java
│ │ │ ├── Chain.java
│ │ │ ├── ChainAdapter.java
│ │ │ ├── ChainSerializer.java
│ │ │ ├── Crate.java
│ │ │ ├── FirstNameAdapter.java
│ │ │ ├── Foo.java
│ │ │ ├── FooAdapter.java
│ │ │ ├── FooSerializer.java
│ │ │ ├── GenericBox.java
│ │ │ ├── GenericCrate.java
│ │ │ ├── IntegerListToStringAdapter.java
│ │ │ ├── JsonObjectPojo.java
│ │ │ ├── LocalPolymorphicAdapter.java
│ │ │ ├── LocalTypeWrapper.java
│ │ │ ├── MultiinterfaceAdapter.java
│ │ │ ├── MultilevelAdapterClass.java
│ │ │ ├── NumberAdapter.java
│ │ │ ├── ReturnNullAdapter.java
│ │ │ ├── SerializableAdapter.java
│ │ │ ├── SupertypeAdapterPojo.java
│ │ │ ├── UUIDContainer.java
│ │ │ ├── UUIDMapperClsBased.java
│ │ │ └── UUIDMapperIfcBased.java
│ │ ├── customization/
│ │ │ ├── AnnotationInheritanceTest.java
│ │ │ ├── EncodingTest.java
│ │ │ ├── ImplementationClassTest.java
│ │ │ ├── InterfaceAnnotationsTest.java
│ │ │ ├── JsonbCreatorTest.java
│ │ │ ├── JsonbDateFormatterTest.java
│ │ │ ├── JsonbNillableTest.java
│ │ │ ├── JsonbPropertyTest.java
│ │ │ ├── JsonbPropertyVisibilityStrategyTest.java
│ │ │ ├── NumberFormatTest.java
│ │ │ ├── PrettyPrintTest.java
│ │ │ ├── PropertyOrderTest.java
│ │ │ ├── YassonSpecificConfigTests.java
│ │ │ ├── model/
│ │ │ │ ├── Animal.java
│ │ │ │ ├── CollectionsWithFormatters.java
│ │ │ │ ├── CreatorConstructorPojo.java
│ │ │ │ ├── CreatorFactoryMethodPojo.java
│ │ │ │ ├── CreatorIncompatibleTypePojo.java
│ │ │ │ ├── CreatorMultipleDeclarationErrorPojo.java
│ │ │ │ ├── CreatorPackagePrivateConstructor.java
│ │ │ │ ├── CreatorWithoutJavabeanProperty.java
│ │ │ │ ├── CreatorWithoutJsonbProperty.java
│ │ │ │ ├── CreatorWithoutJsonbProperty1.java
│ │ │ │ ├── DateFormatPojo.java
│ │ │ │ ├── DateFormatPojoWithClassLevelFormatter.java
│ │ │ │ ├── Dog.java
│ │ │ │ ├── FieldCustomOrder.java
│ │ │ │ ├── FieldCustomOrderWrapper.java
│ │ │ │ ├── FieldOrder.java
│ │ │ │ ├── FieldOrderNameAnnotation.java
│ │ │ │ ├── FieldSpecificOrder.java
│ │ │ │ ├── ImplementationClassPojo.java
│ │ │ │ ├── InheritedAnnotationsPojo.java
│ │ │ │ ├── InheritsJsonbProperty.java
│ │ │ │ ├── InheritsNillable.java
│ │ │ │ ├── InheritsNillableRecursion.java
│ │ │ │ ├── InterfacedPojoA.java
│ │ │ │ ├── InterfacedPojoAbsImpl.java
│ │ │ │ ├── InterfacedPojoB.java
│ │ │ │ ├── InterfacedPojoC.java
│ │ │ │ ├── InterfacedPojoImpl.java
│ │ │ │ ├── JsonbNillableClassFirstLevel.java
│ │ │ │ ├── JsonbNillableClassSecondLevel.java
│ │ │ │ ├── JsonbNillableInterfaceBase.java
│ │ │ │ ├── JsonbNillableInterfaceBaseOne.java
│ │ │ │ ├── JsonbNillableInterfaceBaseTwo.java
│ │ │ │ ├── JsonbNillableOverriddenWithJsonbProperty.java
│ │ │ │ ├── JsonbNillableOverridesClass.java
│ │ │ │ ├── JsonbNillableOverridesInterface.java
│ │ │ │ ├── JsonbNillableValue.java
│ │ │ │ ├── JsonbPropertyName.java
│ │ │ │ ├── JsonbPropertyNameCollision.java
│ │ │ │ ├── JsonbPropertyNillable.java
│ │ │ │ ├── NumberFormatPojo.java
│ │ │ │ ├── NumberFormatPojoWithoutClassLevelFormatter.java
│ │ │ │ ├── ParameterNameTester.java
│ │ │ │ ├── RenamedPropertiesContainer.java
│ │ │ │ ├── TrimmedDatePojo.java
│ │ │ │ └── packagelevelannotations/
│ │ │ │ ├── JsonbNillablePackageLevel.java
│ │ │ │ ├── PackageLevelOverriddenWithClassLevel.java
│ │ │ │ └── package-info.java
│ │ │ ├── polymorphism/
│ │ │ │ ├── AnnotationPolymorphismTest.java
│ │ │ │ ├── MultiplePolymorphicInfoTest.java
│ │ │ │ └── NestedPolymorphismTest.java
│ │ │ └── transients/
│ │ │ ├── JsonbTransientTest.java
│ │ │ └── models/
│ │ │ ├── JsonbTransientCollisionOnGetter.java
│ │ │ ├── JsonbTransientCollisionOnProperty.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndGetter.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndGetterAndSetter.java
│ │ │ ├── JsonbTransientCollisionOnPropertyAndSetter.java
│ │ │ ├── JsonbTransientCollisionOnSetter.java
│ │ │ ├── JsonbTransientValue.java
│ │ │ ├── TransientGetterNoField.java
│ │ │ ├── TransientGetterPlusCustomizationAnnotatedFieldContainer.java
│ │ │ ├── TransientSetterPlusCustomizationAnnotatedFieldContainer.java
│ │ │ └── TransientSetterPlusCustomizationAnnotatedGetterContainer.java
│ │ ├── defaultmapping/
│ │ │ ├── EnumTest.java
│ │ │ ├── IJsonTest.java
│ │ │ ├── anonymous/
│ │ │ │ ├── AnonymousClassTest.java
│ │ │ │ └── OuterPojo.java
│ │ │ ├── basic/
│ │ │ │ ├── BasicTest.java
│ │ │ │ ├── BooleanTest.java
│ │ │ │ ├── NumberTest.java
│ │ │ │ ├── PropertyMismatchTest.java
│ │ │ │ ├── SingleValueTest.java
│ │ │ │ ├── UnqualifiedPropertiesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── BigDecimalInNumber.java
│ │ │ │ └── BooleanModel.java
│ │ │ ├── collections/
│ │ │ │ ├── ArrayTest.java
│ │ │ │ ├── CollectionsTest.java
│ │ │ │ ├── Language.java
│ │ │ │ └── MapKeyTypesTest.java
│ │ │ ├── dates/
│ │ │ │ ├── DatesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractDateTimePojo.java
│ │ │ │ ├── CalendarPojo.java
│ │ │ │ ├── ClassLevelDateAnnotation.java
│ │ │ │ ├── ClassLevelDateAnnotationParent.java
│ │ │ │ ├── CollectionDatePojo.java
│ │ │ │ ├── DatePojo.java
│ │ │ │ ├── DateWithZonePojo.java
│ │ │ │ ├── InstantPojo.java
│ │ │ │ ├── LocalDatePojo.java
│ │ │ │ ├── LocalDateTimePojo.java
│ │ │ │ ├── LocalTimePojo.java
│ │ │ │ ├── MonthDayPojo.java
│ │ │ │ ├── OffsetDateTimePojo.java
│ │ │ │ ├── OffsetTimePojo.java
│ │ │ │ ├── YearMonthPojo.java
│ │ │ │ └── ZonedDateTimePojo.java
│ │ │ ├── generics/
│ │ │ │ ├── GenericsTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractGenericWrapper.java
│ │ │ │ ├── AbstractMember.java
│ │ │ │ ├── AnotherGenericTestClass.java
│ │ │ │ ├── BoundedGenericClass.java
│ │ │ │ ├── Circle.java
│ │ │ │ ├── CollectionContainer.java
│ │ │ │ ├── CollectionElement.java
│ │ │ │ ├── CollectionWrapper.java
│ │ │ │ ├── ColoredCircle.java
│ │ │ │ ├── ConstructorContainer.java
│ │ │ │ ├── CyclicSubClass.java
│ │ │ │ ├── ExtendedGenericTestClass.java
│ │ │ │ ├── FinalGenericWrapper.java
│ │ │ │ ├── FinalMember.java
│ │ │ │ ├── GenericArrayClass.java
│ │ │ │ ├── GenericTestClass.java
│ │ │ │ ├── GenericWithUnboundedWildcardClass.java
│ │ │ │ ├── LowerBoundTypeVariableWithCollectionAttributeClass.java
│ │ │ │ ├── MiddleGenericWrapper.java
│ │ │ │ ├── MultiLevelExtendedGenericTestClass.java
│ │ │ │ ├── MultipleBoundsContainer.java
│ │ │ │ ├── MyCyclicGenericClass.java
│ │ │ │ ├── PropagatedGenericClass.java
│ │ │ │ ├── ScalarValueWrapper.java
│ │ │ │ ├── Shape.java
│ │ │ │ ├── StaticCreatorContainer.java
│ │ │ │ ├── TreeContainer.java
│ │ │ │ ├── TreeElement.java
│ │ │ │ ├── TreeTypeContainer.java
│ │ │ │ ├── TypeContainer.java
│ │ │ │ ├── WildCardClass.java
│ │ │ │ └── WildcardMultipleBoundsClass.java
│ │ │ ├── inheritance/
│ │ │ │ ├── InheritanceTest.java
│ │ │ │ └── model/
│ │ │ │ ├── AbstractZeroLevel.java
│ │ │ │ ├── FirstLevel.java
│ │ │ │ ├── PartialOverride.java
│ │ │ │ ├── PartialOverrideBase.java
│ │ │ │ ├── PropertyOrderFirst.java
│ │ │ │ ├── PropertyOrderSecond.java
│ │ │ │ ├── PropertyOrderZero.java
│ │ │ │ ├── SecondLevel.java
│ │ │ │ └── generics/
│ │ │ │ ├── AbstractZeroLevelGeneric.java
│ │ │ │ ├── AnotherGenericInterface.java
│ │ │ │ ├── ExtendsExtendsPropagatedGenericClass.java
│ │ │ │ ├── ExtendsPropagatedGenericClass.java
│ │ │ │ ├── FirstLevelGeneric.java
│ │ │ │ ├── GenericInterface.java
│ │ │ │ ├── ImplementsGenericInterfaces.java
│ │ │ │ └── SecondLevelGeneric.java
│ │ │ ├── jsonp/
│ │ │ │ ├── JsonpLong.java
│ │ │ │ ├── JsonpString.java
│ │ │ │ ├── JsonpTest.java
│ │ │ │ └── model/
│ │ │ │ └── JsonpPojo.java
│ │ │ ├── lambda/
│ │ │ │ ├── Addressable.java
│ │ │ │ ├── Cat.java
│ │ │ │ ├── LambdaExpressionTest.java
│ │ │ │ ├── Pet.java
│ │ │ │ └── Robot.java
│ │ │ ├── modifiers/
│ │ │ │ ├── ClassModifiersTest.java
│ │ │ │ ├── DefaultMappingModifiersTest.java
│ │ │ │ └── model/
│ │ │ │ ├── ChildOfPackagePrivateParent.java
│ │ │ │ ├── FieldModifiersClass.java
│ │ │ │ ├── MethodModifiersClass.java
│ │ │ │ ├── PackagePrivateParent.java
│ │ │ │ ├── Person.java
│ │ │ │ ├── PrivateConstructorClass.java
│ │ │ │ └── ProtectedConstructorClass.java
│ │ │ ├── properties/
│ │ │ │ └── PropertiesTest.java
│ │ │ ├── specific/
│ │ │ │ ├── CustomerTest.java
│ │ │ │ ├── JsonStreamsTest.java
│ │ │ │ ├── NullTest.java
│ │ │ │ ├── ObjectGraphTest.java
│ │ │ │ ├── OptionalTest.java
│ │ │ │ ├── RecursiveReferenceTest.java
│ │ │ │ ├── SpecificTest.java
│ │ │ │ ├── UnmarshallingUnsupportedTypesTest.java
│ │ │ │ └── model/
│ │ │ │ ├── Address.java
│ │ │ │ ├── ClassWithUnsupportedFields.java
│ │ │ │ ├── CustomUnsupportedInterface.java
│ │ │ │ ├── Customer.java
│ │ │ │ ├── NotMatchingGettersAndSetters.java
│ │ │ │ ├── OptionalWrapper.java
│ │ │ │ ├── SpecificOptionalWrapper.java
│ │ │ │ ├── Street.java
│ │ │ │ ├── StreetWithPrimitives.java
│ │ │ │ └── SupportedTypes.java
│ │ │ └── typeConvertors/
│ │ │ ├── DefaultSerializersTest.java
│ │ │ └── model/
│ │ │ ├── BigDecimalWrapper.java
│ │ │ ├── BigIntegerWrapper.java
│ │ │ ├── ByteArrayWrapper.java
│ │ │ ├── CalendarWrapper.java
│ │ │ └── StringWrapper.java
│ │ ├── documented/
│ │ │ └── DocumentationExampleTest.java
│ │ ├── internal/
│ │ │ ├── AnnotationFinderTest.java
│ │ │ ├── AnnotationFinderTestFixtures.java
│ │ │ ├── AnnotationIntrospectorTest.java
│ │ │ ├── AnnotationIntrospectorTestAsserts.java
│ │ │ ├── AnnotationIntrospectorTestFixtures.java
│ │ │ ├── AnnotationIntrospectorWithoutOptionalModulesTest.java
│ │ │ ├── ClassParserTest.java
│ │ │ ├── CollectionsWithJavaBaseTypesTest.java
│ │ │ ├── ConstructorPropertiesAnnotationIntrospectorTest.java
│ │ │ ├── JsonBindingTest.java
│ │ │ ├── ReflectionUtilsTest.java
│ │ │ ├── cdi/
│ │ │ │ ├── AdaptedPojo.java
│ │ │ │ ├── CalledMethods.java
│ │ │ │ ├── CdiDependentAdapter.java
│ │ │ │ ├── CdiInjectionTest.java
│ │ │ │ ├── CdiTestService.java
│ │ │ │ ├── Hello1.java
│ │ │ │ ├── Hello2.java
│ │ │ │ ├── HelloService1.java
│ │ │ │ ├── HelloService2.java
│ │ │ │ ├── IHelloService.java
│ │ │ │ ├── JndiBeanManager.java
│ │ │ │ ├── MethodCalledEvent.java
│ │ │ │ ├── MockInjectionTarget.java
│ │ │ │ ├── MockInjectionTargetFactory.java
│ │ │ │ ├── MockJndiContext.java
│ │ │ │ ├── MockJndiContextFactory.java
│ │ │ │ ├── NonCdiAdapter.java
│ │ │ │ └── WeldManager.java
│ │ │ ├── concurrent/
│ │ │ │ ├── JsonProcessingResult.java
│ │ │ │ ├── MarshallerTask.java
│ │ │ │ ├── MarshallerTaskResult.java
│ │ │ │ ├── MultiTenancyTest.java
│ │ │ │ ├── ResultChecker.java
│ │ │ │ └── UnmarshallerTask.java
│ │ │ ├── model/
│ │ │ │ ├── ModulesUtil.java
│ │ │ │ └── customization/
│ │ │ │ └── naming/
│ │ │ │ ├── NamingPojo.java
│ │ │ │ └── PropertyNamingStrategyTest.java
│ │ │ └── serializer/
│ │ │ └── ObjectDeserializerTest.java
│ │ ├── jsonpsubstitution/
│ │ │ ├── AdaptedJsonParser.java
│ │ │ ├── PreinstantiatedJsonpTest.java
│ │ │ └── SuffixJsonGenerator.java
│ │ ├── jsonstructure/
│ │ │ ├── InnerPojo.java
│ │ │ ├── InnerPojoDeserializer.java
│ │ │ ├── InnerPojoSerializer.java
│ │ │ ├── Issue673.java
│ │ │ ├── JsonGeneratorToStructureAdapterTest.java
│ │ │ ├── JsonStructureToParserAdapterTest.java
│ │ │ └── Pojo.java
│ │ ├── logger/
│ │ │ └── JsonbLoggerFormatter.java
│ │ ├── records/
│ │ │ ├── Car.java
│ │ │ ├── CarWithCreateNamingStrategyTest.java
│ │ │ ├── CarWithCreator.java
│ │ │ ├── CarWithDefaultConstructor.java
│ │ │ ├── CarWithExtraMethod.java
│ │ │ ├── CarWithGenerics.java
│ │ │ ├── CarWithMultipleConstructors.java
│ │ │ ├── CarWithMultipleConstructorsAndCreator.java
│ │ │ ├── CarWithoutAnnotations.java
│ │ │ ├── Color.java
│ │ │ └── RecordTest.java
│ │ └── serializers/
│ │ ├── MapToEntriesArraySerializerTest.java
│ │ ├── MapToObjectSerializerTest.java
│ │ ├── SerializersTest.java
│ │ ├── TypeDeserializerOnContainersTest.java
│ │ ├── TypeSerializerOnContainersTest.java
│ │ └── model/
│ │ ├── AbstractJsonbSerializer.java
│ │ ├── AnnotatedGenericWithSerializerType.java
│ │ ├── AnnotatedGenericWithSerializerTypeDeserializer.java
│ │ ├── AnnotatedGenericWithSerializerTypeSerializer.java
│ │ ├── AnnotatedWithSerializerType.java
│ │ ├── AnnotatedWithSerializerTypeDeserializer.java
│ │ ├── AnnotatedWithSerializerTypeSerializer.java
│ │ ├── AnnotatedWithSerializerTypeSerializerOverride.java
│ │ ├── Author.java
│ │ ├── Box.java
│ │ ├── BoxWithAnnotations.java
│ │ ├── Containee.java
│ │ ├── ContaineeDeserializer.java
│ │ ├── ContaineeSerializer.java
│ │ ├── Container.java
│ │ ├── Crate.java
│ │ ├── CrateDeserializer.java
│ │ ├── CrateDeserializerWithConversion.java
│ │ ├── CrateInner.java
│ │ ├── CrateJsonObjectDeserializer.java
│ │ ├── CrateSerializer.java
│ │ ├── CrateSerializerWithConversion.java
│ │ ├── ExplicitJsonbSerializer.java
│ │ ├── GenericPropertyPojo.java
│ │ ├── GenericPropertyPojoSerializer.java
│ │ ├── ImplicitJsonbSerializer.java
│ │ ├── NumberDeserializer.java
│ │ ├── NumberSerializer.java
│ │ ├── Pokemon.java
│ │ ├── RecursiveDeserializer.java
│ │ ├── RecursiveSerializer.java
│ │ ├── SimpleAnnotatedSerializedArrayContainer.java
│ │ ├── SimpleContainer.java
│ │ ├── SimpleContainerArrayDeserializer.java
│ │ ├── SimpleContainerArraySerializer.java
│ │ ├── StringPaddingSerializer.java
│ │ ├── StringWrapper.java
│ │ ├── SupertypeSerializerPojo.java
│ │ └── Trainer.java
│ └── resources/
│ ├── META-INF/
│ │ └── beans.xml
│ ├── jndi.properties
│ ├── logging.properties
│ ├── test.policy
│ └── yasson-messages_cs.properties
├── yasson-jmh/
│ ├── .gitignore
│ ├── README.md
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── org/
│ └── eclipse/
│ └── yasson/
│ └── jmh/
│ ├── CollectionsTest.java
│ ├── ScalarDataTest.java
│ ├── TenPropertySerializationTest.java
│ └── model/
│ ├── CollectionsData.java
│ ├── ScalarData.java
│ └── TenPropertyData.java
└── yasson-tck/
├── .gitignore
└── pom.xml
Showing preview only (339K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3802 symbols across 554 files)
FILE: src/main/java/org/eclipse/yasson/FieldAccessStrategy.java
class FieldAccessStrategy (line 30) | public class FieldAccessStrategy implements PropertyVisibilityStrategy {
method isVisible (line 31) | @Override
method isVisible (line 36) | @Override
FILE: src/main/java/org/eclipse/yasson/JsonBindingProvider.java
class JsonBindingProvider (line 23) | public class JsonBindingProvider extends JsonbProvider {
method create (line 25) | @Override
FILE: src/main/java/org/eclipse/yasson/YassonConfig.java
class YassonConfig (line 23) | public class YassonConfig extends JsonbConfig {
method withFailOnUnknownProperties (line 66) | public YassonConfig withFailOnUnknownProperties(boolean failOnUnknownP...
method withUserTypeMapping (line 76) | public YassonConfig withUserTypeMapping(Map<Class<?>, Class<?>> mappin...
method withZeroTimeParseDefaulting (line 92) | public YassonConfig withZeroTimeParseDefaulting(boolean defaultZeroHou...
method withNullRootSerializer (line 104) | public YassonConfig withNullRootSerializer(JsonbSerializer<?> nullSeri...
method withEagerParsing (line 113) | public YassonConfig withEagerParsing(Class<?>... classes) {
method withForceMapArraySerializerForNullKeys (line 125) | public YassonConfig withForceMapArraySerializerForNullKeys(boolean val...
method withTimeInMillisAsAString (line 140) | public YassonConfig withTimeInMillisAsAString(boolean value) {
FILE: src/main/java/org/eclipse/yasson/YassonJsonb.java
type YassonJsonb (line 33) | public interface YassonJsonb extends jakarta.json.bind.Jsonb {
method fromJson (line 46) | <T> T fromJson(JsonParser jsonParser, Class<T> type) throws JsonbExcep...
method fromJson (line 59) | <T> T fromJson(JsonParser jsonParser, Type runtimeType) throws JsonbEx...
method fromJsonStructure (line 71) | <T> T fromJsonStructure(JsonStructure jsonStructure, Class<T> type) th...
method fromJsonStructure (line 83) | <T> T fromJsonStructure(JsonStructure jsonStructure, Type runtimeType)...
method toJson (line 96) | void toJson(Object object, JsonGenerator jsonGenerator) throws JsonbEx...
method toJson (line 110) | void toJson(Object object, Type runtimeType, JsonGenerator jsonGenerat...
method toJsonStructure (line 121) | JsonStructure toJsonStructure(Object object) throws JsonbException;
method toJsonStructure (line 133) | JsonStructure toJsonStructure(Object object, Type runtimeType) throws ...
FILE: src/main/java/org/eclipse/yasson/YassonProperties.java
class YassonProperties (line 19) | @Deprecated
method YassonProperties (line 22) | private YassonProperties() {
FILE: src/main/java/org/eclipse/yasson/internal/AnnotationFinder.java
class AnnotationFinder (line 30) | class AnnotationFinder {
method findAnnotation (line 44) | public static AnnotationFinder findAnnotation(Class<?> annotation) {
method findAnnotationByName (line 54) | public static AnnotationFinder findAnnotationByName(String annotationC...
method findConstructorProperties (line 63) | public static AnnotationFinder findConstructorProperties() {
method AnnotationFinder (line 67) | private AnnotationFinder(String annotationClassName, Class<? extends A...
method in (line 72) | @SuppressWarnings("unchecked")
method valueIn (line 87) | public Object valueIn(Annotation[] annotations) {
method invocateValueMethod (line 91) | private Object invocateValueMethod(Annotation annotation) {
method getOptionalAnnotationClass (line 105) | @SuppressWarnings("unchecked")
method findAnnotation (line 120) | @SuppressWarnings("unchecked")
method toString (line 144) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/AnnotationIntrospector.java
class AnnotationIntrospector (line 85) | public class AnnotationIntrospector {
method AnnotationIntrospector (line 109) | public AnnotationIntrospector(JsonbContext jsonbContext) {
method getJsonbPropertyJsonWriteName (line 122) | public String getJsonbPropertyJsonWriteName(Property property) {
method getJsonbPropertyJsonReadName (line 134) | public String getJsonbPropertyJsonReadName(Property property) {
method getJsonbPropertyCustomizedName (line 139) | private String getJsonbPropertyCustomizedName(Property property, Jsonb...
method getCreator (line 161) | public JsonbCreator getCreator(Class<?> clazz, PropertyNamingStrategy ...
method createJsonbCreator (line 197) | JsonbCreator createJsonbCreator(Executable executable, JsonbCreator ex...
method getAdapterBinding (line 225) | public AdapterBinding getAdapterBinding(Property property) {
method getAdapterBinding (line 242) | public AdapterBinding getAdapterBinding(JsonbAnnotatedElement<Class<?>...
method getAdapterBindingFromAnnotation (line 253) | private AdapterBinding getAdapterBindingFromAnnotation(JsonbTypeAdapte...
method getDeserializerBinding (line 272) | public DeserializerBinding getDeserializerBinding(Property property) {
method getDeserializerBinding (line 290) | public DeserializerBinding<?> getDeserializerBinding(Parameter paramet...
method getAdapterBinding (line 309) | public AdapterBinding getAdapterBinding(Parameter parameter) {
method getAnnotationFromParameterType (line 321) | private <T extends Annotation> T getAnnotationFromParameterType(Parame...
method getDeserializerBinding (line 334) | public DeserializerBinding getDeserializerBinding(JsonbAnnotatedElemen...
method getSerializerBinding (line 351) | public SerializerBinding getSerializerBinding(Property property) {
method getSerializerBinding (line 370) | public SerializerBinding getSerializerBinding(JsonbAnnotatedElement<Cl...
method getAnnotationFromPropertyType (line 381) | private <T extends Annotation> T getAnnotationFromPropertyType(Propert...
method isPropertyNillable (line 398) | public Optional<Boolean> isPropertyNillable(Property property) {
method isClassNillable (line 416) | public boolean isClassNillable(JsonbAnnotatedElement<Class<?>> clazzEl...
method getPropertyOrder (line 437) | public String[] getPropertyOrder(JsonbAnnotatedElement<Class<?>> clazz...
method getJsonbTransientCategorized (line 450) | public EnumSet<AnnotationTarget> getJsonbTransientCategorized(Property...
method getJsonbDateFormatCategorized (line 472) | public Map<AnnotationTarget, JsonbDateFormatter> getJsonbDateFormatCat...
method getJsonbDateFormat (line 513) | public JsonbDateFormatter getJsonbDateFormat(JsonbAnnotatedElement<Cla...
method getJsonbNumberFormat (line 528) | public JsonbNumberFormatter getJsonbNumberFormat(JsonbAnnotatedElement...
method getJsonNumberFormatter (line 544) | public Map<AnnotationTarget, JsonbNumberFormatter> getJsonNumberFormat...
method getConstructorNumberFormatter (line 581) | public JsonbNumberFormatter getConstructorNumberFormatter(JsonbAnnotat...
method getConstructorDateFormatter (line 593) | public JsonbDateFormatter getConstructorDateFormatter(JsonbAnnotatedEl...
method createJsonbDateFormatter (line 606) | private JsonbDateFormatter createJsonbDateFormatter(String format, Str...
method getPropertyVisibilityStrategy (line 640) | public PropertyVisibilityStrategy getPropertyVisibilityStrategy(Class<...
method getAnnotationFromProperty (line 662) | private <T extends Annotation> Optional<T> getAnnotationFromProperty(C...
method getAnnotationFromPropertyCategorized (line 696) | private <T extends Annotation> Map<AnnotationTarget, T> getAnnotationF...
method getFieldAnnotation (line 717) | private <T extends Annotation> T getFieldAnnotation(Class<T> annotatio...
method findAnnotation (line 724) | private <T extends Annotation> T findAnnotation(Annotation[] declaredA...
method checkTransientIncompatible (line 733) | public void checkTransientIncompatible(JsonbAnnotatedElement<?> target) {
method getMethodAnnotation (line 746) | private <T extends Annotation> T getMethodAnnotation(Class<T> annotati...
method collectFromInterfaces (line 753) | private <T extends Annotation> void collectFromInterfaces(Class<T> ann...
method collectInterfaces (line 772) | public Set<Class<?>> collectInterfaces(Class<?> cls) {
method introspectCustomization (line 791) | public ClassCustomization introspectCustomization(JsonbAnnotatedElemen...
method getPolymorphismConfig (line 808) | private TypeInheritanceConfiguration getPolymorphismConfig(JsonbAnnota...
method checkDuplicityPolymorphicPropertyNames (line 853) | private void checkDuplicityPolymorphicPropertyNames(TypeInheritanceCon...
method getImplementationClass (line 879) | public Class<?> getImplementationClass(Property property) {
method collectAnnotations (line 890) | public JsonbAnnotatedElement<Class<?>> collectAnnotations(Class<?> cla...
method collectInterfaceAnnotations (line 914) | private Map<Class<? extends Annotation>, LinkedList<AnnotationWrapper<...
method addIfNotPresent (line 969) | private void addIfNotPresent(JsonbAnnotatedElement<?> element, Class<?...
method requiredParameters (line 978) | public boolean requiredParameters(Executable executable, JsonbAnnotate...
FILE: src/main/java/org/eclipse/yasson/internal/BuiltInTypes.java
class BuiltInTypes (line 51) | public class BuiltInTypes {
method BuiltInTypes (line 108) | private BuiltInTypes() {
method isClassAvailable (line 118) | public static boolean isClassAvailable(String className) {
method isKnownType (line 133) | public static boolean isKnownType(Class<?> clazz) {
method findIfClassIsSupported (line 143) | private static boolean findIfClassIsSupported(Class<?> clazz) {
FILE: src/main/java/org/eclipse/yasson/internal/ClassMultiReleaseExtension.java
class ClassMultiReleaseExtension (line 30) | public class ClassMultiReleaseExtension {
method ClassMultiReleaseExtension (line 32) | private ClassMultiReleaseExtension() {
method shouldTransformToPropertyName (line 36) | static boolean shouldTransformToPropertyName(Method method) {
method isSpecialAccessorMethod (line 40) | static boolean isSpecialAccessorMethod(Method method, Map<String, Prop...
method findCreator (line 44) | static JsonbCreator findCreator(Class<?> clazz,
method isRecord (line 51) | public static boolean isRecord(Class<?> clazz) {
method exceptionToThrow (line 55) | public static Optional<JsonbException> exceptionToThrow(Class<?> clazz) {
FILE: src/main/java/org/eclipse/yasson/internal/ClassParser.java
class ClassParser (line 43) | class ClassParser {
method ClassParser (line 53) | ClassParser(JsonbContext jsonbContext) {
method parseProperties (line 60) | void parseProperties(ClassModel classModel, JsonbAnnotatedElement<Clas...
method mergePropertyModels (line 102) | private static void mergePropertyModels(List<PropertyModel> unsortedMe...
method parseClassAndInterfaceMethods (line 124) | private void parseClassAndInterfaceMethods(JsonbAnnotatedElement<Class...
method parseIfaceMethodAnnotations (line 133) | private void parseIfaceMethodAnnotations(Class<?> ifc,
method registerMethod (line 180) | private Property registerMethod(String propertyName,
method parseMethods (line 194) | private void parseMethods(Class<?> clazz,
method isSpecialCaseMethod (line 218) | private static boolean isSpecialCaseMethod(Class<?> clazz, Method m) {
method isGetter (line 236) | private static boolean isGetter(Method m) {
method isSetter (line 240) | private static boolean isSetter(Method m) {
method toPropertyMethod (line 244) | private static String toPropertyMethod(String name) {
method lowerFirstLetter (line 248) | private static String lowerFirstLetter(String name) {
method isPropertyMethod (line 264) | private static boolean isPropertyMethod(Method m) {
method parseFields (line 268) | private static void parseFields(JsonbAnnotatedElement<Class<?>> classE...
method checkPropertyNameClash (line 282) | private static void checkPropertyNameClash(List<PropertyModel> collect...
method getSortedParentProperties (line 311) | private List<PropertyModel> getSortedParentProperties(ClassModel class...
method selectMostSpecificNonDefaultMethod (line 361) | private static Method selectMostSpecificNonDefaultMethod(Method curren...
method mergeProperty (line 368) | private static Property mergeProperty(Property current,
FILE: src/main/java/org/eclipse/yasson/internal/ComponentMatcher.java
class ComponentMatcher (line 41) | public class ComponentMatcher {
method ComponentMatcher (line 57) | ComponentMatcher(JsonbContext context) {
method init (line 67) | void init() {
method getBindingInfo (line 89) | private ComponentBindings getBindingInfo(Type type) {
method addSerializer (line 94) | private void addSerializer(Type bindingType, SerializerBinding<?> seri...
method addDeserializer (line 104) | private void addDeserializer(Type bindingType, DeserializerBinding<?> ...
method addAdapter (line 114) | private void addAdapter(Type bindingType, AdapterBinding adapter) {
method registerGeneric (line 129) | private void registerGeneric(Type bindingType) {
method getSerializerBinding (line 142) | public Optional<SerializerBinding<?>> getSerializerBinding(Type proper...
method getDeserializerBinding (line 177) | public Optional<DeserializerBinding<?>> getDeserializerBinding(Type pr...
method getSerializeAdapterBinding (line 193) | public Optional<AdapterBinding> getSerializeAdapterBinding(Type proper...
method getDeserializeAdapterBinding (line 216) | public Optional<AdapterBinding> getDeserializeAdapterBinding(Type prop...
method searchComponentBinding (line 233) | private <T extends AbstractComponentBinding> Optional<T> searchCompone...
method searchComponentBinding (line 282) | private <T extends AbstractComponentBinding> Optional<T> searchCompone...
method getAnnotationBasedSerializer (line 309) | private Optional<SerializerBinding<?>> getAnnotationBasedSerializer(fi...
method getMatchingBinding (line 338) | private <T> Optional<T> getMatchingBinding(Type runtimeType, Component...
method matches (line 346) | private boolean matches(Type runtimeType, Type componentBindingType) {
method matchTypeArguments (line 368) | private boolean matchTypeArguments(ParameterizedType requiredType, Par...
method introspectAdapterBinding (line 390) | AdapterBinding introspectAdapterBinding(Class<? extends JsonbAdapter> ...
method introspectDeserializerBinding (line 414) | @SuppressWarnings("unchecked")
method introspectSerializerBinding (line 439) | @SuppressWarnings("unchecked")
method resolveTypeArg (line 455) | private Type resolveTypeArg(Type adapterTypeArg, Type adapterType) {
FILE: src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java
class ConstructorPropertiesAnnotationIntrospector (line 27) | class ConstructorPropertiesAnnotationIntrospector {
method forContext (line 34) | public static ConstructorPropertiesAnnotationIntrospector forContext(J...
method ConstructorPropertiesAnnotationIntrospector (line 46) | protected ConstructorPropertiesAnnotationIntrospector(JsonbContext con...
method getCreator (line 51) | public JsonbCreator getCreator(Constructor<?>[] constructors) {
method createJsonbCreator (line 80) | private JsonbCreator createJsonbCreator(Executable executable, String[...
method toString (line 91) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/DeserializationContextImpl.java
class DeserializationContextImpl (line 32) | public class DeserializationContextImpl extends ProcessingContext implem...
method DeserializationContextImpl (line 43) | public DeserializationContextImpl(JsonbContext jsonbContext) {
method DeserializationContextImpl (line 52) | public DeserializationContextImpl(DeserializationContextImpl context) {
method getInstance (line 62) | public Object getInstance() {
method setInstance (line 71) | public void setInstance(Object instance) {
method getDeferredDeserializers (line 80) | public List<Runnable> getDeferredDeserializers() {
method getLastValueEvent (line 89) | public JsonParser.Event getLastValueEvent() {
method setLastValueEvent (line 98) | public void setLastValueEvent(JsonParser.Event lastValueEvent) {
method getCustomization (line 107) | public Customization getCustomization() {
method setCustomization (line 116) | public void setCustomization(Customization customization) {
method deserialize (line 120) | @Override
method deserialize (line 125) | @Override
method deserializeItem (line 130) | @SuppressWarnings("unchecked")
method checkState (line 146) | private void checkState() {
FILE: src/main/java/org/eclipse/yasson/internal/InstanceCreator.java
class InstanceCreator (line 29) | public class InstanceCreator {
method InstanceCreator (line 42) | private InstanceCreator() {
method createInstance (line 53) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/JsonBinding.java
class JsonBinding (line 41) | public class JsonBinding implements YassonJsonb {
method JsonBinding (line 45) | JsonBinding(JsonBindingBuilder builder) {
method deserialize (line 55) | private <T> T deserialize(final Type type, final JsonParser parser, fi...
method fromJson (line 59) | @Override
method fromJson (line 67) | @Override
method fromJson (line 75) | @Override
method fromJson (line 83) | @Override
method fromJson (line 91) | @Override
method fromJson (line 99) | @Override
method fromJsonStructure (line 107) | @Override
method fromJsonStructure (line 114) | @Override
method inputStreamParser (line 121) | private JsonParser inputStreamParser(InputStream stream) {
method toJson (line 128) | @Override
method toJson (line 137) | @Override
method toJson (line 146) | @Override
method toJson (line 154) | @Override
method writerGenerator (line 162) | private JsonGenerator writerGenerator(Writer writer) {
method toJson (line 170) | @Override
method toJson (line 178) | @Override
method fromJson (line 186) | @Override
method fromJson (line 192) | @Override
method toJson (line 198) | @Override
method toJson (line 204) | @Override
method toJsonStructure (line 210) | @Override
method toJsonStructure (line 218) | @Override
method streamGenerator (line 226) | private JsonGenerator streamGenerator(OutputStream stream) {
method close (line 233) | @Override
class CloseSuppressingWriter (line 238) | private static class CloseSuppressingWriter extends FilterWriter {
method CloseSuppressingWriter (line 240) | protected CloseSuppressingWriter(final Writer in) {
method close (line 244) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/JsonBindingBuilder.java
class JsonBindingBuilder (line 25) | public class JsonBindingBuilder implements JsonbBuilder {
method withConfig (line 29) | @Override
method withProvider (line 35) | @Override
method getConfig (line 46) | public JsonbConfig getConfig() {
method getProvider (line 55) | public Optional<JsonProvider> getProvider() {
method build (line 59) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/JsonbConfigProperties.java
class JsonbConfigProperties (line 54) | @SuppressWarnings("rawtypes")
method JsonbConfigProperties (line 86) | public JsonbConfigProperties(JsonbConfig jsonbConfig) {
method initDefaultMapImplType (line 107) | private Class<? extends Map> initDefaultMapImplType() {
method initZeroTimeDefaultingForJavaTime (line 114) | private boolean initZeroTimeDefaultingForJavaTime() {
method initUserTypeMapping (line 118) | @SuppressWarnings("unchecked")
method initDateFormatter (line 123) | private JsonbDateFormatter initDateFormatter(Locale locale) {
method getGlobalConfigJsonbDateFormat (line 137) | private String getGlobalConfigJsonbDateFormat() {
method initOrderStrategy (line 141) | private Consumer<List<PropertyModel>> initOrderStrategy() {
method getPropertyOrderStrategy (line 145) | private String getPropertyOrderStrategy() {
method initPropertyNamingStrategy (line 149) | private PropertyNamingStrategy initPropertyNamingStrategy() {
method initPropertyVisibilityStrategy (line 163) | private PropertyVisibilityStrategy initPropertyVisibilityStrategy() {
method initBinaryDataStrategy (line 177) | private String initBinaryDataStrategy() {
method initConfigNullable (line 184) | private boolean initConfigNullable() {
method initConfigFailOnUnknownProperties (line 188) | private boolean initConfigFailOnUnknownProperties() {
method initRequiredCreatorParameters (line 192) | private boolean initRequiredCreatorParameters() {
method initDateInMillisecondsAsString (line 202) | private boolean initDateInMillisecondsAsString() {
method initNullSerializer (line 212) | @SuppressWarnings("unchecked")
method initEagerInitClasses (line 224) | private Set<Class<?>> initEagerInitClasses() {
method initForceMapArraySerializerForNullKeys (line 236) | private boolean initForceMapArraySerializerForNullKeys() {
method getConfigNullable (line 246) | public boolean getConfigNullable() {
method getConfigFailOnUnknownProperties (line 258) | public boolean getConfigFailOnUnknownProperties() {
method getConfigProperty (line 262) | private <T> T getConfigProperty(String propertyName, Class<T> property...
method getBinaryDataStrategy (line 278) | public String getBinaryDataStrategy() {
method getLocale (line 288) | public Locale getLocale(String locale) {
method initConfigLocale (line 300) | private Locale initConfigLocale() {
method initStrictJson (line 304) | private boolean initStrictJson() {
method getPropertyVisibilityStrategy (line 313) | public PropertyVisibilityStrategy getPropertyVisibilityStrategy() {
method getPropertyNamingStrategy (line 322) | public PropertyNamingStrategy getPropertyNamingStrategy() {
method getConfigDateFormatter (line 331) | public JsonbDateFormatter getConfigDateFormatter() {
method getPropertyOrdering (line 340) | public PropertyOrdering getPropertyOrdering() {
method isStrictIJson (line 349) | public boolean isStrictIJson() {
method getUserTypeMapping (line 358) | public Map<Class<?>, Class<?>> getUserTypeMapping() {
method isZeroTimeDefaulting (line 373) | public boolean isZeroTimeDefaulting() {
method getDefaultMapImplType (line 382) | public Class<?> getDefaultMapImplType() {
method getNullSerializer (line 386) | public JsonbSerializer<Object> getNullSerializer() {
method hasRequiredCreatorParameters (line 390) | public boolean hasRequiredCreatorParameters() {
method getEagerInitClasses (line 394) | public Set<Class<?>> getEagerInitClasses() {
method isForceMapArraySerializerForNullKeys (line 404) | public boolean isForceMapArraySerializerForNullKeys() {
method isDateInMillisecondsAsString (line 408) | public boolean isDateInMillisecondsAsString() {
FILE: src/main/java/org/eclipse/yasson/internal/JsonbContext.java
class JsonbContext (line 43) | public class JsonbContext {
method JsonbContext (line 73) | public JsonbContext(JsonbConfig jsonbConfig, JsonProvider jsonProvider) {
method getConfig (line 92) | public JsonbConfig getConfig() {
method getMappingContext (line 101) | public MappingContext getMappingContext() {
method getChainModelCreator (line 110) | public DeserializationModelCreator getChainModelCreator() {
method getSerializationModelCreator (line 119) | public SerializationModelCreator getSerializationModelCreator() {
method getJsonProvider (line 128) | public JsonProvider getJsonProvider() {
method getComponentInstanceCreator (line 137) | public JsonbComponentInstanceCreator getComponentInstanceCreator() {
method getComponentMatcher (line 146) | public ComponentMatcher getComponentMatcher() {
method getAnnotationIntrospector (line 155) | public AnnotationIntrospector getAnnotationIntrospector() {
method getConfigProperties (line 159) | public JsonbConfigProperties getConfigProperties() {
method getJsonParserFactory (line 163) | public JsonParserFactory getJsonParserFactory() {
method initJsonParserFactory (line 167) | private JsonParserFactory initJsonParserFactory() {
method createJsonpProperties (line 177) | protected Map<String, ?> createJsonpProperties(JsonbConfig jsonbConfig) {
method initComponentInstanceCreator (line 194) | private JsonbComponentInstanceCreator initComponentInstanceCreator() {
FILE: src/main/java/org/eclipse/yasson/internal/JsonbDateFormatter.java
class JsonbDateFormatter (line 29) | public class JsonbDateFormatter {
method JsonbDateFormatter (line 61) | public JsonbDateFormatter(DateTimeFormatter dateTimeFormatter, String ...
method JsonbDateFormatter (line 74) | public JsonbDateFormatter(String format, String locale) {
method getDateTimeFormatter (line 85) | public DateTimeFormatter getDateTimeFormatter() {
method getFormat (line 96) | public String getFormat() {
method getLocale (line 105) | public String getLocale() {
method getDefault (line 109) | public static JsonbDateFormatter getDefault() {
method isDefault (line 113) | public boolean isDefault() {
method equals (line 117) | @Override
method hashCode (line 131) | @Override
method toString (line 136) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/JsonbNumberFormatter.java
class JsonbNumberFormatter (line 20) | public class JsonbNumberFormatter {
method JsonbNumberFormatter (line 32) | public JsonbNumberFormatter(String format, String locale) {
method getFormat (line 42) | public String getFormat() {
method getLocale (line 51) | public String getLocale() {
method equals (line 55) | @Override
method hashCode (line 68) | @Override
method toString (line 73) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/MappingContext.java
class MappingContext (line 31) | public class MappingContext {
method MappingContext (line 43) | public MappingContext(JsonbContext jsonbContext) {
method getOrCreateClassModel (line 56) | public ClassModel getOrCreateClassModel(Class<?> clazz) {
method createParseClassModelFunction (line 82) | private static Function<Class<?>, ClassModel> createParseClassModelFun...
method getClassModel (line 151) | public ClassModel getClassModel(Class<?> clazz) {
FILE: src/main/java/org/eclipse/yasson/internal/ProcessingContext.java
class ProcessingContext (line 22) | public abstract class ProcessingContext {
method ProcessingContext (line 37) | public ProcessingContext(JsonbContext jsonbContext) {
method getJsonbContext (line 46) | public JsonbContext getJsonbContext() {
method getMappingContext (line 55) | public MappingContext getMappingContext() {
method addProcessedObject (line 65) | public boolean addProcessedObject(Object object) {
method removeProcessedObject (line 75) | public boolean removeProcessedObject(Object object) {
FILE: src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java
class ReflectionUtils (line 39) | public class ReflectionUtils {
method ReflectionUtils (line 43) | private ReflectionUtils() {
method getOptionalRawType (line 56) | public static Optional<Class<?>> getOptionalRawType(Type type) {
method getRawType (line 90) | public static Class<?> getRawType(Type type) {
method resolveRawType (line 105) | public static Class<?> resolveRawType(List<Type> chain, Type type) {
method resolveType (line 125) | public static Type resolveType(List<Type> chain, Type type) {
method resolveType (line 129) | private static Type resolveType(List<Type> chain, Type type, boolean w...
method resolveOptionalType (line 153) | public static Optional<Type> resolveOptionalType(List<Type> chain, Typ...
method resolveItemVariableType (line 171) | public static Type resolveItemVariableType(List<Type> chain, TypeVaria...
method resolveTypeArguments (line 233) | public static Type resolveTypeArguments(ParameterizedType typeToResolv...
method createNoArgConstructorInstance (line 283) | public static <T> T createNoArgConstructorInstance(Constructor<T> cons...
method getDefaultConstructor (line 301) | public static <T> Constructor<T> getDefaultConstructor(Class<T> clazz,...
method findParameterizedType (line 334) | public static ParameterizedType findParameterizedType(Class<?> classTo...
method isResolvedType (line 356) | public static boolean isResolvedType(Type type) {
method findParameterizedSuperclass (line 368) | private static ParameterizedType findParameterizedSuperclass(Type type) {
method resolveMostSpecificBound (line 385) | private static Type resolveMostSpecificBound(List<Type> chain, Wildcar...
method getMostSpecificBound (line 396) | private static Class<?> getMostSpecificBound(List<Type> chain, Class<?...
class GenericArrayTypeImpl (line 410) | public static final class GenericArrayTypeImpl implements GenericArray...
method GenericArrayTypeImpl (line 414) | private GenericArrayTypeImpl(Type ct) {
method getGenericComponentType (line 426) | public Type getGenericComponentType() {
method toString (line 430) | public String toString() {
method equals (line 434) | @Override
method hashCode (line 445) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/ResolvedParameterizedType.java
class ResolvedParameterizedType (line 23) | class ResolvedParameterizedType implements ParameterizedType {
method ResolvedParameterizedType (line 41) | ResolvedParameterizedType(ParameterizedType original, Type[] resolvedT...
method getActualTypeArguments (line 51) | @Override
method getRawType (line 56) | @Override
method getOwnerType (line 61) | @Override
method toString (line 66) | @Override
method equals (line 80) | @Override
method hashCode (line 94) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/SerializationContextImpl.java
class SerializationContextImpl (line 34) | public class SerializationContextImpl extends ProcessingContext implemen...
method SerializationContextImpl (line 55) | public SerializationContextImpl(JsonbContext jsonbContext, Type rootRu...
method SerializationContextImpl (line 65) | public SerializationContextImpl(JsonbContext jsonbContext) {
method setKey (line 74) | public void setKey(String key) {
method getKey (line 83) | public String getKey() {
method isRoot (line 92) | public boolean isRoot() {
method setRoot (line 101) | public void setRoot(boolean root) {
method isContainerWithNulls (line 111) | public boolean isContainerWithNulls() {
method setContainerWithNulls (line 120) | public void setContainerWithNulls(boolean writeNulls) {
method marshall (line 131) | public void marshall(Object object, JsonGenerator jsonGenerator, boole...
method marshall (line 158) | public void marshall(Object object, JsonGenerator jsonGenerator) {
method marshallWithoutClose (line 169) | public void marshallWithoutClose(Object object, JsonGenerator jsonGene...
method serialize (line 173) | @Override
method serialize (line 181) | @Override
method serializeObject (line 194) | public <T> void serializeObject(T root, JsonGenerator generator) {
method determineSerializationType (line 200) | private <T> Type determineSerializationType(T root) {
method getRootSerializer (line 207) | public ModelSerializer getRootSerializer(Type type) {
method addProcessedObject (line 217) | public boolean addProcessedObject(Object object) {
method removeProcessedObject (line 227) | public boolean removeProcessedObject(Object object) {
FILE: src/main/java/org/eclipse/yasson/internal/VariableTypeInheritanceSearch.java
class VariableTypeInheritanceSearch (line 29) | class VariableTypeInheritanceSearch {
method searchParametrizedType (line 76) | Type searchParametrizedType(Type typeToSearch, TypeVariable<?> typeVar) {
method checkSubclassRuntimeInfo (line 89) | private Type checkSubclassRuntimeInfo(TypeVariable typeVar) {
method searchRuntimeTypeArgument (line 97) | private Type searchRuntimeTypeArgument(ParameterizedType runtimeType, ...
method findParameterizedSuperclass (line 116) | private static ParameterizedType findParameterizedSuperclass(Type type) {
FILE: src/main/java/org/eclipse/yasson/internal/components/AbstractComponentBinding.java
class AbstractComponentBinding (line 22) | public abstract class AbstractComponentBinding {
method AbstractComponentBinding (line 31) | public AbstractComponentBinding(Type bindingType) {
method getBindingType (line 41) | public Type getBindingType() {
method getComponentClass (line 50) | public abstract Class<?> getComponentClass();
FILE: src/main/java/org/eclipse/yasson/internal/components/AdapterBinding.java
class AdapterBinding (line 23) | public class AdapterBinding extends AbstractComponentBinding {
method AdapterBinding (line 36) | public AdapterBinding(Type fromType, Type toType, JsonbAdapter<?, ?> a...
method getToType (line 52) | public Type getToType() {
method getAdapter (line 61) | public JsonbAdapter<?, ?> getAdapter() {
method getComponentClass (line 65) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/components/BeanManagerInstanceCreator.java
class BeanManagerInstanceCreator (line 37) | public class BeanManagerInstanceCreator implements JsonbComponentInstanc...
method BeanManagerInstanceCreator (line 48) | public BeanManagerInstanceCreator(Object beanManager) {
method getOrCreateComponent (line 63) | @Override
method close (line 78) | @Override
method cleanupBean (line 84) | private <T> void cleanupBean(CDIManagedBean<T> bean) {
class CDIManagedBean (line 93) | private static final class CDIManagedBean<T> {
method CDIManagedBean (line 98) | CDIManagedBean(T instance, InjectionTarget<T> injectionTarget, Creat...
method getInjectionTarget (line 107) | private InjectionTarget<T> getInjectionTarget() {
method getInstance (line 114) | private T getInstance() {
method getCreationalContext (line 121) | private CreationalContext<T> getCreationalContext() {
FILE: src/main/java/org/eclipse/yasson/internal/components/ComponentBindings.java
class ComponentBindings (line 20) | public class ComponentBindings {
method ComponentBindings (line 35) | public ComponentBindings(Type bindingType) {
method ComponentBindings (line 47) | public ComponentBindings(Type bindingType,
method getBindingType (line 62) | public Type getBindingType() {
method getSerializer (line 71) | public SerializerBinding getSerializer() {
method getDeserializer (line 80) | public DeserializerBinding getDeserializer() {
method getAdapterInfo (line 89) | public AdapterBinding getAdapterInfo() {
FILE: src/main/java/org/eclipse/yasson/internal/components/DefaultConstructorCreator.java
class DefaultConstructorCreator (line 23) | public class DefaultConstructorCreator implements JsonbComponentInstance...
method getOrCreateComponent (line 25) | @Override
method close (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/components/DeserializerBinding.java
class DeserializerBinding (line 24) | public class DeserializerBinding<T> extends AbstractComponentBinding {
method DeserializerBinding (line 34) | public DeserializerBinding(Type bindingType, JsonbDeserializer<T> json...
method getJsonbDeserializer (line 44) | public JsonbDeserializer<T> getJsonbDeserializer() {
method getComponentClass (line 48) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/components/JsonbComponentInstanceCreatorFactory.java
class JsonbComponentInstanceCreatorFactory (line 31) | public class JsonbComponentInstanceCreatorFactory {
method JsonbComponentInstanceCreatorFactory (line 35) | private JsonbComponentInstanceCreatorFactory() {
method getComponentInstanceCreator (line 58) | public static JsonbComponentInstanceCreator getComponentInstanceCreato...
method getCdiBeanManager (line 75) | private static Object getCdiBeanManager() {
method getJndiBeanManager (line 100) | private static Object getJndiBeanManager() {
method getBeanManager (line 122) | private static Object getBeanManager(BeanManagerProvider command) thro...
type BeanManagerProvider (line 144) | private interface BeanManagerProvider {
method provide (line 145) | Object provide() throws ReflectiveOperationException;
FILE: src/main/java/org/eclipse/yasson/internal/components/SerializerBinding.java
class SerializerBinding (line 24) | public class SerializerBinding<T> extends AbstractComponentBinding {
method SerializerBinding (line 34) | public SerializerBinding(Type bindingType, JsonbSerializer<T> jsonbSer...
method getJsonbSerializer (line 44) | public JsonbSerializer<T> getJsonbSerializer() {
method getComponentClass (line 53) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/AdapterDeserializer.java
class AdapterDeserializer (line 26) | class AdapterDeserializer implements ModelDeserializer<Object> {
method AdapterDeserializer (line 32) | @SuppressWarnings("unchecked")
method deserialize (line 40) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ArrayDeserializer.java
class ArrayDeserializer (line 26) | class ArrayDeserializer implements ModelDeserializer<JsonParser> {
method ArrayDeserializer (line 30) | ArrayDeserializer(ModelDeserializer<JsonParser> delegate) {
method deserialize (line 34) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ArrayInstanceCreator.java
class ArrayInstanceCreator (line 32) | abstract class ArrayInstanceCreator implements ModelDeserializer<JsonPar...
method ArrayInstanceCreator (line 49) | private ArrayInstanceCreator(ModelDeserializer<JsonParser> delegate) {
method create (line 53) | static ArrayInstanceCreator create(Class<?> arrayType, Class<?> compon...
method createBase64Deserializer (line 60) | static ModelDeserializer<JsonParser> createBase64Deserializer(String s...
method deserialize (line 65) | @SuppressWarnings("unchecked")
method resolveArrayInstance (line 72) | protected abstract Object resolveArrayInstance(Collection<Object> coll...
class IntegerArrayCreator (line 74) | private static final class IntegerArrayCreator extends ArrayInstanceCr...
method IntegerArrayCreator (line 76) | private IntegerArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 80) | @Override
class ByteArrayCreator (line 93) | private static final class ByteArrayCreator extends ArrayInstanceCreat...
method ByteArrayCreator (line 95) | private ByteArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 99) | @Override
class ShortArrayCreator (line 112) | private static final class ShortArrayCreator extends ArrayInstanceCrea...
method ShortArrayCreator (line 114) | private ShortArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 118) | @Override
class LongArrayCreator (line 131) | private static final class LongArrayCreator extends ArrayInstanceCreat...
method LongArrayCreator (line 133) | private LongArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 137) | @Override
class FloatArrayCreator (line 150) | private static final class FloatArrayCreator extends ArrayInstanceCrea...
method FloatArrayCreator (line 152) | private FloatArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 156) | @Override
class DoubleArrayCreator (line 169) | private static final class DoubleArrayCreator extends ArrayInstanceCre...
method DoubleArrayCreator (line 171) | private DoubleArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 175) | @Override
class BooleanArrayCreator (line 188) | private static final class BooleanArrayCreator extends ArrayInstanceCr...
method BooleanArrayCreator (line 190) | private BooleanArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 194) | @Override
class CharArrayCreator (line 207) | private static final class CharArrayCreator extends ArrayInstanceCreat...
method CharArrayCreator (line 209) | private CharArrayCreator(ModelDeserializer<JsonParser> delegate) {
method resolveArrayInstance (line 213) | @Override
class ObjectArrayCreator (line 226) | private static final class ObjectArrayCreator extends ArrayInstanceCre...
method ObjectArrayCreator (line 230) | private ObjectArrayCreator(ModelDeserializer<JsonParser> delegate, C...
method resolveArrayInstance (line 235) | @Override
class Base64ByteArray (line 248) | private static final class Base64ByteArray implements ModelDeserialize...
method Base64ByteArray (line 253) | private Base64ByteArray(String strategy,
method getDecoder (line 259) | public Base64.Decoder getDecoder(String strategy) {
method deserialize (line 270) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/CollectionDeserializer.java
class CollectionDeserializer (line 25) | class CollectionDeserializer implements ModelDeserializer<JsonParser> {
method CollectionDeserializer (line 29) | CollectionDeserializer(ModelDeserializer<JsonParser> delegate) {
method deserialize (line 33) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/CollectionInstanceCreator.java
class CollectionInstanceCreator (line 37) | class CollectionInstanceCreator implements ModelDeserializer<JsonParser> {
method CollectionInstanceCreator (line 44) | CollectionInstanceCreator(CollectionDeserializer delegate, Type type) {
method deserialize (line 51) | @SuppressWarnings("unchecked")
method implementationClass (line 64) | private Class<?> implementationClass(Class<?> type) {
method createInterfaceInstance (line 71) | private Class<?> createInterfaceInstance(Class<?> ifcType) {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ContextSwitcher.java
class ContextSwitcher (line 22) | class ContextSwitcher implements ModelDeserializer<JsonParser> {
method ContextSwitcher (line 27) | ContextSwitcher(ModelDeserializer<Object> delegate,
method deserialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/CyclicReferenceDeserializer.java
class CyclicReferenceDeserializer (line 24) | class CyclicReferenceDeserializer implements ModelDeserializer<JsonParse...
method CyclicReferenceDeserializer (line 29) | CyclicReferenceDeserializer(Type type) {
method deserialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/DefaultObjectInstanceCreator.java
class DefaultObjectInstanceCreator (line 29) | class DefaultObjectInstanceCreator implements ModelDeserializer<JsonPars...
method DefaultObjectInstanceCreator (line 35) | DefaultObjectInstanceCreator(ModelDeserializer<JsonParser> delegate,
method deserialize (line 50) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/DeferredDeserializer.java
class DeferredDeserializer (line 21) | class DeferredDeserializer implements ModelDeserializer<Object> {
method DeferredDeserializer (line 25) | DeferredDeserializer(ModelDeserializer<Object> delegate) {
method deserialize (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java
class DeserializationModelCreator (line 71) | public class DeserializationModelCreator {
method DeserializationModelCreator (line 109) | public DeserializationModelCreator(JsonbContext jsonbContext) {
method deserializerChain (line 120) | public ModelDeserializer<JsonParser> deserializerChain(Type type) {
method deserializerChain (line 126) | private ModelDeserializer<JsonParser> deserializerChain(LinkedList<Typ...
method deserializerChainInternal (line 141) | private ModelDeserializer<JsonParser> deserializerChainInternal(Linked...
method createObjectDeserializer (line 197) | private ModelDeserializer<JsonParser> createObjectDeserializer(LinkedL...
method createCollectionDeserializer (line 263) | private ModelDeserializer<JsonParser> createCollectionDeserializer(Cac...
method createMapDeserializer (line 284) | private ModelDeserializer<JsonParser> createMapDeserializer(CachedItem...
method createArrayDeserializer (line 315) | private ModelDeserializer<JsonParser> createArrayDeserializer(CachedIt...
method createGenericArray (line 342) | private ModelDeserializer<JsonParser> createGenericArray(CachedItem ca...
method createArrayCommonDeserializer (line 355) | private ModelDeserializer<JsonParser> createArrayCommonDeserializer(Ca...
method createOptionalDeserializer (line 367) | private OptionalDeserializer createOptionalDeserializer(LinkedList<Typ...
method collectIgnoredProperties (line 381) | private Set<String> collectIgnoredProperties(TypeInheritanceConfigurat...
method propertyRenamer (line 393) | private Function<String, String> propertyRenamer() {
method adapterBinding (line 404) | private Optional<AdapterBinding> adapterBinding(Type type, ComponentBo...
method userDeserializer (line 408) | private Optional<DeserializerBinding<?>> userDeserializer(Type type, C...
method creatorParamsList (line 412) | private List<String> creatorParamsList(JsonbCreator creator) {
method memberTypeProcessor (line 416) | private ModelDeserializer<JsonParser> memberTypeProcessor(LinkedList<T...
method typeProcessor (line 428) | private ModelDeserializer<JsonParser> typeProcessor(LinkedList<Type> c...
method typeProcessor (line 435) | private ModelDeserializer<JsonParser> typeProcessor(LinkedList<Type> c...
method createNewChain (line 484) | private ModelDeserializer<JsonParser> createNewChain(LinkedList<Type> ...
method typeDeserializer (line 494) | private ModelDeserializer<JsonParser> typeDeserializer(Class<?> rawType,
method typeDeserializer (line 500) | private ModelDeserializer<JsonParser> typeDeserializer(Class<?> rawType,
method resolveImplClass (line 508) | private Class<?> resolveImplClass(Class<?> rawType, Customization cust...
method createCachedItem (line 531) | private CachedItem createCachedItem(Type type, Customization customiza...
class CachedItem (line 535) | private static final class CachedItem {
method CachedItem (line 541) | CachedItem(Type type, JsonbNumberFormatter numberFormatter, JsonbDat...
method equals (line 547) | @Override
method hashCode (line 561) | @Override
method toString (line 566) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/InheritanceInstanceCreator.java
class InheritanceInstanceCreator (line 31) | class InheritanceInstanceCreator implements ModelDeserializer<JsonParser> {
method InheritanceInstanceCreator (line 39) | InheritanceInstanceCreator(Class<?> processedType,
method deserialize (line 49) | @Override
method toString (line 75) | @Override
method getPolymorphicTypeClass (line 80) | private Class<?> getPolymorphicTypeClass(String alias) {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/JsonbCreatorDeserializer.java
class JsonbCreatorDeserializer (line 38) | class JsonbCreatorDeserializer implements ModelDeserializer<JsonParser> {
method JsonbCreatorDeserializer (line 49) | JsonbCreatorDeserializer(Map<String, ModelDeserializer<JsonParser>> pr...
method deserialize (line 66) | @Override
method toString (line 121) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/JustReturn.java
class JustReturn (line 20) | public final class JustReturn implements ModelDeserializer<Object> {
method JustReturn (line 24) | private JustReturn() {
method instance (line 32) | public static JustReturn instance() {
method deserialize (line 36) | @Override
method toString (line 41) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/MapDeserializer.java
class MapDeserializer (line 25) | class MapDeserializer implements ModelDeserializer<JsonParser> {
method MapDeserializer (line 30) | MapDeserializer(ModelDeserializer<JsonParser> keyDelegate,
method deserialize (line 36) | @SuppressWarnings("unchecked")
method validateKeyName (line 98) | private void validateKeyName(String keyName, State state) {
method deserializeValue (line 106) | private Object deserializeValue(JsonParser parser,
type Mode (line 113) | private enum Mode {
type State (line 121) | private enum State {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/MapInstanceCreator.java
class MapInstanceCreator (line 33) | class MapInstanceCreator implements ModelDeserializer<JsonParser> {
method MapInstanceCreator (line 39) | MapInstanceCreator(MapDeserializer delegate,
method deserialize (line 47) | @Override
method createInstance (line 54) | private Map<?, ?> createInstance(Class<?> clazz) {
method getMapImpl (line 60) | private Map<?, ?> getMapImpl(Class<?> ifcType) {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ModelDeserializer.java
type ModelDeserializer (line 25) | public interface ModelDeserializer<T> {
method deserialize (line 34) | Object deserialize(T value, DeserializationContextImpl context);
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/NullCheckDeserializer.java
class NullCheckDeserializer (line 26) | public class NullCheckDeserializer implements ModelDeserializer<JsonPars...
method NullCheckDeserializer (line 37) | public NullCheckDeserializer(ModelDeserializer<JsonParser> nonNullDese...
method deserialize (line 43) | @Override
method toString (line 51) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ObjectDeserializer.java
class ObjectDeserializer (line 31) | class ObjectDeserializer implements ModelDeserializer<JsonParser> {
method ObjectDeserializer (line 47) | ObjectDeserializer(Map<String, ModelDeserializer<JsonParser>> property...
method deserialize (line 59) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/OptionalDeserializer.java
class OptionalDeserializer (line 24) | class OptionalDeserializer implements ModelDeserializer<JsonParser> {
method OptionalDeserializer (line 29) | OptionalDeserializer(ModelDeserializer<JsonParser> typeDeserializer,
method deserialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/PositionChecker.java
class PositionChecker (line 34) | public class PositionChecker implements ModelDeserializer<JsonParser> {
method PositionChecker (line 50) | public PositionChecker(ModelDeserializer<JsonParser> delegate, Type rT...
method PositionChecker (line 61) | public PositionChecker(ModelDeserializer<JsonParser> delegate, Type rT...
method PositionChecker (line 65) | private PositionChecker(Set<Event> expectedEvents,
method deserialize (line 72) | @Override
method toString (line 95) | @Override
type Checker (line 106) | public enum Checker {
method Checker (line 125) | Checker(Event... events) {
method getEvents (line 134) | public Set<Event> getEvents() {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/RequiredCreatorParameter.java
class RequiredCreatorParameter (line 21) | class RequiredCreatorParameter implements ModelDeserializer<Object> {
method RequiredCreatorParameter (line 25) | RequiredCreatorParameter(String parameterName) {
method deserialize (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/UserDefinedDeserializer.java
class UserDefinedDeserializer (line 26) | class UserDefinedDeserializer implements ModelDeserializer<JsonParser> {
method UserDefinedDeserializer (line 45) | UserDefinedDeserializer(JsonbDeserializer<?> userDefinedDeserializer,
method deserialize (line 55) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ValueExtractor.java
class ValueExtractor (line 24) | public class ValueExtractor implements ModelDeserializer<JsonParser> {
method ValueExtractor (line 33) | public ValueExtractor(TypeDeserializer delegate) {
method deserialize (line 37) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/ValueSetterDeserializer.java
class ValueSetterDeserializer (line 25) | class ValueSetterDeserializer implements ModelDeserializer<Object> {
method ValueSetterDeserializer (line 29) | ValueSetterDeserializer(MethodHandle valueSetter) {
method deserialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/YassonParser.java
class YassonParser (line 34) | class YassonParser implements JsonParser {
method YassonParser (line 40) | YassonParser(JsonParser delegate, Event firstEvent, DeserializationCon...
method determineLevelValue (line 46) | private int determineLevelValue(Event firstEvent) {
method skipRemaining (line 56) | void skipRemaining() {
method hasNext (line 62) | @Override
method next (line 70) | @Override
method currentEvent (line 90) | @Override
method getString (line 95) | @Override
method isIntegralNumber (line 100) | @Override
method getInt (line 105) | @Override
method getLong (line 110) | @Override
method getBigDecimal (line 115) | @Override
method getLocation (line 120) | @Override
method getObject (line 125) | @Override
method getValue (line 134) | @Override
method getArray (line 147) | @Override
method getArrayStream (line 156) | @Override
method getObjectStream (line 163) | @Override
method getValueStream (line 170) | @Override
method skipArray (line 177) | @Override
method skipObject (line 184) | @Override
method close (line 191) | @Override
method validate (line 196) | private void validate() {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/AbstractDateDeserializer.java
class AbstractDateDeserializer (line 39) | abstract class AbstractDateDeserializer<T> extends TypeDeserializer {
method AbstractDateDeserializer (line 45) | AbstractDateDeserializer(TypeDeserializerBuilder builder) {
method AbstractDateDeserializer (line 50) | AbstractDateDeserializer(Class<Date> clazz) {
method actualDeserializer (line 55) | private ModelDeserializer<String> actualDeserializer(JsonbConfigProper...
method getJsonbDateFormatter (line 80) | private JsonbDateFormatter getJsonbDateFormatter(JsonbConfigProperties...
method deserializeStringValue (line 85) | @Override
method fromInstant (line 100) | abstract T fromInstant(Instant instant);
method parseDefault (line 110) | abstract T parseDefault(String jsonValue, Locale locale);
method parseWithFormatter (line 119) | abstract T parseWithFormatter(String jsonValue, DateTimeFormatter form...
method parseWithFormatterInternal (line 121) | private T parseWithFormatterInternal(String jsonValue, DateTimeFormatt...
method getZonedFormatter (line 129) | protected DateTimeFormatter getZonedFormatter(DateTimeFormatter format...
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/AbstractNumberDeserializer.java
class AbstractNumberDeserializer (line 35) | abstract class AbstractNumberDeserializer<T extends Number> extends Type...
method AbstractNumberDeserializer (line 40) | AbstractNumberDeserializer(TypeDeserializerBuilder builder, boolean in...
method actualDeserializer (line 46) | private ModelDeserializer<String> actualDeserializer(TypeDeserializerB...
method createCompatibilityValueChanger (line 75) | private Function<String, String> createCompatibilityValueChanger(Local...
method parseNumberValue (line 85) | abstract T parseNumberValue(String value);
method deserializeStringValue (line 87) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/BigDecimalDeserializer.java
class BigDecimalDeserializer (line 20) | class BigDecimalDeserializer extends AbstractNumberDeserializer<BigDecim...
method BigDecimalDeserializer (line 22) | BigDecimalDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/BigIntegerDeserializer.java
class BigIntegerDeserializer (line 20) | class BigIntegerDeserializer extends AbstractNumberDeserializer<BigInteg...
method BigIntegerDeserializer (line 22) | BigIntegerDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/BooleanDeserializer.java
class BooleanDeserializer (line 22) | class BooleanDeserializer extends TypeDeserializer {
method BooleanDeserializer (line 24) | BooleanDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 28) | @Override
method deserializeBooleanValue (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ByteDeserializer.java
class ByteDeserializer (line 18) | class ByteDeserializer extends AbstractNumberDeserializer<Byte> {
method ByteDeserializer (line 20) | ByteDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 24) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/CalendarDeserializer.java
class CalendarDeserializer (line 31) | class CalendarDeserializer extends AbstractDateDeserializer<Calendar> {
method CalendarDeserializer (line 37) | CalendarDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 44) | @Override
method parseDefault (line 51) | @Override
method parseWithFormatter (line 59) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/CharDeserializer.java
class CharDeserializer (line 22) | class CharDeserializer extends TypeDeserializer {
method CharDeserializer (line 24) | CharDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/DateDeserializer.java
class DateDeserializer (line 41) | class DateDeserializer extends AbstractDateDeserializer<Date> {
method DateDeserializer (line 45) | DateDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 49) | @Override
method parseDefault (line 54) | @Override
method parseWithFormatter (line 59) | @Override
method parseWithOrWithoutZone (line 64) | private static Date parseWithOrWithoutZone(String jsonValue, DateTimeF...
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/DoubleDeserializer.java
class DoubleDeserializer (line 18) | class DoubleDeserializer extends AbstractNumberDeserializer<Double> {
method DoubleDeserializer (line 20) | DoubleDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 24) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/DurationDeserializer.java
class DurationDeserializer (line 23) | class DurationDeserializer extends TypeDeserializer {
method DurationDeserializer (line 25) | DurationDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/EnumDeserializer.java
class EnumDeserializer (line 22) | class EnumDeserializer extends TypeDeserializer {
method EnumDeserializer (line 24) | EnumDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 28) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/FloatDeserializer.java
class FloatDeserializer (line 18) | class FloatDeserializer extends AbstractNumberDeserializer<Float> {
method FloatDeserializer (line 20) | FloatDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 24) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/InstantDeserializer.java
class InstantDeserializer (line 22) | class InstantDeserializer extends AbstractDateDeserializer<Instant> {
method InstantDeserializer (line 26) | InstantDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 30) | @Override
method parseDefault (line 35) | @Override
method parseWithFormatter (line 40) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/IntegerDeserializer.java
class IntegerDeserializer (line 24) | class IntegerDeserializer extends AbstractNumberDeserializer<Integer> {
method IntegerDeserializer (line 26) | IntegerDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 30) | @Override
method deserializeNumberValue (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/JsonValueDeserializer.java
class JsonValueDeserializer (line 27) | class JsonValueDeserializer implements ModelDeserializer<JsonParser> {
method JsonValueDeserializer (line 32) | JsonValueDeserializer(TypeDeserializerBuilder builder, JsonValue nullV...
method deserialize (line 37) | @Override
method deserializeValue (line 43) | private JsonValue deserializeValue(JsonParser.Event last, JsonParser p...
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalDateDeserializer.java
class LocalDateDeserializer (line 23) | class LocalDateDeserializer extends AbstractDateDeserializer<LocalDate> {
method LocalDateDeserializer (line 25) | LocalDateDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 29) | @Override
method parseDefault (line 34) | @Override
method parseWithFormatter (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalDateTimeDeserializer.java
class LocalDateTimeDeserializer (line 23) | class LocalDateTimeDeserializer extends AbstractDateDeserializer<LocalDa...
method LocalDateTimeDeserializer (line 25) | LocalDateTimeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 29) | @Override
method parseDefault (line 34) | @Override
method parseWithFormatter (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalTimeDeserializer.java
class LocalTimeDeserializer (line 28) | class LocalTimeDeserializer extends AbstractDateDeserializer<LocalTime> {
method LocalTimeDeserializer (line 30) | LocalTimeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 34) | @Override
method parseDefault (line 39) | @Override
method parseWithFormatter (line 44) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/LongDeserializer.java
class LongDeserializer (line 24) | class LongDeserializer extends AbstractNumberDeserializer<Long> {
method LongDeserializer (line 26) | LongDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 30) | @Override
method deserializeNumberValue (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/MonthDayTypeDeserializer.java
class MonthDayTypeDeserializer (line 23) | class MonthDayTypeDeserializer extends AbstractDateDeserializer<MonthDay> {
method MonthDayTypeDeserializer (line 27) | MonthDayTypeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 31) | @Override
method parseDefault (line 36) | @Override
method parseWithFormatter (line 41) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/NumberDeserializer.java
class NumberDeserializer (line 23) | class NumberDeserializer extends TypeDeserializer {
method NumberDeserializer (line 25) | NumberDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ObjectTypeDeserializer.java
class ObjectTypeDeserializer (line 28) | class ObjectTypeDeserializer implements ModelDeserializer<JsonParser> {
method ObjectTypeDeserializer (line 35) | ObjectTypeDeserializer(TypeDeserializerBuilder builder) {
method deserialize (line 40) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/OffsetDateTimeDeserializer.java
class OffsetDateTimeDeserializer (line 27) | class OffsetDateTimeDeserializer extends AbstractDateDeserializer<Offset...
method OffsetDateTimeDeserializer (line 31) | OffsetDateTimeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 39) | @Override
method parseDefault (line 45) | @Override
method parseWithFormatter (line 50) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/OffsetTimeDeserializer.java
class OffsetTimeDeserializer (line 28) | class OffsetTimeDeserializer extends AbstractDateDeserializer<OffsetTime> {
method OffsetTimeDeserializer (line 30) | OffsetTimeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 34) | @Override
method parseDefault (line 39) | @Override
method parseWithFormatter (line 44) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalDoubleDeserializer.java
class OptionalDoubleDeserializer (line 25) | class OptionalDoubleDeserializer implements ModelDeserializer<JsonParser> {
method OptionalDoubleDeserializer (line 30) | OptionalDoubleDeserializer(ModelDeserializer<JsonParser> extractor, Mo...
method deserialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalIntDeserializer.java
class OptionalIntDeserializer (line 25) | class OptionalIntDeserializer implements ModelDeserializer<JsonParser> {
method OptionalIntDeserializer (line 30) | OptionalIntDeserializer(ModelDeserializer<JsonParser> extractor, Model...
method deserialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalLongDeserializer.java
class OptionalLongDeserializer (line 25) | class OptionalLongDeserializer implements ModelDeserializer<JsonParser> {
method OptionalLongDeserializer (line 30) | OptionalLongDeserializer(ModelDeserializer<JsonParser> extractor, Mode...
method deserialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/PathDeserializer.java
class PathDeserializer (line 23) | class PathDeserializer extends TypeDeserializer {
method PathDeserializer (line 25) | PathDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/PeriodDeserializer.java
class PeriodDeserializer (line 23) | class PeriodDeserializer extends TypeDeserializer {
method PeriodDeserializer (line 25) | PeriodDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ShortDeserializer.java
class ShortDeserializer (line 18) | class ShortDeserializer extends AbstractNumberDeserializer<Short> {
method ShortDeserializer (line 20) | ShortDeserializer(TypeDeserializerBuilder builder) {
method parseNumberValue (line 24) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/SqlDateDeserializer.java
class SqlDateDeserializer (line 31) | public class SqlDateDeserializer extends AbstractDateDeserializer<Date> ...
method SqlDateDeserializer (line 35) | SqlDateDeserializer(TypeDeserializerBuilder builder) {
method SqlDateDeserializer (line 42) | public SqlDateDeserializer() {
method fromInstant (line 46) | @Override
method parseDefault (line 51) | @Override
method parseWithFormatter (line 56) | @Override
method deserialize (line 61) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/SqlTimestampDeserializer.java
class SqlTimestampDeserializer (line 26) | class SqlTimestampDeserializer extends AbstractDateDeserializer<Timestam...
method SqlTimestampDeserializer (line 30) | SqlTimestampDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 34) | @Override
method parseDefault (line 39) | @Override
method parseWithFormatter (line 45) | @Override
method getInstant (line 51) | private Instant getInstant(TemporalAccessor parsed) {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/StringDeserializer.java
class StringDeserializer (line 28) | class StringDeserializer extends TypeDeserializer {
method StringDeserializer (line 30) | StringDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 34) | @Override
method checkIJson (line 40) | private String checkIJson(String value, JsonbConfigProperties config) {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/TimeZoneDeserializer.java
class TimeZoneDeserializer (line 31) | class TimeZoneDeserializer extends TypeDeserializer {
method TimeZoneDeserializer (line 33) | TimeZoneDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 37) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializer.java
class TypeDeserializer (line 25) | public abstract class TypeDeserializer implements ModelDeserializer<Stri...
method TypeDeserializer (line 30) | TypeDeserializer(TypeDeserializerBuilder builder) {
method deserialize (line 35) | @Override
method deserialize (line 40) | public final Object deserialize(boolean value, DeserializationContextI...
method deserialize (line 44) | public final Object deserialize(JsonParser value, DeserializationConte...
method deserializeStringValue (line 48) | abstract Object deserializeStringValue(String value, DeserializationCo...
method deserializeBooleanValue (line 50) | Object deserializeBooleanValue(boolean value, DeserializationContextIm...
method deserializeNumberValue (line 54) | Object deserializeNumberValue(JsonParser value, DeserializationContext...
method getType (line 58) | Class<?> getType() {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializerBuilder.java
class TypeDeserializerBuilder (line 22) | class TypeDeserializerBuilder {
method TypeDeserializerBuilder (line 29) | TypeDeserializerBuilder(Class<?> clazz,
method getClazz (line 39) | public Class<?> getClazz() {
method getConfigProperties (line 43) | public JsonbConfigProperties getConfigProperties() {
method getDelegate (line 47) | public ModelDeserializer<Object> getDelegate() {
method getCustomization (line 51) | public Customization getCustomization() {
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializers.java
class TypeDeserializers (line 67) | public class TypeDeserializers {
method TypeDeserializers (line 129) | private TypeDeserializers() {
method getTypeDeserializer (line 143) | public static ModelDeserializer<JsonParser> getTypeDeserializer(Class<...
method assignableCases (line 186) | private static ModelDeserializer<JsonParser> assignableCases(TypeDeser...
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/UriDeserializer.java
class UriDeserializer (line 23) | class UriDeserializer extends TypeDeserializer {
method UriDeserializer (line 25) | UriDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/UrlDeserializer.java
class UrlDeserializer (line 24) | class UrlDeserializer extends TypeDeserializer {
method UrlDeserializer (line 26) | UrlDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/UuidDeserializer.java
class UuidDeserializer (line 23) | class UuidDeserializer extends TypeDeserializer {
method UuidDeserializer (line 25) | UuidDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/XmlGregorianCalendarDeserializer.java
class XmlGregorianCalendarDeserializer (line 40) | class XmlGregorianCalendarDeserializer extends AbstractDateDeserializer<...
method XmlGregorianCalendarDeserializer (line 47) | XmlGregorianCalendarDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 59) | @Override
method parseDefault (line 66) | @Override
method parseWithFormatter (line 74) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/YearMonthTypeDeserializer.java
class YearMonthTypeDeserializer (line 23) | class YearMonthTypeDeserializer extends AbstractDateDeserializer<YearMon...
method YearMonthTypeDeserializer (line 27) | YearMonthTypeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 31) | @Override
method parseDefault (line 36) | @Override
method parseWithFormatter (line 41) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ZoneIdDeserializer.java
class ZoneIdDeserializer (line 23) | class ZoneIdDeserializer extends TypeDeserializer {
method ZoneIdDeserializer (line 25) | ZoneIdDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ZoneOffsetDeserializer.java
class ZoneOffsetDeserializer (line 23) | class ZoneOffsetDeserializer extends TypeDeserializer {
method ZoneOffsetDeserializer (line 25) | ZoneOffsetDeserializer(TypeDeserializerBuilder builder) {
method deserializeStringValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/deserializer/types/ZonedDateTimeDeserializer.java
class ZonedDateTimeDeserializer (line 27) | class ZonedDateTimeDeserializer extends AbstractDateDeserializer<ZonedDa...
method ZonedDateTimeDeserializer (line 31) | ZonedDateTimeDeserializer(TypeDeserializerBuilder builder) {
method fromInstant (line 39) | @Override
method parseDefault (line 45) | @Override
method parseWithFormatter (line 50) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonArrayBuilder.java
class JsonArrayBuilder (line 26) | class JsonArrayBuilder extends JsonStructureBuilder {
method JsonArrayBuilder (line 35) | JsonArrayBuilder(JsonProvider provider) {
method build (line 39) | @Override
method write (line 44) | @Override
method write (line 49) | @Override
method write (line 54) | @Override
method write (line 59) | @Override
method write (line 64) | @Override
method write (line 69) | @Override
method write (line 74) | @Override
method write (line 79) | @Override
method writeNull (line 84) | @Override
method put (line 89) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonArrayIterator.java
class JsonArrayIterator (line 29) | public class JsonArrayIterator extends JsonStructureIterator {
method JsonArrayIterator (line 40) | public JsonArrayIterator(JsonArray jsonArray) {
method hasNext (line 49) | @Override
method next (line 54) | @Override
method getValue (line 63) | @Override
method createIncompatibleValueError (line 68) | @Override
method getString (line 74) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonGeneratorToStructureAdapter.java
class JsonGeneratorToStructureAdapter (line 36) | public class JsonGeneratorToStructureAdapter implements JsonGenerator {
method JsonGeneratorToStructureAdapter (line 49) | public JsonGeneratorToStructureAdapter(JsonProvider provider) {
method writeStartObject (line 54) | @Override
method writeStartObject (line 60) | @Override
method writeKey (line 67) | @Override
method writeStartArray (line 73) | @Override
method writeStartArray (line 79) | @Override
method write (line 86) | @Override
method write (line 92) | @Override
method write (line 98) | @Override
method write (line 104) | @Override
method write (line 110) | @Override
method write (line 116) | @Override
method write (line 122) | @Override
method write (line 128) | @Override
method getJsonObjectBuilder (line 134) | private JsonObjectBuilder getJsonObjectBuilder(String keyName) {
method writeNull (line 144) | @Override
method writeEnd (line 150) | @Override
method write (line 162) | @Override
method write (line 168) | @Override
method write (line 174) | @Override
method write (line 180) | @Override
method write (line 186) | @Override
method write (line 192) | @Override
method write (line 198) | @Override
method write (line 204) | @Override
method writeNull (line 210) | @Override
method close (line 216) | @Override
method flush (line 221) | @Override
method getRootStructure (line 231) | public JsonStructure getRootStructure() {
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonObjectBuilder.java
class JsonObjectBuilder (line 30) | class JsonObjectBuilder extends JsonStructureBuilder {
method JsonObjectBuilder (line 41) | JsonObjectBuilder(JsonProvider provider) {
method build (line 45) | @Override
method put (line 50) | @Override
method put (line 61) | void put(String name, JsonStructure structure) {
method write (line 65) | @Override
method write (line 70) | @Override
method write (line 75) | @Override
method write (line 80) | @Override
method write (line 85) | @Override
method write (line 90) | @Override
method write (line 95) | @Override
method write (line 100) | @Override
method writeNull (line 105) | @Override
method write (line 116) | void write(String name, JsonValue value) {
method write (line 126) | void write(String name, String value) {
method write (line 136) | void write(String name, BigDecimal value) {
method write (line 146) | void write(String name, BigInteger value) {
method write (line 156) | void write(String name, int value) {
method write (line 166) | void write(String name, long value) {
method write (line 176) | void write(String name, double value) {
method write (line 186) | void write(String name, boolean value) {
method writeNull (line 195) | void writeNull(String name) {
method writeKey (line 204) | void writeKey(String key) {
method getNextKey (line 208) | private String getNextKey() {
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonObjectIterator.java
class JsonObjectIterator (line 28) | public class JsonObjectIterator extends JsonStructureIterator {
type State (line 33) | public enum State {
method JsonObjectIterator (line 60) | JsonObjectIterator(JsonObject jsonObject) {
method nextKey (line 65) | private void nextKey() {
method next (line 72) | @Override
method hasNext (line 102) | @Override
method getValue (line 113) | public JsonValue getValue() {
method getString (line 120) | @Override
method createIncompatibleValueError (line 128) | @Override
method setState (line 135) | private void setState(State state) {
method getKey (line 144) | public String getKey() {
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureBuilder.java
class JsonStructureBuilder (line 24) | abstract class JsonStructureBuilder {
method build (line 31) | abstract JsonStructure build();
method put (line 39) | abstract void put(JsonStructure structure);
method write (line 47) | abstract void write(JsonValue value);
method write (line 55) | abstract void write(String value);
method write (line 63) | abstract void write(BigDecimal value);
method write (line 71) | abstract void write(BigInteger value);
method write (line 79) | abstract void write(int value);
method write (line 87) | abstract void write(long value);
method write (line 95) | abstract void write(double value);
method write (line 103) | abstract void write(boolean value);
method writeNull (line 109) | abstract void writeNull();
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureIterator.java
class JsonStructureIterator (line 28) | abstract class JsonStructureIterator implements Iterator<JsonParser.Even...
method getValue (line 35) | abstract JsonValue getValue();
method createIncompatibleValueError (line 43) | abstract JsonbException createIncompatibleValueError();
method getString (line 50) | String getString() {
method getValueEvent (line 65) | JsonParser.Event getValueEvent(JsonValue value) {
FILE: src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureToParserAdapter.java
class JsonStructureToParserAdapter (line 39) | public class JsonStructureToParserAdapter implements JsonParser {
method JsonStructureToParserAdapter (line 50) | public JsonStructureToParserAdapter(JsonStructure structure) {
method hasNext (line 54) | @Override
method next (line 59) | @Override
method currentEvent (line 82) | @Override
method getString (line 87) | @Override
method isIntegralNumber (line 92) | @Override
method getInt (line 97) | @Override
method getLong (line 102) | @Override
method getBigDecimal (line 107) | @Override
method getValue (line 112) | @Override
method getObject (line 117) | @Override
method getArray (line 129) | @Override
method getJsonNumberValue (line 140) | private JsonNumber getJsonNumberValue() {
method getLocation (line 149) | @Override
method skipArray (line 154) | @Override
method skipObject (line 164) | @Override
method close (line 174) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/AnnotationTarget.java
type AnnotationTarget (line 24) | public enum AnnotationTarget {
FILE: src/main/java/org/eclipse/yasson/internal/model/ClassModel.java
class ClassModel (line 34) | public class ClassModel {
method getPropertyModel (line 64) | public PropertyModel getPropertyModel(String name) {
method ClassModel (line 76) | public ClassModel(Class<?> clazz,
method findPropertyModelByJsonReadName (line 93) | public PropertyModel findPropertyModelByJsonReadName(String jsonReadNa...
method searchProperty (line 98) | private PropertyModel searchProperty(ClassModel classModel, String jso...
method equalsReadName (line 121) | private boolean equalsReadName(String jsonName, PropertyModel property...
method getType (line 134) | public Class<?> getType() {
method getClassCustomization (line 143) | public ClassCustomization getClassCustomization() {
method getParentClassModel (line 152) | public ClassModel getParentClassModel() {
method getSortedProperties (line 161) | public PropertyModel[] getSortedProperties() {
method setProperties (line 170) | public void setProperties(List<PropertyModel> parsedProperties) {
method getProperties (line 180) | public Map<String, PropertyModel> getProperties() {
method getDefaultConstructor (line 189) | public Constructor<?> getDefaultConstructor() {
method toString (line 205) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/CreatorModel.java
class CreatorModel (line 30) | public class CreatorModel {
method CreatorModel (line 45) | public CreatorModel(String name, Parameter parameter, Executable execu...
method getName (line 80) | public String getName() {
method getCustomization (line 84) | public CreatorCustomization getCustomization() {
method getType (line 93) | public Type getType() {
FILE: src/main/java/org/eclipse/yasson/internal/model/JsonbAnnotatedElement.java
class JsonbAnnotatedElement (line 28) | public class JsonbAnnotatedElement<T extends AnnotatedElement> {
method JsonbAnnotatedElement (line 39) | public JsonbAnnotatedElement(T element) {
method getElement (line 56) | public T getElement() {
method getAnnotation (line 67) | public <AT extends Annotation> Optional<AT> getAnnotation(Class<AT> an...
method getAnnotations (line 74) | public <AT extends Annotation> LinkedList<AnnotationWrapper<?>> getAnn...
method getAnnotationWrapper (line 78) | @SuppressWarnings("unchecked")
method getAnnotations (line 83) | public Annotation[] getAnnotations() {
method putAnnotation (line 96) | public void putAnnotation(Annotation annotation, boolean inherited, Cl...
method putAnnotationWrapper (line 106) | public void putAnnotationWrapper(AnnotationWrapper<?> annotationWrappe...
class AnnotationWrapper (line 111) | public static final class AnnotationWrapper<T extends Annotation> {
method AnnotationWrapper (line 117) | public AnnotationWrapper(T annotation, boolean inherited, Class<?> d...
method getAnnotation (line 123) | public T getAnnotation() {
method isInherited (line 127) | public boolean isInherited() {
method getDefinedType (line 131) | public Class<?> getDefinedType() {
method toString (line 135) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/JsonbCreator.java
class JsonbCreator (line 28) | public class JsonbCreator {
method JsonbCreator (line 40) | public JsonbCreator(Executable executable, CreatorModel[] creatorModel...
method call (line 53) | @SuppressWarnings("unchecked")
method contains (line 72) | public boolean contains(String paramName) {
method findByName (line 82) | public CreatorModel findByName(String paramName) {
method getParams (line 96) | public CreatorModel[] getParams() {
FILE: src/main/java/org/eclipse/yasson/internal/model/ModulesUtil.java
class ModulesUtil (line 17) | class ModulesUtil {
method ModulesUtil (line 19) | private ModulesUtil() {
method lookup (line 22) | static MethodHandles.Lookup lookup(){
FILE: src/main/java/org/eclipse/yasson/internal/model/Property.java
class Property (line 25) | public class Property {
method Property (line 43) | public Property(String name, JsonbAnnotatedElement<Class<?>> declaring...
method getName (line 53) | public String getName() {
method getField (line 62) | public Field getField() {
method setField (line 72) | public void setField(Field field) {
method getGetter (line 81) | public Method getGetter() {
method setGetter (line 91) | public void setGetter(Method getter) {
method getSetter (line 100) | public Method getSetter() {
method setSetter (line 110) | public void setSetter(Method setter) {
method getDeclaringClassElement (line 120) | public JsonbAnnotatedElement<Class<?>> getDeclaringClassElement() {
method getPropertyType (line 130) | public Type getPropertyType() {
method getGetterType (line 141) | Type getGetterType() {
method getSetterType (line 148) | Type getSetterType() {
method getFieldElement (line 161) | public JsonbAnnotatedElement<Field> getFieldElement() {
method getGetterElement (line 170) | public JsonbAnnotatedElement<Method> getGetterElement() {
method getSetterElement (line 179) | public JsonbAnnotatedElement<Method> getSetterElement() {
FILE: src/main/java/org/eclipse/yasson/internal/model/PropertyModel.java
class PropertyModel (line 45) | public final class PropertyModel implements Comparable<PropertyModel> {
method PropertyModel (line 102) | public PropertyModel(PropertyModel a, PropertyModel b) {
method PropertyModel (line 144) | public PropertyModel(ClassModel classModel, Property property, JsonbCo...
method getPropertyDeserializationType (line 173) | public Type getPropertyDeserializationType() {
method getPropertySerializationType (line 182) | public Type getPropertySerializationType() {
method getUserSerializerBinding (line 186) | private SerializerBinding<?> getUserSerializerBinding(Property propert...
method introspectCustomization (line 194) | private PropertyCustomization introspectCustomization(Property propert...
method introspectDateFormatter (line 265) | private static void introspectDateFormatter(Property property,
method introspectNumberFormatter (line 299) | private static void introspectNumberFormatter(Property property,
method getTargetForMostPreciseScope (line 332) | private static <T> T getTargetForMostPreciseScope(Map<AnnotationTarget...
method getValue (line 349) | public Object getValue(Object object) {
method setValue (line 365) | public void setValue(Object object, Object value) {
method isReadable (line 381) | public boolean isReadable() {
method isWritable (line 390) | public boolean isWritable() {
method getPropertyName (line 401) | public String getPropertyName() {
method getClassModel (line 410) | public ClassModel getClassModel() {
method getCustomization (line 419) | public PropertyCustomization getCustomization() {
method compareTo (line 423) | @Override
method equals (line 429) | @Override
method hashCode (line 442) | @Override
method getReadName (line 452) | public String getReadName() {
method getWriteName (line 456) | public String getWriteName() {
method calculateReadWriteName (line 465) | private static String calculateReadWriteName(String readWriteName, Str...
method getField (line 474) | public Field getField() {
method getGetter (line 483) | public Method getGetter() {
method getSetter (line 492) | public Method getSetter() {
method isPropertyReadable (line 497) | public static boolean isPropertyReadable(Field field, Method getter, P...
method createReadHandle (line 501) | private static MethodHandle createReadHandle(Field field,
method createWriteHandle (line 529) | private static MethodHandle createWriteHandle(Field field,
method isFieldVisible (line 558) | private static boolean isFieldVisible(Field field, Method method, Prop...
method isNotPublicAndNonNested (line 573) | private static boolean isNotPublicAndNonNested(Class<?> declaringClass) {
method isMethodVisible (line 577) | private static boolean isMethodVisible(Method method, PropertyVisibili...
method overrideAccessible (line 592) | private static void overrideAccessible(AccessibleObject accessibleObje...
method isVisible (line 606) | private static boolean isVisible(Predicate<PropertyVisibilityStrategy>...
class DefaultVisibilityStrategy (line 614) | private static final class DefaultVisibilityStrategy implements Proper...
method DefaultVisibilityStrategy (line 618) | DefaultVisibilityStrategy(Method method) {
method isVisible (line 622) | @Override
method isVisible (line 628) | @Override
method getGetValueHandle (line 634) | public MethodHandle getGetValueHandle() {
method getSetValueHandle (line 638) | public MethodHandle getSetValueHandle() {
FILE: src/main/java/org/eclipse/yasson/internal/model/ReverseTreeMap.java
class ReverseTreeMap (line 24) | public class ReverseTreeMap<K extends Comparable<? super K>, V> extends ...
method ReverseTreeMap (line 29) | public ReverseTreeMap() {
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/ClassCustomization.java
class ClassCustomization (line 24) | public class ClassCustomization extends CustomizationBase {
method ClassCustomization (line 40) | private ClassCustomization(Builder builder) {
method empty (line 50) | public static ClassCustomization empty() {
method builder (line 54) | public static Builder builder() {
method getCreator (line 63) | public JsonbCreator getCreator() {
method getPropertyOrder (line 72) | public String[] getPropertyOrder() {
method getPropertyVisibilityStrategy (line 81) | public PropertyVisibilityStrategy getPropertyVisibilityStrategy() {
method getSerializeNumberFormatter (line 85) | @Override
method getDeserializeNumberFormatter (line 90) | @Override
method getSerializeDateFormatter (line 95) | @Override
method getDeserializeDateFormatter (line 100) | @Override
method getPolymorphismConfig (line 105) | public TypeInheritanceConfiguration getPolymorphismConfig() {
class Builder (line 112) | public static class Builder extends CustomizationBase.Builder<Builder,...
method Builder (line 121) | private Builder() {
method of (line 124) | @Override
method creator (line 135) | public Builder creator(JsonbCreator creator) {
method propertyOrder (line 140) | public Builder propertyOrder(String[] propertyOrder) {
method numberFormatter (line 145) | public Builder numberFormatter(JsonbNumberFormatter numberFormatter) {
method dateTimeFormatter (line 150) | public Builder dateTimeFormatter(JsonbDateFormatter dateTimeFormatte...
method propertyVisibilityStrategy (line 155) | public Builder propertyVisibilityStrategy(PropertyVisibilityStrategy...
method polymorphismConfig (line 160) | public Builder polymorphismConfig(TypeInheritanceConfiguration typeI...
method build (line 165) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/ComponentBoundCustomization.java
type ComponentBoundCustomization (line 22) | public interface ComponentBoundCustomization {
method getSerializeAdapterBinding (line 27) | AdapterBinding getSerializeAdapterBinding();
method getDeserializeAdapterBinding (line 32) | AdapterBinding getDeserializeAdapterBinding();
method getSerializerBinding (line 39) | SerializerBinding<?> getSerializerBinding();
method getDeserializerBinding (line 46) | DeserializerBinding<?> getDeserializerBinding();
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/CreatorCustomization.java
class CreatorCustomization (line 22) | public class CreatorCustomization extends CustomizationBase {
method CreatorCustomization (line 34) | private CreatorCustomization(Builder builder) {
method builder (line 41) | public static Builder builder() {
method getSerializeNumberFormatter (line 45) | @Override
method getDeserializeNumberFormatter (line 50) | @Override
method getSerializeDateFormatter (line 60) | @Override
method getDeserializeDateFormatter (line 65) | @Override
method isNillable (line 75) | @Override
method setPropertyModel (line 85) | public void setPropertyModel(PropertyModel propertyModel) {
method isRequired (line 89) | public boolean isRequired() {
class Builder (line 93) | public static final class Builder extends CustomizationBase.Builder<Bu...
method Builder (line 99) | private Builder() {
method of (line 102) | @Override
method numberFormatter (line 110) | public Builder numberFormatter(JsonbNumberFormatter numberFormatter) {
method dateFormatter (line 115) | public Builder dateFormatter(JsonbDateFormatter dateFormatter) {
method required (line 120) | public Builder required(boolean required) {
method build (line 125) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/Customization.java
type Customization (line 23) | public interface Customization {
method getSerializeNumberFormatter (line 32) | JsonbNumberFormatter getSerializeNumberFormatter();
method getDeserializeNumberFormatter (line 41) | JsonbNumberFormatter getDeserializeNumberFormatter();
method getSerializeDateFormatter (line 52) | JsonbDateFormatter getSerializeDateFormatter();
method getDeserializeDateFormatter (line 63) | JsonbDateFormatter getDeserializeDateFormatter();
method isNillable (line 70) | boolean isNillable();
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/CustomizationBase.java
class CustomizationBase (line 22) | abstract class CustomizationBase implements Customization, ComponentBoun...
method CustomizationBase (line 34) | CustomizationBase(Builder<?, ?> builder) {
method isNillable (line 46) | public boolean isNillable() {
method getSerializeAdapterBinding (line 50) | public AdapterBinding getSerializeAdapterBinding() {
method getDeserializeAdapterBinding (line 54) | @Override
method getSerializerBinding (line 64) | public SerializerBinding<?> getSerializerBinding() {
method getDeserializerBinding (line 73) | public DeserializerBinding<?> getDeserializerBinding() {
class Builder (line 77) | @SuppressWarnings("unchecked")
method Builder (line 85) | Builder() {
method of (line 88) | public T of(B customization) {
method adapterBinding (line 96) | public T adapterBinding(AdapterBinding adapterBinding) {
method serializerBinding (line 101) | public T serializerBinding(SerializerBinding<?> serializerBinding) {
method deserializerBinding (line 106) | public T deserializerBinding(DeserializerBinding<?> deserializerBind...
method nillable (line 111) | public T nillable(boolean nillable) {
method build (line 116) | public abstract B build();
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/PropertyCustomization.java
class PropertyCustomization (line 22) | public class PropertyCustomization extends CustomizationBase {
method PropertyCustomization (line 46) | private PropertyCustomization(Builder builder) {
method builder (line 61) | public static Builder builder() {
method getJsonReadName (line 70) | public String getJsonReadName() {
method getJsonWriteName (line 79) | public String getJsonWriteName() {
method getSerializeNumberFormatter (line 83) | @Override
method getDeserializeNumberFormatter (line 88) | @Override
method getSerializeDateFormatter (line 93) | @Override
method getDeserializeDateFormatter (line 98) | @Override
method isReadTransient (line 110) | public boolean isReadTransient() {
method isWriteTransient (line 121) | public boolean isWriteTransient() {
method getImplementationClass (line 130) | public Class<?> getImplementationClass() {
method getDeserializeAdapterBinding (line 134) | @Override
method getSerializeAdapterBinding (line 139) | @Override
class Builder (line 144) | public static final class Builder extends CustomizationBase.Builder<Bu...
method Builder (line 158) | private Builder() {
method of (line 161) | @Override
method jsonReadName (line 182) | public Builder jsonReadName(String jsonReadName) {
method jsonWriteName (line 192) | public Builder jsonWriteName(String jsonWriteName) {
method serializeNumberFormatter (line 202) | public Builder serializeNumberFormatter(JsonbNumberFormatter seriali...
method deserializeNumberFormatter (line 212) | public Builder deserializeNumberFormatter(JsonbNumberFormatter deser...
method serializeDateFormatter (line 222) | public Builder serializeDateFormatter(JsonbDateFormatter serializeDa...
method deserializeDateFormatter (line 232) | public Builder deserializeDateFormatter(JsonbDateFormatter deseriali...
method serializeAdapter (line 237) | public Builder serializeAdapter(AdapterBinding serializeAdapter) {
method deserializeAdapter (line 242) | public Builder deserializeAdapter(AdapterBinding deserializeAdapter) {
method readTransient (line 252) | public Builder readTransient(boolean readTransient) {
method readTransient (line 257) | public boolean readTransient() {
method writeTransient (line 266) | public Builder writeTransient(boolean writeTransient) {
method writeTransient (line 271) | public boolean writeTransient() {
method implementationClass (line 280) | public Builder implementationClass(Class<?> implementationClass) {
method build (line 285) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/PropertyOrdering.java
class PropertyOrdering (line 32) | public class PropertyOrdering {
method PropertyOrdering (line 41) | public PropertyOrdering(Consumer<List<PropertyModel>> propertyOrderStr...
method orderProperties (line 53) | public List<PropertyModel> orderProperties(List<PropertyModel> propert...
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/StrategiesProvider.java
class StrategiesProvider (line 43) | public final class StrategiesProvider {
method StrategiesProvider (line 44) | private StrategiesProvider() {
method getOrderingFunction (line 58) | public static Consumer<List<PropertyModel>> getOrderingFunction(String...
method getPropertyNamingStrategy (line 78) | public static PropertyNamingStrategy getPropertyNamingStrategy(String ...
method createUpperCamelCaseStrategy (line 97) | private static PropertyNamingStrategy createUpperCamelCaseStrategy() {
method createUpperCamelCaseWithSpaceStrategy (line 106) | private static PropertyNamingStrategy createUpperCamelCaseWithSpaceStr...
method createLowerCaseStrategyWithSeparator (line 125) | private static PropertyNamingStrategy createLowerCaseStrategyWithSepar...
method isLowerCaseCharacter (line 144) | private static boolean isLowerCaseCharacter(char character) {
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/TypeInheritanceConfiguration.java
class TypeInheritanceConfiguration (line 24) | public class TypeInheritanceConfiguration {
method TypeInheritanceConfiguration (line 32) | private TypeInheritanceConfiguration(Builder builder) {
method builder (line 40) | public static Builder builder() {
method getFieldName (line 44) | public String getFieldName() {
method isInherited (line 48) | public boolean isInherited() {
method getAliases (line 52) | public Map<Class<?>, String> getAliases() {
method getDefinedType (line 56) | public Class<?> getDefinedType() {
method getParentConfig (line 60) | public TypeInheritanceConfiguration getParentConfig() {
class Builder (line 64) | public static final class Builder {
method Builder (line 72) | private Builder() {
method inherited (line 75) | public Builder inherited(boolean inherited) {
method fieldName (line 80) | public Builder fieldName(String fieldName) {
method alias (line 85) | public Builder alias(Class<?> clazz, String alias) {
method parentConfig (line 90) | public Builder parentConfig(TypeInheritanceConfiguration parentConfi...
method definedType (line 95) | public Builder definedType(Class<?> definedType) {
method of (line 100) | public Builder of(TypeInheritanceConfiguration typeInheritanceConfig...
method build (line 109) | public TypeInheritanceConfiguration build() {
FILE: src/main/java/org/eclipse/yasson/internal/model/customization/VisibilityStrategiesProvider.java
class VisibilityStrategiesProvider (line 28) | public class VisibilityStrategiesProvider {
method VisibilityStrategiesProvider (line 35) | private VisibilityStrategiesProvider() {
method getStrategy (line 39) | public static PropertyVisibilityStrategy getStrategy(String strategy) {
class PublicPropertyVisibilityStrategy (line 54) | private static final class PublicPropertyVisibilityStrategy implements...
method isVisible (line 55) | @Override
method isVisible (line 60) | @Override
class PublicAccessorVisibilityStrategy (line 66) | private static final class PublicAccessorVisibilityStrategy implements...
method isVisible (line 68) | @Override
method isVisible (line 73) | @Override
class PublicFieldsVisibilityStrategy (line 80) | private static final class PublicFieldsVisibilityStrategy implements P...
method isVisible (line 82) | @Override
method isVisible (line 87) | @Override
class AllFieldsVisibilityStrategy (line 94) | private static final class AllFieldsVisibilityStrategy implements Prop...
method isVisible (line 95) | @Override
method isVisible (line 100) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java
type MessageKeys (line 29) | public enum MessageKeys {
method MessageKeys (line 330) | MessageKeys(final String key) {
method getKey (line 339) | public String getKey() {
FILE: src/main/java/org/eclipse/yasson/internal/properties/Messages.java
class Messages (line 28) | public class Messages {
method Messages (line 33) | private Messages() {
method getMessage (line 43) | public static String getMessage(MessageKeys key, Object... objects) {
method getMessage (line 55) | public static String getMessage(MessageKeys key, Locale locale, Object...
method getResourceBundle (line 64) | private static ResourceBundle getResourceBundle(Locale locale) {
class UTF8Control (line 72) | static class UTF8Control extends ResourceBundle.Control {
method newBundle (line 73) | public ResourceBundle newBundle(String baseName, Locale locale, Stri...
FILE: src/main/java/org/eclipse/yasson/internal/serializer/AbstractSerializer.java
class AbstractSerializer (line 18) | abstract class AbstractSerializer implements ModelSerializer {
method AbstractSerializer (line 22) | AbstractSerializer(ModelSerializer delegate) {
FILE: src/main/java/org/eclipse/yasson/internal/serializer/AdapterSerializer.java
class AdapterSerializer (line 27) | class AdapterSerializer extends AbstractSerializer {
method AdapterSerializer (line 32) | @SuppressWarnings("unchecked")
method serialize (line 40) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/ArraySerializer.java
class ArraySerializer (line 31) | abstract class ArraySerializer implements ModelSerializer {
method ArraySerializer (line 48) | protected ArraySerializer(ModelSerializer valueSerializer) {
method create (line 52) | public static ModelSerializer create(Class<?> arrayType,
method serialize (line 65) | @Override
method serializeArray (line 72) | abstract void serializeArray(Object value, JsonGenerator generator, Se...
method getValueSerializer (line 74) | protected ModelSerializer getValueSerializer() {
class ByteArraySerializer (line 78) | private static final class ByteArraySerializer extends ArraySerializer {
method ByteArraySerializer (line 80) | ByteArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 84) | @Override
class Base64ByteArraySerializer (line 94) | private static final class Base64ByteArraySerializer implements ModelS...
method Base64ByteArraySerializer (line 98) | Base64ByteArraySerializer(String strategy) {
method serialize (line 102) | @Override
method getEncoder (line 108) | private Base64.Encoder getEncoder(String strategy) {
class ShortArraySerializer (line 120) | private static final class ShortArraySerializer extends ArraySerializer {
method ShortArraySerializer (line 122) | ShortArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 126) | @Override
class IntegerArraySerializer (line 136) | private static final class IntegerArraySerializer extends ArraySeriali...
method IntegerArraySerializer (line 138) | IntegerArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 142) | @Override
class LongArraySerializer (line 152) | private static final class LongArraySerializer extends ArraySerializer {
method LongArraySerializer (line 154) | LongArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 158) | @Override
class FloatArraySerializer (line 168) | private static final class FloatArraySerializer extends ArraySerializer {
method FloatArraySerializer (line 170) | FloatArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 174) | @Override
class DoubleArraySerializer (line 184) | private static final class DoubleArraySerializer extends ArraySerializ...
method DoubleArraySerializer (line 186) | DoubleArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 190) | @Override
class BooleanArraySerializer (line 200) | private static final class BooleanArraySerializer extends ArraySeriali...
method BooleanArraySerializer (line 202) | BooleanArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 206) | @Override
class CharacterArraySerializer (line 216) | private static final class CharacterArraySerializer extends ArraySeria...
method CharacterArraySerializer (line 218) | CharacterArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 222) | @Override
class ObjectArraySerializer (line 232) | private static final class ObjectArraySerializer extends ArraySerializ...
method ObjectArraySerializer (line 234) | ObjectArraySerializer(ModelSerializer valueSerializer) {
method serializeArray (line 238) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/CollectionSerializer.java
class CollectionSerializer (line 24) | class CollectionSerializer implements ModelSerializer {
method CollectionSerializer (line 28) | CollectionSerializer(ModelSerializer delegate) {
method serialize (line 32) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/serializer/CyclicReferenceSerializer.java
class CyclicReferenceSerializer (line 25) | class CyclicReferenceSerializer implements ModelSerializer {
method CyclicReferenceSerializer (line 30) | CyclicReferenceSerializer(Type type) {
method serialize (line 34) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/KeyWriter.java
class KeyWriter (line 22) | public class KeyWriter implements ModelSerializer {
method KeyWriter (line 31) | public KeyWriter(ModelSerializer delegate) {
method serialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/MapSerializer.java
class MapSerializer (line 26) | abstract class MapSerializer implements ModelSerializer {
method MapSerializer (line 31) | MapSerializer(ModelSerializer keySerializer, ModelSerializer valueSeri...
method getKeySerializer (line 36) | ModelSerializer getKeySerializer() {
method getValueSerializer (line 40) | ModelSerializer getValueSerializer() {
method create (line 44) | static MapSerializer create(Class<?> keyClass, ModelSerializer keySeri...
class DynamicMapSerializer (line 59) | private static final class DynamicMapSerializer extends MapSerializer {
method DynamicMapSerializer (line 65) | DynamicMapSerializer(ModelSerializer keySerializer,
method serialize (line 72) | @SuppressWarnings("unchecked")
class StringKeyMapSerializer (line 111) | private static final class StringKeyMapSerializer extends MapSerializer {
method StringKeyMapSerializer (line 113) | StringKeyMapSerializer(ModelSerializer keySerializer,
method serialize (line 118) | @SuppressWarnings("unchecked")
class ObjectKeyMapSerializer (line 132) | private static final class ObjectKeyMapSerializer extends MapSerializer {
method ObjectKeyMapSerializer (line 134) | ObjectKeyMapSerializer(ModelSerializer keySerializer,
method serialize (line 139) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/serializer/ModelSerializer.java
type ModelSerializer (line 25) | public interface ModelSerializer {
method serialize (line 34) | void serialize(Object value, JsonGenerator generator, SerializationCon...
FILE: src/main/java/org/eclipse/yasson/internal/serializer/NullSerializer.java
class NullSerializer (line 25) | public class NullSerializer implements ModelSerializer {
method NullSerializer (line 38) | public NullSerializer(ModelSerializer delegate,
method serialize (line 55) | @Override
class NullWritingEnabled (line 71) | private static final class NullWritingEnabled implements ModelSerializ...
method serialize (line 73) | @Override
class NullWritingDisabled (line 84) | private static class NullWritingDisabled implements ModelSerializer {
method serialize (line 86) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/NullVisibilitySwitcher.java
class NullVisibilitySwitcher (line 26) | class NullVisibilitySwitcher implements ModelSerializer {
method NullVisibilitySwitcher (line 31) | NullVisibilitySwitcher(boolean nullsEnabled, ModelSerializer delegate) {
method serialize (line 36) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/ObjectSerializer.java
class ObjectSerializer (line 27) | class ObjectSerializer implements ModelSerializer {
method ObjectSerializer (line 31) | ObjectSerializer(LinkedHashMap<String, ModelSerializer> propertySerial...
method serialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/OptionalSerializer.java
class OptionalSerializer (line 24) | class OptionalSerializer implements ModelSerializer {
method OptionalSerializer (line 28) | OptionalSerializer(ModelSerializer delegate) {
method serialize (line 32) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/serializer/RecursionChecker.java
class RecursionChecker (line 25) | class RecursionChecker implements ModelSerializer {
method RecursionChecker (line 29) | RecursionChecker(ModelSerializer delegate) {
method serialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java
class SerializationModelCreator (line 49) | public class SerializationModelCreator {
method SerializationModelCreator (line 60) | public SerializationModelCreator(JsonbContext jsonbContext) {
method wrapInCommonSet (line 72) | public static ModelSerializer wrapInCommonSet(ModelSerializer modelSer...
method serializerChain (line 87) | public ModelSerializer serializerChain(Type type, boolean rootValue, b...
method serializerChainRuntime (line 104) | public ModelSerializer serializerChainRuntime(LinkedList<Type> chain,
method serializerChain (line 122) | private ModelSerializer serializerChain(LinkedList<Type> chain,
method serializerChainInternal (line 139) | private ModelSerializer serializerChainInternal(LinkedList<Type> chain,
method createObjectSerializer (line 198) | private ModelSerializer createObjectSerializer(LinkedList<Type> chain,
method addPolymorphismProperty (line 226) | private void addPolymorphismProperty(TypeInheritanceConfiguration type...
method addParentPolymorphismProperty (line 245) | private void addParentPolymorphismProperty(TypeInheritanceConfiguratio...
method createPolymorphismPropertySerializer (line 272) | private ModelSerializer createPolymorphismPropertySerializer(TypeInher...
method createCollectionSerializer (line 279) | private ModelSerializer createCollectionSerializer(LinkedList<Type> ch...
method createMapSerializer (line 295) | private ModelSerializer createMapSerializer(LinkedList<Type> chain, Ty...
method createArraySerializer (line 314) | private ModelSerializer createArraySerializer(LinkedList<Type> chain,
method createGenericArraySerializer (line 326) | private ModelSerializer createGenericArraySerializer(LinkedList<Type> ...
method createOptionalSerializer (line 339) | private ModelSerializer createOptionalSerializer(LinkedList<Type> chain,
method memberSerializer (line 352) | private ModelSerializer memberSerializer(LinkedList<Type> chain,
method userSerializer (line 422) | private Optional<ModelSerializer> userSerializer(Type type, ComponentB...
method adapterBinding (line 433) | private Optional<AdapterBinding> adapterBinding(Type type, ComponentBo...
FILE: src/main/java/org/eclipse/yasson/internal/serializer/SerializerBuilderParams.java
class SerializerBuilderParams (line 26) | class SerializerBuilderParams {
method SerializerBuilderParams (line 35) | private SerializerBuilderParams(Builder builder) {
method builder (line 44) | public static Builder builder(Type type) {
method getType (line 48) | public Type getType() {
method getCustomization (line 52) | public Customization getCustomization() {
method isRoot (line 56) | public boolean isRoot() {
method isKey (line 60) | public boolean isKey() {
method isResolveRootAdapter (line 64) | public boolean isResolveRootAdapter() {
method getObjectBaseSerializer (line 68) | public ModelSerializer getObjectBaseSerializer() {
class Builder (line 72) | static final class Builder {
method Builder (line 81) | private Builder(Type type) {
method type (line 88) | public Builder type(Type type) {
method customization (line 93) | public Builder customization(Customization customization) {
method root (line 98) | public Builder root(boolean root) {
method key (line 103) | public Builder key(boolean key) {
method resolveRootAdapter (line 108) | public Builder resolveRootAdapter(boolean resolveRootAdapter) {
method objectBaseSerializer (line 113) | public Builder objectBaseSerializer(ModelSerializer objectBaseSerial...
method build (line 118) | public SerializerBuilderParams build() {
FILE: src/main/java/org/eclipse/yasson/internal/serializer/UserDefinedSerializer.java
class UserDefinedSerializer (line 23) | class UserDefinedSerializer<T> implements ModelSerializer {
method UserDefinedSerializer (line 27) | UserDefinedSerializer(JsonbSerializer<T> userDefinedSerializer) {
method serialize (line 31) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/serializer/ValueGetterSerializer.java
class ValueGetterSerializer (line 25) | class ValueGetterSerializer implements ModelSerializer {
method ValueGetterSerializer (line 30) | ValueGetterSerializer(MethodHandle valueGetter, ModelSerializer delega...
method serialize (line 35) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/YassonGenerator.java
class YassonGenerator (line 27) | class YassonGenerator implements JsonGenerator {
method YassonGenerator (line 32) | YassonGenerator(JsonGenerator delegate) {
method writeStartObject (line 36) | @Override
method writeStartObject (line 44) | @Override
method writeKey (line 52) | @Override
method writeStartArray (line 59) | @Override
method writeStartArray (line 67) | @Override
method write (line 75) | @Override
method write (line 82) | @Override
method write (line 89) | @Override
method write (line 96) | @Override
method write (line 103) | @Override
method write (line 110) | @Override
method write (line 117) | @Override
method write (line 124) | @Override
method writeNull (line 131) | @Override
method writeEnd (line 138) | @Override
method write (line 151) | @Override
method write (line 158) | @Override
method write (line 165) | @Override
method write (line 172) | @Override
method write (line 179) | @Override
method write (line 186) | @Override
method write (line 193) | @Override
method write (line 200) | @Override
method writeNull (line 207) | @Override
method close (line 214) | @Override
method flush (line 219) | @Override
method writeValidate (line 224) | private void writeValidate(String method) {
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/AbstractDateSerializer.java
class AbstractDateSerializer (line 35) | abstract class AbstractDateSerializer<T> extends TypeSerializer<T> {
method AbstractDateSerializer (line 42) | AbstractDateSerializer(TypeSerializerBuilder serializerBuilder) {
method valueSerializer (line 55) | private Function<T, String> valueSerializer(TypeSerializerBuilder seri...
method getJsonbDateFormatter (line 77) | private JsonbDateFormatter getJsonbDateFormatter(JsonbConfigProperties...
method toTemporalAccessor (line 90) | protected TemporalAccessor toTemporalAccessor(T value) {
method toInstant (line 100) | protected abstract Instant toInstant(T value);
method formatDefault (line 110) | protected abstract String formatDefault(T value, Locale locale);
method formatWithFormatter (line 119) | protected String formatWithFormatter(T value, DateTimeFormatter format...
method formatStrictIJson (line 129) | protected String formatStrictIJson(T value) {
method getZonedFormatter (line 139) | protected DateTimeFormatter getZonedFormatter(DateTimeFormatter format...
method serializeValue (line 145) | @Override
method serializeKey (line 150) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/AbstractNumberSerializer.java
class AbstractNumberSerializer (line 29) | abstract class AbstractNumberSerializer<T> extends TypeSerializer<T> {
method AbstractNumberSerializer (line 33) | AbstractNumberSerializer(TypeSerializerBuilder builder) {
method actualSerializer (line 38) | @SuppressWarnings("unchecked")
method serializeValue (line 50) | @Override
method writeValue (line 55) | abstract void writeValue(T value, JsonGenerator generator);
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/BigDecimalSerializer.java
class BigDecimalSerializer (line 22) | class BigDecimalSerializer extends AbstractNumberSerializer<BigDecimal> {
method BigDecimalSerializer (line 24) | BigDecimalSerializer(TypeSerializerBuilder builder) {
method writeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/BigIntegerSerializer.java
class BigIntegerSerializer (line 22) | class BigIntegerSerializer extends AbstractNumberSerializer<BigInteger> {
method BigIntegerSerializer (line 24) | BigIntegerSerializer(TypeSerializerBuilder builder) {
method writeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/BooleanSerializer.java
class BooleanSerializer (line 22) | class BooleanSerializer extends TypeSerializer<Boolean> {
method BooleanSerializer (line 24) | BooleanSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ByteSerializer.java
class ByteSerializer (line 20) | class ByteSerializer extends AbstractNumberSerializer<Byte> {
method ByteSerializer (line 22) | ByteSerializer(TypeSerializerBuilder builder) {
method writeValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/CalendarSerializer.java
class CalendarSerializer (line 25) | class CalendarSerializer extends AbstractDateSerializer<Calendar> {
method CalendarSerializer (line 27) | CalendarSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 31) | @Override
method formatDefault (line 36) | @Override
method toTemporalAccessor (line 45) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/CharSerializer.java
class CharSerializer (line 22) | class CharSerializer extends TypeSerializer<Character> {
method CharSerializer (line 24) | CharSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/DateSerializer.java
class DateSerializer (line 26) | class DateSerializer<T extends Date> extends AbstractDateSerializer<T> {
method DateSerializer (line 30) | DateSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
method formatWithFormatter (line 44) | @Override
method formatStrictIJson (line 49) | @Override
method toTemporalAccessor (line 54) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/DoubleSerializer.java
class DoubleSerializer (line 20) | class DoubleSerializer extends AbstractNumberSerializer<Double> {
method DoubleSerializer (line 22) | DoubleSerializer(TypeSerializerBuilder builder) {
method writeValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/DurationSerializer.java
class DurationSerializer (line 24) | class DurationSerializer extends TypeSerializer<Duration> {
method DurationSerializer (line 26) | DurationSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/EnumSerializer.java
class EnumSerializer (line 22) | class EnumSerializer extends TypeSerializer<Enum<?>> {
method EnumSerializer (line 24) | EnumSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 28) | @Override
method serializeKey (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/FloatSerializer.java
class FloatSerializer (line 22) | class FloatSerializer extends AbstractNumberSerializer<Float> {
method FloatSerializer (line 24) | FloatSerializer(TypeSerializerBuilder builder) {
method writeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/InstantSerializer.java
class InstantSerializer (line 24) | class InstantSerializer extends AbstractDateSerializer<Instant> {
method InstantSerializer (line 26) | InstantSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 30) | @Override
method formatDefault (line 35) | @Override
method formatWithFormatter (line 40) | @Override
method formatStrictIJson (line 45) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/IntegerSerializer.java
class IntegerSerializer (line 20) | class IntegerSerializer extends AbstractNumberSerializer<Integer> {
method IntegerSerializer (line 22) | IntegerSerializer(TypeSerializerBuilder builder) {
method writeValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/JsonValueSerializer.java
class JsonValueSerializer (line 23) | class JsonValueSerializer extends TypeSerializer<JsonValue> {
method JsonValueSerializer (line 25) | JsonValueSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 29) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/LocalDateSerializer.java
class LocalDateSerializer (line 26) | class LocalDateSerializer extends AbstractDateSerializer<LocalDate> {
method LocalDateSerializer (line 30) | LocalDateSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
method formatStrictIJson (line 44) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/LocalDateTimeSerializer.java
class LocalDateTimeSerializer (line 26) | class LocalDateTimeSerializer extends AbstractDateSerializer<LocalDateTi...
method LocalDateTimeSerializer (line 28) | LocalDateTimeSerializer(TypeSerializerBuilder builder) {
method toInstant (line 32) | @Override
method formatDefault (line 37) | @Override
method formatWithFormatter (line 42) | @Override
method formatStrictIJson (line 47) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/LocalTimeSerializer.java
class LocalTimeSerializer (line 28) | class LocalTimeSerializer extends AbstractDateSerializer<LocalTime> {
method LocalTimeSerializer (line 30) | LocalTimeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/LongSerializer.java
class LongSerializer (line 20) | class LongSerializer extends AbstractNumberSerializer<Long> {
method LongSerializer (line 22) | LongSerializer(TypeSerializerBuilder builder) {
method writeValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/MonthDayTypeSerializer.java
class MonthDayTypeSerializer (line 24) | class MonthDayTypeSerializer extends AbstractDateSerializer<MonthDay> {
method MonthDayTypeSerializer (line 30) | MonthDayTypeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/NumberSerializer.java
class NumberSerializer (line 22) | class NumberSerializer extends AbstractNumberSerializer<Number> {
method NumberSerializer (line 24) | NumberSerializer(TypeSerializerBuilder builder) {
method writeValue (line 28) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ObjectTypeSerializer.java
class ObjectTypeSerializer (line 31) | public class ObjectTypeSerializer extends TypeSerializer<Object> {
method ObjectTypeSerializer (line 39) | ObjectTypeSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 47) | @Override
method serializeKey (line 53) | @Override
method findSerializer (line 63) | private void findSerializer(Object key, JsonGenerator generator, Seria...
method addSpecificSerializer (line 77) | public void addSpecificSerializer(Class<?> clazz, ModelSerializer mode...
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/OffsetDateTimeSerializer.java
class OffsetDateTimeSerializer (line 23) | class OffsetDateTimeSerializer extends AbstractDateSerializer<OffsetDate...
method OffsetDateTimeSerializer (line 25) | OffsetDateTimeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 29) | @Override
method formatDefault (line 34) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/OffsetTimeSerializer.java
class OffsetTimeSerializer (line 28) | class OffsetTimeSerializer extends AbstractDateSerializer<OffsetTime> {
method OffsetTimeSerializer (line 30) | OffsetTimeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalDoubleSerializer.java
class OptionalDoubleSerializer (line 25) | class OptionalDoubleSerializer implements ModelSerializer {
method OptionalDoubleSerializer (line 29) | OptionalDoubleSerializer(ModelSerializer typeSerializer) {
method serialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalIntSerializer.java
class OptionalIntSerializer (line 25) | class OptionalIntSerializer implements ModelSerializer {
method OptionalIntSerializer (line 29) | OptionalIntSerializer(ModelSerializer typeSerializer) {
method serialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalLongSerializer.java
class OptionalLongSerializer (line 25) | class OptionalLongSerializer implements ModelSerializer {
method OptionalLongSerializer (line 29) | OptionalLongSerializer(ModelSerializer typeSerializer) {
method serialize (line 33) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/PathSerializer.java
class PathSerializer (line 24) | class PathSerializer extends TypeSerializer<Path> {
method PathSerializer (line 26) | PathSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/PeriodSerializer.java
class PeriodSerializer (line 24) | class PeriodSerializer extends TypeSerializer<Period> {
method PeriodSerializer (line 26) | PeriodSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ShortSerializer.java
class ShortSerializer (line 20) | class ShortSerializer extends AbstractNumberSerializer<Short> {
method ShortSerializer (line 22) | ShortSerializer(TypeSerializerBuilder builder) {
method writeValue (line 26) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/SqlDateSerializer.java
class SqlDateSerializer (line 23) | class SqlDateSerializer extends DateSerializer<Date> {
method SqlDateSerializer (line 25) | SqlDateSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 29) | @Override
method formatDefault (line 40) | @Override
method formatWithFormatter (line 49) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/SqlTimestampSerializer.java
class SqlTimestampSerializer (line 23) | class SqlTimestampSerializer extends AbstractDateSerializer<Timestamp> {
method SqlTimestampSerializer (line 30) | SqlTimestampSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 34) | @Override
method formatDefault (line 39) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/StringSerializer.java
class StringSerializer (line 28) | class StringSerializer extends TypeSerializer<String> {
method StringSerializer (line 30) | StringSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 34) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/TimeZoneSerializer.java
class TimeZoneSerializer (line 24) | class TimeZoneSerializer extends TypeSerializer<TimeZone> {
method TimeZoneSerializer (line 26) | TimeZoneSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/TypeSerializer.java
class TypeSerializer (line 23) | abstract class TypeSerializer<T> implements ModelSerializer {
method TypeSerializer (line 27) | TypeSerializer(TypeSerializerBuilder serializerBuilder) {
method serialize (line 35) | @Override
method serializeValue (line 40) | abstract void serializeValue(T value, JsonGenerator generator, Seriali...
method serializeKey (line 42) | void serializeKey(T key, JsonGenerator generator, SerializationContext...
class ValueSerializer (line 46) | private final class ValueSerializer implements ModelSerializer {
method serialize (line 48) | @SuppressWarnings("unchecked")
class KeySerializer (line 56) | private final class KeySerializer implements ModelSerializer {
method serialize (line 58) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/TypeSerializerBuilder.java
class TypeSerializerBuilder (line 24) | class TypeSerializerBuilder {
method TypeSerializerBuilder (line 32) | TypeSerializerBuilder(List<Type> chain,
method getChain (line 44) | public List<Type> getChain() {
method getClazz (line 48) | public Class<?> getClazz() {
method getCustomization (line 52) | public Customization getCustomization() {
method getJsonbContext (line 56) | public JsonbContext getJsonbContext() {
method isKey (line 60) | public boolean isKey() {
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/TypeSerializers.java
class TypeSerializers (line 68) | public class TypeSerializers {
method TypeSerializers (line 143) | private TypeSerializers() {
method isSupportedMapKey (line 153) | public static boolean isSupportedMapKey(Class<?> clazz) {
method hasCustomJsonbSerializer (line 164) | public static boolean hasCustomJsonbSerializer(Class<?> clazz, JsonbCo...
method getTypeSerializer (line 176) | public static ModelSerializer getTypeSerializer(Class<?> clazz, Custom...
method getTypeSerializer (line 190) | public static ModelSerializer getTypeSerializer(List<Type> chain,
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/UriSerializer.java
class UriSerializer (line 24) | class UriSerializer extends TypeSerializer<URI> {
method UriSerializer (line 26) | UriSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/UrlSerializer.java
class UrlSerializer (line 24) | class UrlSerializer extends TypeSerializer<URL> {
method UrlSerializer (line 26) | UrlSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/UuidSerializer.java
class UuidSerializer (line 24) | class UuidSerializer extends TypeSerializer<UUID> {
method UuidSerializer (line 26) | UuidSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/XmlGregorianCalendarSerializer.java
class XmlGregorianCalendarSerializer (line 26) | class XmlGregorianCalendarSerializer extends AbstractDateSerializer<XMLG...
method XmlGregorianCalendarSerializer (line 28) | XmlGregorianCalendarSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 32) | @Override
method formatDefault (line 37) | @Override
method toTemporalAccessor (line 46) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/YearMonthTypeSerializer.java
class YearMonthTypeSerializer (line 23) | class YearMonthTypeSerializer extends AbstractDateSerializer<YearMonth> {
method YearMonthTypeSerializer (line 27) | YearMonthTypeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 31) | @Override
method formatDefault (line 36) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ZoneIdSerializer.java
class ZoneIdSerializer (line 24) | class ZoneIdSerializer extends TypeSerializer<ZoneId> {
method ZoneIdSerializer (line 26) | ZoneIdSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ZoneOffsetSerializer.java
class ZoneOffsetSerializer (line 24) | class ZoneOffsetSerializer extends TypeSerializer<ZoneOffset> {
method ZoneOffsetSerializer (line 26) | ZoneOffsetSerializer(TypeSerializerBuilder serializerBuilder) {
method serializeValue (line 30) | @Override
FILE: src/main/java/org/eclipse/yasson/internal/serializer/types/ZonedDateTimeSerializer.java
class ZonedDateTimeSerializer (line 23) | class ZonedDateTimeSerializer extends AbstractDateSerializer<ZonedDateTi...
method ZonedDateTimeSerializer (line 25) | ZonedDateTimeSerializer(TypeSerializerBuilder serializerBuilder) {
method toInstant (line 29) | @Override
method formatDefault (line 34) | @Override
FILE: src/main/java/org/eclipse/yasson/spi/JsonbComponentInstanceCreator.java
type JsonbComponentInstanceCreator (line 26) | public interface JsonbComponentInstanceCreator extends Closeable {
method getOrCreateComponent (line 40) | <T> T getOrCreateComponent(Class<T> componentClass);
method getPriority (line 45) | default int getPriority() {
FILE: src/main/java16/org/eclipse/yasson/internal/ClassMultiReleaseExtension.java
class ClassMultiReleaseExtension (line 32) | public class ClassMultiReleaseExtension {
method ClassMultiReleaseExtension (line 34) | private ClassMultiReleaseExtension() {
method shouldTransformToPropertyName (line 38) | static boolean shouldTransformToPropertyName(Method method) {
method isSpecialAccessorMethod (line 42) | static boolean isSpecialAccessorMethod(Method method, Map<String, Prop...
method findCreator (line 49) | static JsonbCreator findCreator(Class<?> clazz,
method isRecord (line 61) | public static boolean isRecord(Class<?> clazz) {
method exceptionToThrow (line 65) | public static Optional<JsonbException> exceptionToThrow(Class<?> clazz) {
FILE: src/test/java/PackagelessClassTest.java
class PackagelessClassTest (line 22) | public class PackagelessClassTest {
method testSerialization (line 24) | @Test
method testDeSerialization (line 32) | @Test
FILE: src/test/java/PackagelessModel.java
class PackagelessModel (line 19) | public class PackagelessModel {
method PackagelessModel (line 23) | public PackagelessModel() {
method PackagelessModel (line 26) | public PackagelessModel(int intValue, String stringValue) {
method getIntValue (line 31) | public int getIntValue() {
method setIntValue (line 35) | public void setIntValue(int intValue) {
method getStringValue (line 39) | public String getStringValue() {
method setStringValue (line 43) | public void setStringValue(String stringValue) {
FILE: src/test/java/org/eclipse/yasson/Assertions.java
class Assertions (line 22) | public class Assertions {
method shouldFail (line 28) | public static void shouldFail(Supplier<?> operation) {
method shouldFail (line 32) | public static void shouldFail(Runnable operation) {
method shouldFail (line 45) | public static void shouldFail(Supplier<?> operation, Function<String,B...
method shouldFail (line 56) | public static void shouldFail(Supplier<?> operation, Class<? extends T...
FILE: src/test/java/org/eclipse/yasson/DefaultGetterInInterface.java
class DefaultGetterInInterface (line 30) | public class DefaultGetterInInterface {
type Defaulted (line 32) | public static interface Defaulted {
method getGetterA (line 34) | default public String getGetterA() {
class PojoWithDefault (line 39) | public static class PojoWithDefault implements Defaulted {
method testWithDefault (line 42) | @Test
type WithGetterI (line 49) | public static interface WithGetterI {
method getGetterI (line 51) | @JsonbProperty("withGetterI")
type WithDefaultGetterI (line 55) | public static interface WithDefaultGetterI extends WithGetterI {
method getGetterI (line 57) | @Override
type OtherWithDefaultGetterI (line 64) | public static interface OtherWithDefaultGetterI extends WithGetterI {
method getGetterI (line 66) | @Override
class Pojo (line 73) | public static class Pojo implements WithGetterI {
method getGetterI (line 75) | @Override
class PojoNoAnnotation (line 83) | public static class PojoNoAnnotation implements WithGetterI {
method getGetterI (line 85) | @Override
class PojoWithDefaultSuperImplementation (line 91) | public static class PojoWithDefaultSuperImplementation extends Pojo im...
class PojoWithDefaultImplementation (line 94) | public static class PojoWithDefaultImplementation implements WithDefau...
method getGetterI (line 96) | @Override
class PojoWithDefaultOnly (line 104) | public static class PojoWithDefaultOnly implements WithDefaultGetterI {
class PojoGetterDefaultedTwice (line 107) | public static class PojoGetterDefaultedTwice extends PojoWithDefaultIm...
method testWithInheritedAndDefault (line 110) | @Test
method assertJson (line 145) | private static void assertJson(WithGetterI pojo, String expected){
FILE: src/test/java/org/eclipse/yasson/FieldAccessStrategyTest.java
class FieldAccessStrategyTest (line 24) | public class FieldAccessStrategyTest {
class PrivateFields (line 26) | public static class PrivateFields {
method PrivateFields (line 33) | public PrivateFields() {
method PrivateFields (line 36) | public PrivateFields(String strField) {
method getStrField (line 40) | public String getStrField() {
method setStrField (line 45) | public void setStrField(String strField) {
class PublicFields (line 51) | public static class PublicFields {
method testPrivateFields (line 56) | @Test
method testHidePublicFields (line 72) | @Test
method testCustomVisibityStrategy (line 89) | @Test
class CustomVisibilityStrategy (line 107) | public class CustomVisibilityStrategy implements PropertyVisibilityStr...
method isVisible (line 108) | @Override
method isVisible (line 113) | @Override
class SimpleContainer (line 118) | public static class SimpleContainer {
method getStringInstance (line 123) | public String getStringInstance() {
method setStringInstance (line 127) | public void setStringInstance(String stringInstance) {
method getIntegerInstance (line 131) | public Integer getIntegerInstance() {
method setIntegerInstance (line 135) | public void setIntegerInstance(Integer integerInstance) {
method getFloatInstance (line 139) | public float getFloatInstance() {
method setFloatInstance (line 143) | public void setFloatInstance(float floatInstance) {
class NoAccessStrategy (line 149) | private static final class NoAccessStrategy implements PropertyVisibil...
method isVisible (line 151) | @Override
method isVisible (line 156) | @Override
FILE: src/test/java/org/eclipse/yasson/Issue454Test.java
class Issue454Test (line 24) | public class Issue454Test {
method test (line 26) | @Test
class TheClass (line 54) | public static abstract class TheClass {
method getField1 (line 55) | @JsonbTransient
method getField2 (line 58) | public abstract String getField2();
class TheClass2 (line 61) | public static class TheClass2 extends TheClass {
method getField1 (line 62) | @Override
method getField2 (line 66) | @Override
type TheInterface (line 72) | public static interface TheInterface {
method getField1 (line 74) | @JsonbTransient
method getField2 (line 77) | String getField2();
FILE: src/test/java/org/eclipse/yasson/Issue456Test.java
class Issue456Test (line 22) | public class Issue456Test {
method dontInvokeToString (line 24) | @Test
class Example (line 34) | public static class Example {
method getProperty (line 36) | public String getProperty() {
method toString (line 40) | @Override
FILE: src/test/java/org/eclipse/yasson/JavaxNamingExcludedTest.java
class JavaxNamingExcludedTest (line 28) | public class JavaxNamingExcludedTest {
method testNoJavaxNamingModule (line 30) | @Test
class AdaptedPojo (line 44) | public static final class AdaptedPojo {
FILE: src/test/java/org/eclipse/yasson/Jsonbs.java
class Jsonbs (line 18) | public class Jsonbs {
FILE: src/test/java/org/eclipse/yasson/SimpleTest.java
class SimpleTest (line 24) | public class SimpleTest {
method testSimpleSerialize (line 26) | @Test
method testSimpleDeserializer (line 34) | @Test
class StringWrapper (line 40) | public static class StringWrapper {
method getValue (line 44) | public String getValue() {
method setValue (line 48) | public void setValue(String value) {
FILE: src/test/java/org/eclipse/yasson/TestTypeToken.java
class TestTypeToken (line 21) | public abstract class TestTypeToken<T> {
method getType (line 22) | public Type getType() {
FILE: src/test/java/org/eclipse/yasson/YassonConfigTest.java
class YassonConfigTest (line 25) | public class YassonConfigTest {
method testFailOnUnknownPropertiesUnchanged (line 27) | @SuppressWarnings("deprecation")
method testUserTypeMappingUnchanged (line 34) | @SuppressWarnings("deprecation")
method testZeroTimeDefaultingUnchanged (line 41) | @SuppressWarnings("deprecation")
method testNullRootSerializerUnchanged (line 48) | @SuppressWarnings("deprecation")
method testEagerInitClassesUnchanged (line 55) | @Test
FILE: src/test/java/org/eclipse/yasson/adapters/AdaptersTest.java
class AdaptersTest (line 48) | public class AdaptersTest {
class NonGenericPojo (line 50) | public static class NonGenericPojo {
method testBoxToCrateNoGenerics (line 55) | @Test
method testValueFieldAdapter (line 91) | @Test
method testGenericAdapter (line 117) | @Test
method testPropagatedTypeArgs (line 147) | @Test
method testStringToGenericCollectionAdapter (line 178) | @Test
method testAdaptObjectInCollection (line 203) | @Test
method testAdaptTypeIntoCollection (line 228) | @Test
method testMarshallGenericField (line 264) | @Test
method testTypeVariable (line 280) | @Test
method testAdaptRoot (line 309) | @Test
method testAdaptMapString (line 334) | @Test
method testAdaptMapToObject (line 372) | @Test
method testAdaptJsonObject (line 403) | @Test
method testAdaptAuthor (line 416) | @Test
method testAdapterReturningNull (line 430) | @Test
method testAdaptUUID (line 446) | @Test
method testSupertypeAdapter (line 461) | @Test
class PropertyTypeMismatch (line 472) | public static class PropertyTypeMismatch {
method getError (line 475) | public Optional<Throwable> getError() {
method setError (line 479) | public void setError(Instant errorTime) {
class ThrowableAdapter (line 484) | public static class ThrowableAdapter implements JsonbAdapter<Throwable...
method adaptToJson (line 488) | @Override
method adaptFromJson (line 498) | @Override
method testOptionalAdapter (line 509) | @Test
class InstantAdapter (line 520) | public static class InstantAdapter implements JsonbAdapter<Instant, St...
method adaptToJson (line 524) | @Override
method adaptFromJson (line 529) | @Override
method testDifferentAdapters (line 542) | @Test
class StringAdapter (line 561) | public static class StringAdapter implements JsonbAdapter<String, Stri...
method adaptToJson (line 562) | @Override
method adaptFromJson (line 567) | @Override
method testAdaptedRootType (line 576) | @Test
FILE: src/test/java/org/eclipse/yasson/adapters/JsonbTypeAdapterTest.java
class JsonbTypeAdapterTest (line 29) | public class JsonbTypeAdapterTest {
class BoxToStringAdapter (line 31) | public static class BoxToStringAdapter implements JsonbAdapter<Box, St...
method adaptFromJson (line 33) | @Override
method adaptToJson (line 39) | @Override
class IncompatibleAdapterPojo (line 45) | public static class IncompatibleAdapterPojo<T,X> {
class AnnotatedPojo (line 52) | public static class AnnotatedPojo<T,X> {
method testIncompatibleAdapter (line 62) | @Test
method testGenericFieldsMatch (line 75) | @Test
method testAnnotatedTbox (line 87) | @Test
method testBoxWithTypeAdapter (line 99) | @Test
method testBoxWithTypeSerializer (line 110) | @Test
method testBoxWithTypeDeserializer (line 117) | @Test
FILE: src/test/java/org/eclipse/yasson/adapters/model/AdaptedPojo.java
class AdaptedPojo (line 21) | public class AdaptedPojo<T> {
FILE: src/test/java/org/eclipse/yasson/adapters/model/Author.java
class Author (line 17) | public class Author {
method getFirstName (line 22) | public String getFirstName() {
method setFirstName (line 26) | public void setFirstName(String firstName) {
method getLastName (line 30) | public String getLastName() {
method setLastName (line 34) | public void setLastName(String lastName) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/Box.java
class Box (line 18) | public class Box {
method Box (line 24) | public Box() {
method Box (line 27) | public Box(String boxStrField, Integer boxIntegerField) {
method getBoxStrField (line 32) | public String getBoxStrField() {
method setBoxStrField (line 36) | public void setBoxStrField(String boxStrField) {
method getBoxIntegerField (line 40) | public Integer getBoxIntegerField() {
method setBoxIntegerField (line 44) | public void setBoxIntegerField(Integer boxIntegerField) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxToCrateCompatibleGenericsAdapter.java
class BoxToCrateCompatibleGenericsAdapter (line 20) | public abstract class BoxToCrateCompatibleGenericsAdapter<T> implements ...
method adaptToJson (line 22) | @Override
method adaptFromJson (line 30) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxToCratePropagatedIntegerStringAdapter.java
class BoxToCratePropagatedIntegerStringAdapter (line 21) | public class BoxToCratePropagatedIntegerStringAdapter extends BoxToCrate...
method adaptToJson (line 22) | @Override
method adaptFromJson (line 35) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxToCratePropagatedTypeArgsAdapter.java
class BoxToCratePropagatedTypeArgsAdapter (line 21) | public abstract class BoxToCratePropagatedTypeArgsAdapter<T,X> implement...
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxToJsonObjectAdapter.java
class BoxToJsonObjectAdapter (line 23) | public class BoxToJsonObjectAdapter implements JsonbAdapter<Box, JsonObj...
method adaptToJson (line 24) | @Override
method adaptFromJson (line 32) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithAdapter.java
class BoxWithAdapter (line 20) | @JsonbTypeAdapter(BoxWithAdapterAdapter.class)
method BoxWithAdapter (line 27) | public BoxWithAdapter() {
method BoxWithAdapter (line 30) | public BoxWithAdapter(String boxStrField, Integer boxIntegerField) {
method getBoxStrField (line 35) | public String getBoxStrField() {
method setBoxStrField (line 39) | public void setBoxStrField(String boxStrField) {
method getBoxIntegerField (line 43) | public Integer getBoxIntegerField() {
method setBoxIntegerField (line 47) | public void setBoxIntegerField(Integer boxIntegerField) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithAdapterAdapter.java
class BoxWithAdapterAdapter (line 23) | public class BoxWithAdapterAdapter implements JsonbAdapter<BoxWithAdapte...
method adaptToJson (line 24) | @Override
method adaptFromJson (line 32) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithDeserializer.java
class BoxWithDeserializer (line 20) | @JsonbTypeDeserializer(BoxWithDeserializerDeserializer.class)
method BoxWithDeserializer (line 27) | public BoxWithDeserializer() {
method BoxWithDeserializer (line 30) | public BoxWithDeserializer(String boxStrField, Integer boxIntegerField) {
method getBoxStrField (line 35) | public String getBoxStrField() {
method setBoxStrField (line 39) | public void setBoxStrField(String boxStrField) {
method getBoxIntegerField (line 43) | public Integer getBoxIntegerField() {
method setBoxIntegerField (line 47) | public void setBoxIntegerField(Integer boxIntegerField) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithDeserializerDeserializer.java
class BoxWithDeserializerDeserializer (line 23) | public class BoxWithDeserializerDeserializer implements JsonbDeserialize...
method deserialize (line 25) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithSerializer.java
class BoxWithSerializer (line 20) | @JsonbTypeSerializer(BoxWithSerializerSerializer.class)
method BoxWithSerializer (line 27) | public BoxWithSerializer() {
method BoxWithSerializer (line 30) | public BoxWithSerializer(String boxStrField, Integer boxIntegerField) {
method getBoxStrField (line 35) | public String getBoxStrField() {
method setBoxStrField (line 39) | public void setBoxStrField(String boxStrField) {
method getBoxIntegerField (line 43) | public Integer getBoxIntegerField() {
method setBoxIntegerField (line 47) | public void setBoxIntegerField(Integer boxIntegerField) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/BoxWithSerializerSerializer.java
class BoxWithSerializerSerializer (line 22) | public class BoxWithSerializerSerializer implements JsonbSerializer<BoxW...
method serialize (line 24) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/Chain.java
class Chain (line 15) | public class Chain {
method Chain (line 21) | public Chain(String name) {
method Chain (line 25) | public Chain() {
method getName (line 28) | public String getName() {
method setName (line 31) | public void setName(String name) {
method getLinksTo (line 34) | public Chain getLinksTo() {
method setLinksTo (line 37) | public void setLinksTo(Chain linksTo) {
method getHas (line 40) | public Foo getHas() {
method setHas (line 43) | public void setHas(Foo has) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/ChainAdapter.java
class ChainAdapter (line 20) | public class ChainAdapter implements JsonbAdapter<Chain, Map<String, Obj...
method adaptToJson (line 22) | @Override
method adaptFromJson (line 31) | @SuppressWarnings("unchecked")
FILE: src/test/java/org/eclipse/yasson/adapters/model/ChainSerializer.java
class ChainSerializer (line 19) | public class ChainSerializer implements JsonbSerializer<Chain>{
method serialize (line 23) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/Crate.java
class Crate (line 18) | public class Crate {
method Crate (line 24) | public Crate() {
method Crate (line 27) | public Crate(String crateStrField, Integer crateIntField) {
method getCrateStrField (line 32) | public String getCrateStrField() {
method setCrateStrField (line 36) | public void setCrateStrField(String crateStrField) {
method getCrateIntField (line 40) | public Integer getCrateIntField() {
method setCrateIntField (line 44) | public void setCrateIntField(Integer crateIntField) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/FirstNameAdapter.java
class FirstNameAdapter (line 19) | public class FirstNameAdapter implements JsonbAdapter<String, JsonValue> {
method adaptToJson (line 20) | @Override
method adaptFromJson (line 24) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/Foo.java
class Foo (line 15) | public class Foo {
method Foo (line 19) | public Foo(String bar) {
method getBar (line 23) | public String getBar() {
method setBar (line 27) | public void setBar(String bar) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/FooAdapter.java
class FooAdapter (line 20) | public class FooAdapter implements JsonbAdapter<Foo, Map<String, String>>{
method adaptToJson (line 22) | @Override
method adaptFromJson (line 29) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/FooSerializer.java
class FooSerializer (line 19) | public class FooSerializer implements JsonbSerializer<Foo>{
method serialize (line 21) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/GenericBox.java
class GenericBox (line 18) | public class GenericBox<X> {
method GenericBox (line 24) | public GenericBox(String strField, X x) {
method GenericBox (line 29) | public GenericBox() {
method getX (line 32) | public X getX() {
method getStrField (line 36) | public String getStrField() {
method setStrField (line 40) | public void setStrField(String strField) {
method setX (line 44) | public void setX(X x) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/GenericCrate.java
class GenericCrate (line 20) | public class GenericCrate<T> {
method GenericCrate (line 27) | public GenericCrate(String crateStrField, T t) {
method GenericCrate (line 32) | public GenericCrate() {
method getCrateStrField (line 35) | public String getCrateStrField() {
method getT (line 39) | public T getT() {
method setCrateStrField (line 43) | public void setCrateStrField(String crateStrField) {
method setT (line 47) | public void setT(T t) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/IntegerListToStringAdapter.java
class IntegerListToStringAdapter (line 22) | public class IntegerListToStringAdapter implements JsonbAdapter<List<Int...
method adaptToJson (line 24) | @Override
method adaptFromJson (line 36) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/JsonObjectPojo.java
class JsonObjectPojo (line 20) | public class JsonObjectPojo {
FILE: src/test/java/org/eclipse/yasson/adapters/model/LocalPolymorphicAdapter.java
class LocalPolymorphicAdapter (line 22) | public abstract class LocalPolymorphicAdapter<T> implements JsonbAdapter...
method LocalPolymorphicAdapter (line 31) | public LocalPolymorphicAdapter(final Class... allowedClasses) {
method getAllowedClasses (line 40) | public String[] getAllowedClasses() {
method adaptToJson (line 44) | @Override
method adaptFromJson (line 52) | @Override
method populateInstance (line 64) | protected abstract void populateInstance(T instance, LocalTypeWrapper<...
method isAllowed (line 66) | private boolean isAllowed(String name) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/LocalTypeWrapper.java
class LocalTypeWrapper (line 18) | public class LocalTypeWrapper<E> {
method getClassName (line 27) | public String getClassName() {
method setClassName (line 36) | public void setClassName(String className) {
method getInstance (line 45) | public E getInstance() {
method setInstance (line 54) | public void setInstance(E instance) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/MultiinterfaceAdapter.java
type MultiinterfaceAdapter (line 18) | interface MultiinterfaceAdapter<X, T> extends Serializable, JsonbAdapter...
FILE: src/test/java/org/eclipse/yasson/adapters/model/MultilevelAdapterClass.java
class MultilevelAdapterClass (line 15) | public abstract class MultilevelAdapterClass<X, T> implements Multiinter...
FILE: src/test/java/org/eclipse/yasson/adapters/model/NumberAdapter.java
class NumberAdapter (line 17) | public class NumberAdapter implements JsonbAdapter<Number, String> {
method adaptToJson (line 18) | @Override
method adaptFromJson (line 23) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/ReturnNullAdapter.java
class ReturnNullAdapter (line 17) | public class ReturnNullAdapter implements JsonbAdapter<Number, String> {
method adaptToJson (line 18) | @Override
method adaptFromJson (line 23) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/SerializableAdapter.java
class SerializableAdapter (line 18) | public class SerializableAdapter implements JsonbAdapter<Serializable, I...
method adaptToJson (line 19) | @Override
method adaptFromJson (line 24) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/SupertypeAdapterPojo.java
class SupertypeAdapterPojo (line 17) | public class SupertypeAdapterPojo {
method getNumberInteger (line 25) | public Integer getNumberInteger() {
method setNumberInteger (line 29) | public void setNumberInteger(Integer numberInteger) {
method getSerializableInteger (line 33) | public Integer getSerializableInteger() {
method setSerializableInteger (line 37) | public void setSerializableInteger(Integer serializableInteger) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/UUIDContainer.java
class UUIDContainer (line 19) | public class UUIDContainer {
method getUuidClsBased (line 26) | public UUID getUuidClsBased() {
method setUuidClsBased (line 30) | public void setUuidClsBased(UUID uuidClsBased) {
method getUuidIfcBased (line 34) | public UUID getUuidIfcBased() {
method setUuidIfcBased (line 38) | public void setUuidIfcBased(UUID uuidIfcBased) {
FILE: src/test/java/org/eclipse/yasson/adapters/model/UUIDMapperClsBased.java
class UUIDMapperClsBased (line 18) | public class UUIDMapperClsBased extends MultilevelAdapterClass<UUID, Str...
method adaptToJson (line 20) | @Override
method adaptFromJson (line 25) | @Override
FILE: src/test/java/org/eclipse/yasson/adapters/model/UUIDMapperIfcBased.java
class UUIDMapperIfcBased (line 18) | public class UUIDMapperIfcBased implements MultiinterfaceAdapter<UUID, S...
method adaptToJson (line 20) | @Override
method adaptFromJson (line 25) | @Override
FILE: src/test/java/org/eclipse/yasson/customization/AnnotationInheritanceTest.java
class AnnotationInheritanceTest (line 24) | public class AnnotationInheritanceTest {
method testAnnotationInheritance (line 26) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/EncodingTest.java
class EncodingTest (line 38) | public class EncodingTest {
method testCP1250Encoding (line 52) | @Test
method testUTF8Encoding (line 61) | @Test
method testcp1251Encoding (line 72) | @Test
method testMarshaller (line 81) | private static void testMarshaller(String[] input, Jsonb jsonb, String...
method testUnmarshaller (line 90) | private static void testUnmarshaller(String[] input, Jsonb jsonb, Stri...
method diacriticsToJsonArray (line 98) | private static String diacriticsToJsonArray(String[] diacritics) {
FILE: src/test/java/org/eclipse/yasson/customization/ImplementationClassTest.java
class ImplementationClassTest (line 30) | public class ImplementationClassTest {
method testAnnotatedImplementation (line 32) | @Test
method testJsonbConfigUserImplementation (line 46) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/InterfaceAnnotationsTest.java
class InterfaceAnnotationsTest (line 25) | public class InterfaceAnnotationsTest {
method testJsonbPropertyIfcInheritance (line 27) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/JsonbCreatorTest.java
class JsonbCreatorTest (line 47) | public class JsonbCreatorTest {
method testRootConstructor (line 49) | @Test
method testRootFactoryMethod (line 58) | @Test
method testRootCreatorWithInnerCreator (line 67) | @Test
method testIncompatibleFactoryMethodReturnType (line 80) | @Test
method testMultipleCreatorsError (line 90) | @Test
method testCreatorWithoutJsonbParameters1 (line 100) | @Test
method testCreatorWithoutJavabeanProperty (line 110) | @Test
method testPackagePrivateCreator (line 117) | @Test
method testLocalizedConstructor (line 122) | @Test
method testLocalizedConstructorMergedWithProperty (line 129) | @Test
method testLocalizedFactoryParameter (line 136) | @Test
method testLocalizedFactoryParameterMergedWithProperty (line 143) | @Test
method testCorrectCreatorParameterNames (line 150) | @Test
method testGenericCreatorParameter (line 158) | @Test
class Persons (line 166) | public static final class Persons {
method Persons (line 170) | private Persons(Set<Person> persons) {
method wrap (line 174) | @JsonbCreator
method getPersons (line 179) | public Set<Person> getPersons() {
class Person (line 184) | public static final class Person {
method getName (line 187) | public String getName() {
method setName (line 191) | public void setName(String name) {
class DateConstructor (line 197) | public static final class DateConstructor {
method DateConstructor (line 200) | @JsonbCreator
class DateConstructorMergedWithProperty (line 207) | public static final class DateConstructorMergedWithProperty {
method DateConstructorMergedWithProperty (line 211) | @JsonbCreator
class FactoryNumberParam (line 218) | public static final class FactoryNumberParam {
method FactoryNumberParam (line 221) | private FactoryNumberParam(BigDecimal number) {
method createInstance (line 225) | @JsonbCreator
class FactoryNumberParamMergedWithProperty (line 234) | public static final class FactoryNumberParamMergedWithProperty {
method FactoryNumberParamMergedWithProperty (line 239) | private FactoryNumberParamMergedWithProperty(BigDecimal number) {
method createInstance (line 243) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/JsonbDateFormatterTest.java
class JsonbDateFormatterTest (line 40) | public class JsonbDateFormatterTest {
method testCustomDateFormatSerialization (line 42) | @Test
method testCustomDateFormatDeserialization (line 65) | @Test
method testCustomDateFormatSerializationWithClassLevelDateFormatterDefined (line 85) | @Test
method testCustomDateFormatDeserializationWithClassLevelDateFormatterDefined (line 108) | @Test
method testTrimmedDateParsing (line 128) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/JsonbNillableTest.java
class JsonbNillableTest (line 38) | public class JsonbNillableTest {
method testJsonbNillable (line 40) | @Test
method testJsonbNillableOverriddenWithJsonbProperty (line 46) | @Test
method testPackageLevelNillable (line 52) | @Test
method testPackageLevelOverriddenWithClassLevel (line 58) | @Test
method testNillableInheritFromInterface (line 67) | @Test
method testInheritanceOverride (line 73) | @Test
method testNillableInConfig (line 82) | @Test
class PrimitiveNullBoolean (line 88) | public static class PrimitiveNullBoolean {
method setSomeBoolean (line 93) | void setSomeBoolean(boolean value) { // note that value is a primiti...
method testNillableSomeBoolean (line 101) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/JsonbPropertyTest.java
class JsonbPropertyTest (line 34) | public class JsonbPropertyTest {
method testPropertyName (line 36) | @Test
method testNameCollision (line 54) | @Test
method tryClash (line 63) | private static void tryClash(Runnable clashCommand) {
method testPropertyNillable (line 73) | @Test
method testRenamedGetterAndSetter (line 79) | @Test
method testRenamedGetterAndSetter2 (line 92) | @Test
method testRenamedGetterAndSetter3 (line 106) | @Test
class RenamedGetterAndSetter (line 119) | public static class RenamedGetterAndSetter {
method getTest (line 122) | @JsonbProperty("apple")
method setTest (line 127) | @JsonbProperty("apple")
class RenamedGetterAndSetter2 (line 133) | public static class RenamedGetterAndSetter2 {
method getAPIDocumentation (line 137) | @JsonbProperty("api")
method setAPIDocumentation (line 142) | @JsonbProperty("api")
method testNonConflictingProperties (line 158) | @Test
method testConflictingProperties (line 173) | @Test
method testConflictingWithUpperCamelStrategy (line 192) | @Test
method testConflictingWithLowercaseStrategy (line 214) | @Test
class ConflictingIfLowercase (line 222) | public static class ConflictingIfLowercase {
method getURL (line 225) | public String getURL() {
class NonConflictingProperties (line 230) | public static class NonConflictingProperties {
method getDOI (line 233) | @JsonbProperty("doi")
method setDOI (line 237) | public void setDOI(String doi) {
class ConflictingProperties (line 242) | public static class ConflictingProperties {
method getDOI (line 245) | @JsonbProperty("doi")
method setDOI (line 249) | public void setDOI(String doi) {
class ConflictingWithUpperCamelStrategy (line 254) | public static class ConflictingWithUpperCamelStrategy {
method getDOI (line 257) | @JsonbProperty("Doi")
method setDOI (line 261) | public void setDOI(String doi) {
FILE: src/test/java/org/eclipse/yasson/customization/JsonbPropertyVisibilityStrategyTest.java
class JsonbPropertyVisibilityStrategyTest (line 32) | public class JsonbPropertyVisibilityStrategyTest {
class FieldPojo (line 34) | public static class FieldPojo {
method FieldPojo (line 41) | public FieldPojo(String afield, String bfield, String cfield, String...
class GetterPojo (line 49) | public static class GetterPojo {
method getAgetter (line 50) | public String getAgetter() {
method getBgetter (line 53) | public String getBgetter() {
method getCgetter (line 56) | private String getCgetter() {
method getDgetter (line 59) | private String getDgetter() {
class AnnotatedPojo (line 64) | @JsonbVisibility(TestVisibilityStrategy.class)
method AnnotatedPojo (line 72) | public AnnotatedPojo(String afield, String bfield, String cfield, St...
method getAgetter (line 79) | public String getAgetter() {
method getBgetter (line 82) | public String getBgetter() {
method getCgetter (line 85) | private String getCgetter() {
method getDgetter (line 88) | private String getDgetter() {
class TestVisibilityStrategy (line 94) | public static final class TestVisibilityStrategy implements PropertyVi...
method isVisible (line 95) | @Override
method isVisible (line 101) | @Override
method testFieldVisibilityStrategy (line 111) | @Test
method testMethodVisibilityStrategy (line 136) | @Test
method testAnnotatedPojo (line 158) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/NumberFormatTest.java
class NumberFormatTest (line 32) | public class NumberFormatTest {
method testSerialize (line 35) | @Test
method testDeserializer (line 55) | @Test
method testSerializeWithoutClassLevelFormatter (line 73) | @Test
method testDeserializeWithoutClassLevelFormatter (line 85) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/PrettyPrintTest.java
class PrettyPrintTest (line 26) | public class PrettyPrintTest {
method testPrettyPrint (line 28) | @Test
method testPrettyPrintFalse (line 33) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/PropertyOrderTest.java
class PropertyOrderTest (line 37) | public class PropertyOrderTest {
method testPropertySorting (line 39) | @Test
method testPropertyCustomOrder (line 51) | @Test
method testPropertySetCustomOrder (line 63) | @Test
method testPropertySortingWithNamingAnnotation (line 74) | @Test
method testLexicographicalPropertyOrderRenamedProperties (line 86) | @Test
method testJsonbPropertyOrderOnRenamedProperties (line 99) | @Test
class Range (line 108) | @JsonbPropertyOrder({"propB","propA"})
method Range (line 120) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/YassonSpecificConfigTests.java
class YassonSpecificConfigTests (line 30) | public class YassonSpecificConfigTests {
method nullRootSerializerTest (line 35) | @Test
method emptyOptionalRootSerializerTest (line 41) | @Test
method nullSerializerNotUsedTest (line 47) | @Test
class RootNullSerializer (line 53) | private static final class RootNullSerializer implements JsonbSerializ...
method serialize (line 55) | @Override
FILE: src/test/java/org/eclipse/yasson/customization/model/Animal.java
type Animal (line 15) | public interface Animal {
FILE: src/test/java/org/eclipse/yasson/customization/model/CollectionsWithFormatters.java
class CollectionsWithFormatters (line 19) | @JsonbNumberFormat(value = "000.000", locale = "en-us")
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorConstructorPojo.java
class CreatorConstructorPojo (line 22) | public class CreatorConstructorPojo {
method CreatorConstructorPojo (line 32) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorFactoryMethodPojo.java
class CreatorFactoryMethodPojo (line 22) | public class CreatorFactoryMethodPojo {
method CreatorFactoryMethodPojo (line 30) | private CreatorFactoryMethodPojo(String str1, String str2) {
method getInstance (line 34) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorIncompatibleTypePojo.java
class CreatorIncompatibleTypePojo (line 21) | public class CreatorIncompatibleTypePojo {
method getInstance (line 25) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorMultipleDeclarationErrorPojo.java
class CreatorMultipleDeclarationErrorPojo (line 21) | public class CreatorMultipleDeclarationErrorPojo {
method CreatorMultipleDeclarationErrorPojo (line 25) | @JsonbCreator
method getInstance (line 30) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorPackagePrivateConstructor.java
class CreatorPackagePrivateConstructor (line 21) | public class CreatorPackagePrivateConstructor {
method CreatorPackagePrivateConstructor (line 27) | @JsonbCreator
method getStrVal (line 32) | public String getStrVal() {
method setStrVal (line 36) | public void setStrVal(String strVal) {
method getIntVal (line 40) | public int getIntVal() {
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorWithoutJavabeanProperty.java
class CreatorWithoutJavabeanProperty (line 21) | public class CreatorWithoutJavabeanProperty {
method CreatorWithoutJavabeanProperty (line 25) | @JsonbCreator
method getStrField (line 30) | public String getStrField() {
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorWithoutJsonbProperty.java
class CreatorWithoutJsonbProperty (line 21) | public class CreatorWithoutJsonbProperty {
method CreatorWithoutJsonbProperty (line 27) | @JsonbCreator
method getPar1 (line 34) | public String getPar1() {
method getPar2 (line 38) | public String getPar2() {
method getPar3 (line 42) | public double getPar3() {
FILE: src/test/java/org/eclipse/yasson/customization/model/CreatorWithoutJsonbProperty1.java
class CreatorWithoutJsonbProperty1 (line 21) | public class CreatorWithoutJsonbProperty1 {
method CreatorWithoutJsonbProperty1 (line 27) | @JsonbCreator
method getPar1 (line 34) | public String getPar1() {
method getPar2 (line 38) | public String getPar2() {
method getPar3 (line 42) | public byte getPar3() {
FILE: src/test/java/org/eclipse/yasson/customization/model/DateFormatPojo.java
class DateFormatPojo (line 21) | public class DateFormatPojo {
method getPlainDateField (line 45) | public Date getPlainDateField() {
method setPlainDateField (line 49) | public void setPlainDateField(Date plainDateField) {
method getFormattedDateField (line 55) | public Date getFormattedDateField() {
method setFormattedDateField (line 59) | public void setFormattedDateField(Date formattedDateField) {
method getGetterFormattedDateField (line 65) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method setGetterFormattedDateField (line 70) | public void setGetterFormattedDateField(Date getterFormattedDateField) {
method getSetterFormattedDateField (line 76) | public Date getSetterFormattedDateField() {
method setSetterFormattedDateField (line 80) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndFieldFormattedDateField (line 87) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndFieldFormattedDateField (line 92) | public void setGetterAndFieldFormattedDateField(Date getterAndFieldFor...
method getSetterAndFieldFormattedDateField (line 98) | public Date getSetterAndFieldFormattedDateField() {
method setSetterAndFieldFormattedDateField (line 102) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndSetterFormattedDateField (line 109) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndSetterFormattedDateField (line 114) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndSetterAndFieldFormattedDateField (line 121) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndSetterAndFieldFormattedDateField (line 126) | @JsonbDateFormat(value = "HH:mm:ss $$ dd-MM-yyyy", locale = "Europe/Co...
FILE: src/test/java/org/eclipse/yasson/customization/model/DateFormatPojoWithClassLevelFormatter.java
class DateFormatPojoWithClassLevelFormatter (line 23) | @JsonbDateFormat(value = "HH:mm:ss ^ dd-MM-yyyy", locale = "Europe/Copen...
method getPlainDateField (line 48) | public Date getPlainDateField() {
method setPlainDateField (line 52) | public void setPlainDateField(Date plainDateField) {
method getFormattedDateField (line 58) | public Date getFormattedDateField() {
method setFormattedDateField (line 62) | public void setFormattedDateField(Date formattedDateField) {
method getGetterFormattedDateField (line 68) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method setGetterFormattedDateField (line 73) | public void setGetterFormattedDateField(Date getterFormattedDateField) {
method getSetterFormattedDateField (line 79) | public Date getSetterFormattedDateField() {
method setSetterFormattedDateField (line 83) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndFieldFormattedDateField (line 90) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndFieldFormattedDateField (line 95) | public void setGetterAndFieldFormattedDateField(Date getterAndFieldFor...
method getSetterAndFieldFormattedDateField (line 101) | public Date getSetterAndFieldFormattedDateField() {
method setSetterAndFieldFormattedDateField (line 105) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndSetterFormattedDateField (line 112) | @JsonbDateFormat(value = "HH:mm:ss ^^ dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndSetterFormattedDateField (line 117) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method getGetterAndSetterAndFieldFormattedDateField (line 124) | @JsonbDateFormat(value = "HH:mm:ss <> dd-MM-yyyy", locale = "Europe/Co...
method setGetterAndSetterAndFieldFormattedDateField (line 129) | @JsonbDateFormat(value = "HH:mm:ss $$ dd-MM-yyyy", locale = "Europe/Co...
FILE: src/test/java/org/eclipse/yasson/customization/model/Dog.java
class Dog (line 15) | public class Dog implements Animal {
method Dog (line 19) | public Dog() {
method Dog (line 22) | public Dog(String dogProperty) {
method getDogProperty (line 26) | public String getDogProperty() {
method setDogProperty (line 30) | public void setDogProperty(String dogProperty) {
FILE: src/test/java/org/eclipse/yasson/customization/model/FieldCustomOrder.java
class FieldCustomOrder (line 20) | @JsonbPropertyOrder({"aField", "cField", "dField" ,"bField"})
FILE: src/test/java/org/eclipse/yasson/customization/model/FieldCustomOrderWrapper.java
class FieldCustomOrderWrapper (line 18) | public class FieldCustomOrderWrapper {
FILE: src/test/java/org/eclipse/yasson/customization/model/FieldOrder.java
class FieldOrder (line 18) | public class FieldOrder {
FILE: src/test/java/org/eclipse/yasson/customization/model/FieldOrderNameAnnotation.java
class FieldOrderNameAnnotation (line 20) | public class FieldOrderNameAnnotation {
FILE: src/test/java/org/eclipse/yasson/customization/model/FieldSpecificOrder.java
class FieldSpecificOrder (line 20) | @JsonbPropertyOrder({"aField", "dField"})
FILE: src/test/java/org/eclipse/yasson/customization/model/ImplementationClassPojo.java
class ImplementationClassPojo (line 17) | public class ImplementationClassPojo {
method getAnimal (line 22) | public Animal getAnimal() {
method setAnimal (line 26) | public void setAnimal(Animal animal) {
FILE: src/test/java/org/eclipse/yasson/customization/model/InheritedAnnotationsPojo.java
class InheritedAnnotationsPojo (line 18) | @InheritsNillableRecursion
FILE: src/test/java/org/eclipse/yasson/customization/model/InterfacedPojoA.java
type InterfacedPojoA (line 20) | public interface InterfacedPojoA {
method getPropertyA (line 23) | @JsonbProperty("propA")
method setPropertyA (line 26) | @JsonbProperty("propA")
FILE: src/test/java/org/eclipse/yasson/customization/model/InterfacedPojoAbsImpl.java
class InterfacedPojoAbsImpl (line 18) | public abstract class InterfacedPojoAbsImpl implements InterfacedPojoA {
method getPropertyA (line 22) | @Override
method setPropertyA (line 27) | @Override
FILE: src/test/java/org/eclipse/yasson/customization/model/InterfacedPojoB.java
type InterfacedPojoB (line 20) | public interface InterfacedPojoB extends InterfacedPojoA {
method getPropertyB (line 22) | @JsonbProperty("propB")
method setPropertyB (line 25) | @JsonbProperty("propB")
FILE: src/test/java/org/eclipse/yasson/customization/model/InterfacedPojoC.java
type InterfacedPojoC (line 20) | public interface InterfacedPojoC extends InterfacedPojoB {
method getPropertyC (line 22) | @JsonbProperty("propC")
method setPropertyC (line 25) | @JsonbProperty("propC")
FILE: src/test/java/org/eclipse/yasson/customization/model/InterfacedPojoImpl.java
class InterfacedPojoImpl (line 18) | public class InterfacedPojoImpl extends InterfacedPojoAbsImpl implements...
method getPropertyB (line 22) | @Override
method setPropertyB (line 27) | @Override
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableClassFirstLevel.java
class JsonbNillableClassFirstLevel (line 20) | public class JsonbNillableClassFirstLevel implements JsonbNillableInterf...
method getClassNillable (line 24) | public String getClassNillable() {
method setClassNillable (line 28) | public void setClassNillable(String classNillable) {
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableClassSecondLevel.java
class JsonbNillableClassSecondLevel (line 20) | public class JsonbNillableClassSecondLevel extends JsonbNillableClassFir...
method getSubclassNillable (line 24) | public String getSubclassNillable() {
method setSubclassNillable (line 28) | public void setSubclassNillable(String subclassNillable) {
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableInterfaceBase.java
type JsonbNillableInterfaceBase (line 21) | @JsonbNillable
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableInterfaceBaseOne.java
type JsonbNillableInterfaceBaseOne (line 18) | public interface JsonbNillableInterfaceBaseOne extends JsonbNillableInte...
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableInterfaceBaseTwo.java
type JsonbNillableInterfaceBaseTwo (line 22) | @JsonbNillable(false)
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableOverriddenWithJsonbProperty.java
class JsonbNillableOverriddenWithJsonbProperty (line 20) | public class JsonbNillableOverriddenWithJsonbProperty {
method getNillableOverriddenWithFieldJsonbProperty (line 29) | public String getNillableOverriddenWithFieldJsonbProperty() {
method setNillableOverriddenWithFieldJsonbProperty (line 33) | public void setNillableOverriddenWithFieldJsonbProperty(String nillabl...
method getNillableOverriddenWithGetterJsonbProperty (line 37) | @JsonbProperty(nillable = false)
method setNillableOverriddenWithGetterJsonbProperty (line 42) | public void setNillableOverriddenWithGetterJsonbProperty(String nillab...
method getNillableOverriddenWithSetterJsonbProperty (line 46) | public String getNillableOverriddenWithSetterJsonbProperty() {
method setNillableOverriddenWithSetterJsonbProperty (line 50) | @JsonbProperty(nillable = false)
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableOverridesClass.java
class JsonbNillableOverridesClass (line 21) | @JsonbNillable
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableOverridesInterface.java
class JsonbNillableOverridesInterface (line 20) | @JsonbNillable(false)
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbNillableValue.java
class JsonbNillableValue (line 20) | @JsonbNillable
method getNillableField (line 29) | public String getNillableField() {
method setNillableField (line 33) | public void setNillableField(String nillableField) {
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbPropertyName.java
class JsonbPropertyName (line 20) | public class JsonbPropertyName {
method getFieldAnnotatedName (line 30) | public String getFieldAnnotatedName() {
method setFieldAnnotatedName (line 34) | public void setFieldAnnotatedName(String fieldAnnotatedName) {
method getMethodAnnotName (line 38) | @JsonbProperty("getterAnnotatedName")
method setMethodAnnotName (line 43) | @JsonbProperty("setterAnnotatedName")
method getFieldOverriddenWithMethodAnnot (line 48) | @JsonbProperty("getterOverriddenName")
method setFieldOverriddenWithMethodAnnot (line 53) | @JsonbProperty("setterOverriddenName")
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbPropertyNameCollision.java
class JsonbPropertyNameCollision (line 20) | public class JsonbPropertyNameCollision {
method getPojoName (line 27) | public String getPojoName() {
method setPojoName (line 31) | public void setPojoName(String pojoName) {
method getPojoNameCollision (line 35) | public String getPojoNameCollision() {
method setPojoNameCollision (line 39) | public void setPojoNameCollision(String pojoNameCollision) {
FILE: src/test/java/org/eclipse/yasson/customization/model/JsonbPropertyNillable.java
class JsonbPropertyNillable (line 20) | public class JsonbPropertyNillable {
method getNullField (line 28) | public String getNullField() {
method setNullField (line 32) | public void setNullField(String nullField) {
method getNillableOverride (line 36) | @JsonbProperty(nillable = true)
method setNillableOverride (line 41) | public void setNillableOverride(String nillableOverride) {
FILE: src/test/java/org/eclipse/yasson/customization/model/NumberFormatPojo.java
class NumberFormatPojo (line 22) | @JsonbNumberFormat("0.0")
method getDoubleGetterFormatted (line 55) | @JsonbNumberFormat("000.00000000")
method setDoubleGetterFormatted (line 60) | public void setDoubleGetterFormatted(Double doubleGetterFormatted) {
method getDoubleSetterFormatted (line 64) | public Double getDoubleSetterFormatted() {
method setDoubleSetterFormatted (line 68) | @JsonbNumberFormat(value = "000,000", locale = "da-da")
method getDoubleSetterAndPropertyFormatter (line 73) | public Double getDoubleSetterAndPropertyFormatter() {
method setDoubleSetterAndPropertyFormatter (line 77) | @JsonbNumberFormat(value = "000,000", locale = "da-da")
FILE: src/test/java/org/eclipse/yasson/customization/model/NumberFormatPojoWithoutClassLevelFormatter.java
class NumberFormatPojoWithoutClassLevelFormatter (line 20) | public class NumberFormatPojoWithoutClassLevelFormatter {
method getDoubleGetterFormatted (line 28) | @JsonbNumberFormat("000.00000000")
method setDoubleGetterFormatted (line 33) | public void setDoubleGetterFormatted(Double doubleGetterFormatted) {
method getDoubleSetterFormatted (line 37) | public Double getDoubleSetterFormatted() {
method setDoubleSetterFormatted (line 41) | @JsonbNumberFormat(value = "000,000", locale = "da-da")
method getDoubleSetterAndPropertyFormatter (line 46) | public Double getDoubleSetterAndPropertyFormatter() {
method setDoubleSetterAndPropertyFormatter (line 50) | @JsonbNumberFormat(value = "000,000", locale = "da-da")
FILE: src/test/java/org/eclipse/yasson/customization/model/ParameterNameTester.java
class ParameterNameTester (line 23) | public class ParameterNameTester {
method ParameterNameTester (line 29) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/model/RenamedPropertiesContainer.java
class RenamedPropertiesContainer (line 21) | public class RenamedPropertiesContainer {
method getStringInstance (line 29) | public String getStringInstance() {
method setStringInstance (line 33) | public void setStringInstance(String stringInstance) {
method getIntInstance (line 40) | public int getIntInstance() {
method setIntInstance (line 44) | public void setIntInstance(int intInstance) {
method getLongInstance (line 48) | public long getLongInstance() {
method setLongInstance (line 52) | public void setLongInstance(long longInstance) {
FILE: src/test/java/org/eclipse/yasson/customization/model/TrimmedDatePojo.java
class TrimmedDatePojo (line 22) | public class TrimmedDatePojo {
method getDate (line 49) | public Date getDate() {
method setDate (line 53) | public void setDate(Date date) {
method getLocalDateTime (line 57) | public LocalDateTime getLocalDateTime() {
method setLocalDateTime (line 61) | public void setLocalDateTime(LocalDateTime localDateTime) {
method getZonedDateTime (line 65) | public ZonedDateTime getZonedDateTime() {
method setZonedDateTime (line 69) | public void setZonedDateTime(ZonedDateTime zonedDateTime) {
method getZonedDateTimeNanosOfDay (line 73) | public ZonedDateTime getZonedDateTimeNanosOfDay() {
method setZonedDateTimeNanosOfDay (line 77) | public void setZonedDateTimeNanosOfDay(ZonedDateTime zonedDateTimeNano...
method getZonedDateTimeHoursAndSeconds (line 81) | public ZonedDateTime getZonedDateTimeHoursAndSeconds() {
method setZonedDateTimeHoursAndSeconds (line 85) | public void setZonedDateTimeHoursAndSeconds(ZonedDateTime zonedDateTim...
method getZonedDateTimeOverriddenZone (line 89) | public ZonedDateTime getZonedDateTimeOverriddenZone() {
method setZonedDateTimeOverriddenZone (line 93) | public void setZonedDateTimeOverriddenZone(ZonedDateTime zonedDateTime...
method getZonedInstant (line 97) | public Instant getZonedInstant() {
method setZonedInstant (line 101) | public void setZonedInstant(Instant zonedInstant) {
method getCalendar (line 105) | public Calendar getCalendar() {
method setCalendar (line 109) | public void setCalendar(Calendar calendar) {
FILE: src/test/java/org/eclipse/yasson/customization/model/packagelevelannotations/JsonbNillablePackageLevel.java
class JsonbNillablePackageLevel (line 18) | public class JsonbNillablePackageLevel {
method getPackageLevelNillableField (line 22) | public String getPackageLevelNillableField() {
method setPackageLevelNillableField (line 26) | public void setPackageLevelNillableField(String packageLevelNillableFi...
FILE: src/test/java/org/eclipse/yasson/customization/model/packagelevelannotations/PackageLevelOverriddenWithClassLevel.java
class PackageLevelOverriddenWithClassLevel (line 20) | @JsonbNillable(false)
method getNillableOverriddenField (line 25) | public String getNillableOverriddenField() {
method setNillableOverriddenField (line 29) | public void setNillableOverriddenField(String nillableOverriddenField) {
FILE: src/test/java/org/eclipse/yasson/customization/polymorphism/AnnotationPolymorphismTest.java
class AnnotationPolymorphismTest (line 36) | public class AnnotationPolymorphismTest {
method testBasicSerialization (line 41) | @Test
method testBasicDeserialization (line 49) | @Test
method testExactTypeDeserialization (line 59) | @Test
method testUnknownAliasDeserialization (line 67) | @Test
method testUnknownAliasSerialization (line 76) | @Test
method testCreatorDeserialization (line 82) | @Test
method testArraySerialization (line 89) | @Test
method testArrayDeserialization (line 95) | @Test
type Animal (line 104) | @JsonbTypeInfo({
class Dog (line 112) | public static class Dog implements Animal {
class Cat (line 118) | public static class Cat implements Animal {
class Rat (line 124) | public static class Rat implements Animal {
type SomeDateType (line 130) | @JsonbTypeInfo(key = "@dateType", value = {
class DateConstructor (line 137) | public static final class DateConstructor implements SomeDateType {
method DateConstructor (line 141) | @JsonbCreator
FILE: src/test/java/org/eclipse/yasson/customization/polymorphism/MultiplePolymorphicInfoTest.java
class MultiplePolymorphicInfoTest (line 29) | public class MultiplePolymorphicInfoTest {
method testMultiplePolymorphicInfoPropertySerialization (line 33) | @Test
method testMultiplePolymorphicInfoPropertyDeserialization (line 40) | @Test
method testPolymorphicParentInstanceSerialization (line 46) | @Test
method testPolymorphicParentInstanceDeserialization (line 55) | @Test
type Something (line 61) | @JsonbTypeInfo(key = "@something", value = {
type Animal (line 66) | @JsonbTypeInfo(key = "@animal", value = {
type Dog (line 72) | @JsonbTypeInfo(key = "@dogRace", value = {
class Labrador (line 78) | public static class Labrador implements Dog {
type Location (line 84) | @JsonbTypeInfo({
class Area (line 90) | @JsonbTypeInfo(key = "@area", value = {
class City (line 99) | public static class City extends Area {
class State (line 103) | public static class State extends Area {
FILE: src/test/java/org/eclipse/yasson/customization/polymorphism/NestedPolymorphismTest.java
class NestedPolymorphismTest (line 31) | public class NestedPolymorphismTest {
method testNestedUnmappedProperty (line 37) | @Test
class InnerBase (line 47) | @JsonbTypeInfo(key = "@type", value =
class Derivation (line 55) | public class Derivation extends InnerBase {}
class Outer (line 58) | public static class Outer {
method testNestedDeserialization (line 66) | @Test
type Pet (line 78) | @JsonbTypeInfo(key = "@type", value = {
method getType (line 83) | public String getType();
class Dog (line 86) | public static class Dog implements Pet {
method getType (line 90) | @Override
class Cat (line 96) | public static class Cat implements Pet {
method getType (line 100) | @Override
type Animals (line 106) | @JsonbTypeInfo(key = "@type", value = {
class Pets (line 114) | public static class Pets implements Animals {
class Fishes (line 119) | public static class Fishes implements Animals {
FILE: src/test/java/org/eclipse/yasson/customization/transients/JsonbTransientTest.java
class JsonbTransientTest (line 25) | public class JsonbTransientTest {
method testJsonbTransientPropertySerialize (line 27) | @Test
method testJsonbTransientPropertyDeserialize (line 42) | @Test
method testTransientCollidesOnProperty (line 65) | @Test
method testTransientCollidesOnGetter (line 78) | @Test
method testTransientCollidesOnPropertyAndGetter (line 91) | @Test
method testTransientCollidesOnSetter (line 104) | @Test
method testTransientCollidesOnPropertyAndSetter (line 117) | @Test
method testTransientCollidesOnPropertyAndGetterAndSetter (line 130) | @Test
method testTransientGetterPlusJsonbPropertyField (line 143) | @Test
method testTransientSetterPlusJsonbPropertyField (line 151) | @Test
method testTransientSetterplusJsonbPropertyGetter (line 159) | @Test
method testTransientGetterNoField (line 165) | @Test
FILE: src/test/java/org/eclipse/yasson/customization/transients/models/JsonbTransientCollisionOnGetter.java
class JsonbTransientCollisionOnGetter (line 21) | public class JsonbTransientCollisionOnGetter {
method getTransientProperty (line 25) | @JsonbTransient
method setTransientProperty (line 31) | public void setTransientProperty(String transientProperty) {
FILE: src/test/java/org/eclipse/yasson/customization/transients/models/JsonbTransientCollisionOnProperty.java
class JsonbTransientCollisionOnProperty (line 21) | public class JsonbTransientCollisionOnProperty {
method getTransientProperty (line 27) | public String getTransientProperty() {
method setTransientProperty (line 31) | public void setTransientProperty(String transientProperty) {
FILE: src/test/java/org/eclipse/yasson/customization/transients/models/JsonbTransientCollisionOnPropertyAndGetter.java
class JsonbTransientCollisionOnPropertyAndGetter (line 21) | public class JsonbTransientCollisionOnPropertyAndGetter {
method getTransientProperty (line 26) | @JsonbProperty("custom_name")
method setTransientProperty (line 31) | public void setTransientProperty(String transientProperty) {
FILE: src/test/java/org/eclipse/yasson/customization/transients/model
Condensed preview — 596 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,832K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 564,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n**Describe the "
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 604,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n\n**Is"
},
{
"path": ".github/ISSUE_TEMPLATE/other-issue.md",
"chars": 102,
"preview": "---\nname: Other issue\nabout: Not a bug or a feature request\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n\n"
},
{
"path": ".github/dependabot.yml",
"chars": 173,
"preview": "version: 2\nupdates:\n - package-ecosystem: github-actions\n directory: /\n schedule:\n interval: daily\n\n# TODO -"
},
{
"path": ".github/workflows/maven.yml",
"chars": 1616,
"preview": "#\n# Copyright (c) 2021, 2026 Oracle and/or its affiliates. All rights reserved.\n#\n# This program and the accompanying ma"
},
{
"path": ".gitignore",
"chars": 92,
"preview": "/target/\n/target-tck/\n.classpath\n.project\n.idea/\n.settings/\n/.DS_Store\nbin/\n.envrc\n.vscode/\n"
},
{
"path": "CONTRIBUTING.md",
"chars": 1518,
"preview": "# Contributing to Eclipse Yasson\n\nThanks for your interest in this project.\n\n## Project description\n\nEclipse Yasson is a"
},
{
"path": "LICENSE.md",
"chars": 15977,
"preview": "# Eclipse Public License - v 2.0\n\n THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENS"
},
{
"path": "NOTICE.md",
"chars": 1492,
"preview": "# Notices for Eclipse Yasson\n\nThis content is produced and maintained by the Eclipse Yasson project.\n\n* Project home: ht"
},
{
"path": "README.md",
"chars": 2918,
"preview": "# Eclipse Yasson\n\n["
},
{
"path": "etc/checkstyle-suppressions.xml",
"chars": 833,
"preview": "<?xml version=\"1.0\"?>\n<!--\n\n Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.\n\n This program "
},
{
"path": "etc/checkstyle.xml",
"chars": 11042,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Copyright (c) 2019, 2024 Oracle and/or its affiliates. All rights reser"
},
{
"path": "etc/copyright-exclude.txt",
"chars": 177,
"preview": ".iml\n.apt\n.args\n.bundle\n.class\n.ddl\n.exe\n.gif\n.gitignore\n.ico\n.jar\n.jks\n.jpg\n.json\n.mm\n.ods\n.png\n.svg\n.war\n.zip\n.dat\n.md"
},
{
"path": "etc/copyright.sh",
"chars": 752,
"preview": "#!/bin/bash -x\n#\n# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.\n#\n# This program and the accomp"
},
{
"path": "etc/copyright.txt",
"chars": 443,
"preview": "/*\n * Copyright (c) YYYY Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanying mate"
},
{
"path": "etc/delivery-checks.sh",
"chars": 525,
"preview": "#!/bin/bash\n#\n# Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.\n#\n# This program and the accompany"
},
{
"path": "pom.xml",
"chars": 29111,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Copyright (c) 2016, 2026 Oracle and/or its affiliates. All rights reser"
},
{
"path": "src/main/java/module-info.java",
"chars": 1020,
"preview": "/*\n * Copyright (c) 2017, 2024 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/FieldAccessStrategy.java",
"chars": 1469,
"preview": "/*\n * Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/ImplementationClass.java",
"chars": 1021,
"preview": "/*\n * Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/JsonBindingProvider.java",
"chars": 817,
"preview": "/*\n * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/YassonConfig.java",
"chars": 5850,
"preview": "/*\n * Copyright (c) 2019, 2022 IBM and/or its affiliates. All rights reserved.\n *\n * This program and the accompanying m"
},
{
"path": "src/main/java/org/eclipse/yasson/YassonJsonb.java",
"chars": 6339,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/YassonProperties.java",
"chars": 1594,
"preview": "/*\n * Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.\n * Copyright (c) 2019, 2020 Payara Fou"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/AnnotationFinder.java",
"chars": 5797,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/AnnotationIntrospector.java",
"chars": 48188,
"preview": "/*\n * Copyright (c) 2016, 2023 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/BuiltInTypes.java",
"chars": 5030,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ClassMultiReleaseExtension.java",
"chars": 1868,
"preview": "/*\n * Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ClassParser.java",
"chars": 17879,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ComponentMatcher.java",
"chars": 22498,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ConstructorPropertiesAnnotationIntrospector.java",
"chars": 4248,
"preview": "/*\n * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/DeserializationContextImpl.java",
"chars": 4674,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/InstanceCreator.java",
"chars": 2282,
"preview": "/*\n * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonBinding.java",
"chars": 10598,
"preview": "/*\n * Copyright (c) 2016, 2025 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonBindingBuilder.java",
"chars": 1542,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonbConfigProperties.java",
"chars": 16119,
"preview": "/*\n * Copyright (c) 2017, 2022 Oracle and/or its affiliates. All rights reserved.\n * Copyright (c) 2019, 2020 Payara Fou"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonbContext.java",
"chars": 7213,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonbDateFormatter.java",
"chars": 4451,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/JsonbNumberFormatter.java",
"chars": 1907,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/MappingContext.java",
"chars": 7507,
"preview": "/*\n * Copyright (c) 2015, 2023 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ProcessingContext.java",
"chars": 2125,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ReflectionUtils.java",
"chars": 18846,
"preview": "/*\n * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanying mate"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/ResolvedParameterizedType.java",
"chars": 2869,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/SerializationContextImpl.java",
"chars": 6951,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n * Copyright (c) 2019, 2020 Payara Fou"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/VariableTypeInheritanceSearch.java",
"chars": 4715,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/AbstractComponentBinding.java",
"chars": 1317,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/AdapterBinding.java",
"chars": 1978,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/BeanManagerInstanceCreator.java",
"chars": 4717,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/ComponentBindings.java",
"chars": 2388,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/DefaultConstructorCreator.java",
"chars": 1008,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/DeserializerBinding.java",
"chars": 1429,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/JsonbComponentInstanceCreatorFactory.java",
"chars": 5975,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/components/SerializerBinding.java",
"chars": 1529,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/AdapterDeserializer.java",
"chars": 2033,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ArrayDeserializer.java",
"chars": 1923,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ArrayInstanceCreator.java",
"chars": 9047,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/CollectionDeserializer.java",
"chars": 1970,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/CollectionInstanceCreator.java",
"chars": 2871,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ContextSwitcher.java",
"chars": 1495,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/CyclicReferenceDeserializer.java",
"chars": 1235,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/DefaultObjectInstanceCreator.java",
"chars": 2340,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/DeferredDeserializer.java",
"chars": 1153,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/DeserializationModelCreator.java",
"chars": 33436,
"preview": "/*\n * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanying mate"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/InheritanceInstanceCreator.java",
"chars": 4171,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/JsonbCreatorDeserializer.java",
"chars": 5542,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/JustReturn.java",
"chars": 1170,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/MapDeserializer.java",
"chars": 4574,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/MapInstanceCreator.java",
"chars": 2740,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ModelDeserializer.java",
"chars": 1131,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/NullCheckDeserializer.java",
"chars": 2022,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ObjectDeserializer.java",
"chars": 3971,
"preview": "/*\n * Copyright (c) 2021, 2023 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/OptionalDeserializer.java",
"chars": 1365,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/PositionChecker.java",
"chars": 4767,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/RequiredCreatorParameter.java",
"chars": 1158,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/UserDefinedDeserializer.java",
"chars": 3398,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ValueExtractor.java",
"chars": 1999,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/ValueSetterDeserializer.java",
"chars": 1379,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/YassonParser.java",
"chars": 4891,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n * Copyright (c) 2026 Contributors to "
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/AbstractDateDeserializer.java",
"chars": 5507,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/AbstractNumberDeserializer.java",
"chars": 3889,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/BigDecimalDeserializer.java",
"chars": 881,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/BigIntegerDeserializer.java",
"chars": 880,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/BooleanDeserializer.java",
"chars": 1115,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ByteDeserializer.java",
"chars": 821,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/CalendarDeserializer.java",
"chars": 2504,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/CharDeserializer.java",
"chars": 949,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/DateDeserializer.java",
"chars": 3359,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/DoubleDeserializer.java",
"chars": 836,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/DurationDeserializer.java",
"chars": 997,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/EnumDeserializer.java",
"chars": 999,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/FloatDeserializer.java",
"chars": 829,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/InstantDeserializer.java",
"chars": 1387,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/IntegerDeserializer.java",
"chars": 1127,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/JsonValueDeserializer.java",
"chars": 2163,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalDateDeserializer.java",
"chars": 1336,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalDateTimeDeserializer.java",
"chars": 1385,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/LocalTimeDeserializer.java",
"chars": 1572,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/LongDeserializer.java",
"chars": 1111,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/MonthDayTypeDeserializer.java",
"chars": 1433,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/NumberDeserializer.java",
"chars": 986,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ObjectTypeDeserializer.java",
"chars": 2378,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/OffsetDateTimeDeserializer.java",
"chars": 1978,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/OffsetTimeDeserializer.java",
"chars": 1584,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalDoubleDeserializer.java",
"chars": 1628,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalIntDeserializer.java",
"chars": 1554,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/OptionalLongDeserializer.java",
"chars": 1612,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/PathDeserializer.java",
"chars": 987,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/PeriodDeserializer.java",
"chars": 979,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ShortDeserializer.java",
"chars": 828,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/SqlDateDeserializer.java",
"chars": 2106,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/SqlTimestampDeserializer.java",
"chars": 1860,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/StringDeserializer.java",
"chars": 1725,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/TimeZoneDeserializer.java",
"chars": 1662,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializer.java",
"chars": 2189,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializerBuilder.java",
"chars": 1861,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/TypeDeserializers.java",
"chars": 9717,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/UriDeserializer.java",
"chars": 964,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/UrlDeserializer.java",
"chars": 1148,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/UuidDeserializer.java",
"chars": 974,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/XmlGregorianCalendarDeserializer.java",
"chars": 3328,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/YearMonthTypeDeserializer.java",
"chars": 1444,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ZoneIdDeserializer.java",
"chars": 976,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ZoneOffsetDeserializer.java",
"chars": 996,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/deserializer/types/ZonedDateTimeDeserializer.java",
"chars": 1982,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonArrayBuilder.java",
"chars": 2097,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonArrayIterator.java",
"chars": 2246,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonGeneratorToStructureAdapter.java",
"chars": 6319,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonObjectBuilder.java",
"chars": 5647,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonObjectIterator.java",
"chars": 3941,
"preview": "/*\n * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureBuilder.java",
"chars": 3669,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureIterator.java",
"chars": 2616,
"preview": "/*\n * Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/jsonstructure/JsonStructureToParserAdapter.java",
"chars": 5493,
"preview": "/*\n * Copyright (c) 2019, 2023 Oracle and/or its affiliates. All rights reserved.\n * Copyright (c) 2026 Contributors to "
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/AnnotationTarget.java",
"chars": 1321,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/ClassModel.java",
"chars": 7176,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/CreatorModel.java",
"chars": 3700,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/JsonbAnnotatedElement.java",
"chars": 4607,
"preview": "/*\n * Copyright (c) 2016, 2023 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/JsonbCreator.java",
"chars": 3004,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/ModulesUtil.java",
"chars": 686,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/Property.java",
"chars": 4777,
"preview": "/*\n * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/PropertyModel.java",
"chars": 26010,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/ReverseTreeMap.java",
"chars": 903,
"preview": "/*\n * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/ClassCustomization.java",
"chars": 5476,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/ComponentBoundCustomization.java",
"chars": 1460,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/CreatorCustomization.java",
"chars": 4046,
"preview": "/*\n * Copyright (c) 2019, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/Customization.java",
"chars": 2472,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/CustomizationBase.java",
"chars": 3728,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/PropertyCustomization.java",
"chars": 10120,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/PropertyOrdering.java",
"chars": 2840,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/StrategiesProvider.java",
"chars": 5754,
"preview": "/*\n * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/TypeInheritanceConfiguration.java",
"chars": 3413,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/model/customization/VisibilityStrategiesProvider.java",
"chars": 3461,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/properties/MessageKeys.java",
"chars": 10430,
"preview": "/*\n * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/properties/Messages.java",
"chars": 3671,
"preview": "/*\n * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/AbstractSerializer.java",
"chars": 741,
"preview": "/*\n * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanying mate"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/AdapterSerializer.java",
"chars": 1975,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/ArraySerializer.java",
"chars": 8564,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/CollectionSerializer.java",
"chars": 1255,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/CyclicReferenceSerializer.java",
"chars": 1325,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/KeyWriter.java",
"chars": 1299,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/MapSerializer.java",
"chars": 6588,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/ModelSerializer.java",
"chars": 1113,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/NullSerializer.java",
"chars": 3508,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/NullVisibilitySwitcher.java",
"chars": 1639,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/ObjectSerializer.java",
"chars": 1751,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/OptionalSerializer.java",
"chars": 1185,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/RecursionChecker.java",
"chars": 1437,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/SerializationModelCreator.java",
"chars": 24626,
"preview": "/*\n * Copyright (c) 2021, 2023 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/SerializerBuilderParams.java",
"chars": 3507,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/UserDefinedSerializer.java",
"chars": 1273,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/ValueGetterSerializer.java",
"chars": 1461,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/YassonGenerator.java",
"chars": 6189,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/AbstractDateSerializer.java",
"chars": 5970,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/AbstractNumberSerializer.java",
"chars": 2190,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/BigDecimalSerializer.java",
"chars": 916,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/BigIntegerSerializer.java",
"chars": 916,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/BooleanSerializer.java",
"chars": 981,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/ByteSerializer.java",
"chars": 857,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/CalendarSerializer.java",
"chars": 1713,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/CharSerializer.java",
"chars": 998,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/DateSerializer.java",
"chars": 1818,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/DoubleSerializer.java",
"chars": 866,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/DurationSerializer.java",
"chars": 1026,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/EnumSerializer.java",
"chars": 1137,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/FloatSerializer.java",
"chars": 993,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/InstantSerializer.java",
"chars": 1464,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/IntegerSerializer.java",
"chars": 872,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/JsonValueSerializer.java",
"chars": 1023,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/LocalDateSerializer.java",
"chars": 1590,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/LocalDateTimeSerializer.java",
"chars": 1651,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/LocalTimeSerializer.java",
"chars": 1392,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/LongSerializer.java",
"chars": 856,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/MonthDayTypeSerializer.java",
"chars": 1367,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/NumberSerializer.java",
"chars": 928,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/ObjectTypeSerializer.java",
"chars": 3120,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/OffsetDateTimeSerializer.java",
"chars": 1181,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/OffsetTimeSerializer.java",
"chars": 1401,
"preview": "/*\n * Copyright (c) 2016, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalDoubleSerializer.java",
"chars": 1428,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalIntSerializer.java",
"chars": 1395,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/OptionalLongSerializer.java",
"chars": 1406,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
},
{
"path": "src/main/java/org/eclipse/yasson/internal/serializer/types/PathSerializer.java",
"chars": 1006,
"preview": "/*\n * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.\n *\n * This program and the accompanyin"
}
]
// ... and 396 more files (download for full content)
About this extraction
This page contains the full source code of the eclipse-ee4j/yasson GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 596 files (1.6 MB), approximately 390.7k tokens, and a symbol index with 3802 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.