Showing preview only (3,875K chars total). Download the full file or copy to clipboard to get everything.
Repository: JodaOrg/joda-beans
Branch: main
Commit: ada2a8fae2c5
Files: 427
Total size: 3.6 MB
Directory structure:
gitextract_08ef56yp/
├── .coderabbit.yaml
├── .github/
│ ├── FUNDING.yml
│ ├── SECURITY.md
│ ├── dependabot.yml
│ ├── maven-settings.xml
│ └── workflows/
│ ├── build.yml
│ ├── release.yml
│ └── website.yml
├── .gitignore
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── RELEASE-NOTES.txt
├── pom.xml
└── src/
├── changes/
│ └── changes.xml
├── main/
│ ├── assembly/
│ │ └── dist.xml
│ ├── checkstyle/
│ │ └── checkstyle.xml
│ ├── java/
│ │ ├── module-info.java
│ │ └── org/
│ │ └── joda/
│ │ └── beans/
│ │ ├── Bean.java
│ │ ├── BeanBuilder.java
│ │ ├── BeanIterator.java
│ │ ├── DynamicBean.java
│ │ ├── DynamicMetaBean.java
│ │ ├── ImmutableBean.java
│ │ ├── JodaBeanUtils.java
│ │ ├── MetaBean.java
│ │ ├── MetaBeanProvider.java
│ │ ├── MetaBeans.java
│ │ ├── MetaProperty.java
│ │ ├── MetaProvider.java
│ │ ├── Property.java
│ │ ├── PropertyPath.java
│ │ ├── PropertyStyle.java
│ │ ├── ResolvedType.java
│ │ ├── TypedMetaBean.java
│ │ ├── gen/
│ │ │ ├── BeanCodeGen.java
│ │ │ ├── BeanCodeGenException.java
│ │ │ ├── BeanData.java
│ │ │ ├── BeanDefinition.java
│ │ │ ├── BeanGen.java
│ │ │ ├── BeanGenConfig.java
│ │ │ ├── BeanParser.java
│ │ │ ├── BuilderGen.java
│ │ │ ├── CopyGen.java
│ │ │ ├── DerivedProperty.java
│ │ │ ├── GetterGen.java
│ │ │ ├── ImmutableConstructor.java
│ │ │ ├── ImmutableDefaults.java
│ │ │ ├── ImmutablePreBuild.java
│ │ │ ├── ImmutableValidator.java
│ │ │ ├── PropertyData.java
│ │ │ ├── PropertyDefinition.java
│ │ │ ├── PropertyGen.java
│ │ │ ├── PropertyParser.java
│ │ │ ├── SetterGen.java
│ │ │ └── package-info.java
│ │ ├── impl/
│ │ │ ├── BasicBean.java
│ │ │ ├── BasicBeanBuilder.java
│ │ │ ├── BasicImmutableBeanBuilder.java
│ │ │ ├── BasicMetaBean.java
│ │ │ ├── BasicMetaProperty.java
│ │ │ ├── BasicProperty.java
│ │ │ ├── BasicPropertyMap.java
│ │ │ ├── BufferingBeanBuilder.java
│ │ │ ├── RecordBean.java
│ │ │ ├── RecordBeanBuilder.java
│ │ │ ├── RecordMetaBean.java
│ │ │ ├── RecordMetaProperty.java
│ │ │ ├── StandaloneMetaProperty.java
│ │ │ ├── direct/
│ │ │ │ ├── DirectBean.java
│ │ │ │ ├── DirectBeanBuilder.java
│ │ │ │ ├── DirectFieldsBeanBuilder.java
│ │ │ │ ├── DirectMetaBean.java
│ │ │ │ ├── DirectMetaProperty.java
│ │ │ │ ├── DirectMetaPropertyMap.java
│ │ │ │ ├── DirectPrivateBeanBuilder.java
│ │ │ │ ├── MinimalMetaBean.java
│ │ │ │ ├── MinimalMetaProperty.java
│ │ │ │ └── package-info.java
│ │ │ ├── flexi/
│ │ │ │ ├── FlexiBean.java
│ │ │ │ ├── FlexiBeanBuilder.java
│ │ │ │ ├── FlexiMetaBean.java
│ │ │ │ ├── FlexiMetaProperty.java
│ │ │ │ └── package-info.java
│ │ │ ├── light/
│ │ │ │ ├── LightBeanBuilder.java
│ │ │ │ ├── LightMetaBean.java
│ │ │ │ ├── LightMetaProperty.java
│ │ │ │ ├── PropertyGetter.java
│ │ │ │ ├── PropertySetter.java
│ │ │ │ └── package-info.java
│ │ │ ├── map/
│ │ │ │ ├── MapBean.java
│ │ │ │ ├── MapBeanBuilder.java
│ │ │ │ ├── MapBeanMetaProperty.java
│ │ │ │ ├── MapMetaBean.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── reflection/
│ │ │ ├── ReflectiveMetaBean.java
│ │ │ ├── ReflectiveMetaProperty.java
│ │ │ └── package-info.java
│ │ ├── package-info.java
│ │ ├── ser/
│ │ │ ├── CollectSerIteratorFactory.java
│ │ │ ├── DefaultDeserializer.java
│ │ │ ├── GuavaSerIteratorFactory.java
│ │ │ ├── JodaBeanMimeType.java
│ │ │ ├── JodaBeanSer.java
│ │ │ ├── JodaBeanSerFormat.java
│ │ │ ├── JodaBeanSmartReader.java
│ │ │ ├── LenientDeserializer.java
│ │ │ ├── LinkedByteArrayOutputStream.java
│ │ │ ├── SerCategory.java
│ │ │ ├── SerDeserializer.java
│ │ │ ├── SerDeserializerProvider.java
│ │ │ ├── SerDeserializers.java
│ │ │ ├── SerIterable.java
│ │ │ ├── SerIterator.java
│ │ │ ├── SerIteratorFactory.java
│ │ │ ├── SerOptional.java
│ │ │ ├── SerTypeMapper.java
│ │ │ ├── bin/
│ │ │ │ ├── AbstractBinReader.java
│ │ │ │ ├── AbstractBinWriter.java
│ │ │ │ ├── BeanPack.java
│ │ │ │ ├── BeanPackInput.java
│ │ │ │ ├── BeanPackOutput.java
│ │ │ │ ├── BeanPackVisualizer.java
│ │ │ │ ├── BeanReferences.java
│ │ │ │ ├── JodaBeanBinFormat.java
│ │ │ │ ├── JodaBeanBinReader.java
│ │ │ │ ├── JodaBeanBinWriter.java
│ │ │ │ ├── JodaBeanPackedBinReader.java
│ │ │ │ ├── JodaBeanPackedBinWriter.java
│ │ │ │ ├── JodaBeanReferencingBinReader.java
│ │ │ │ ├── JodaBeanReferencingBinWriter.java
│ │ │ │ ├── JodaBeanStandardBinReader.java
│ │ │ │ ├── JodaBeanStandardBinWriter.java
│ │ │ │ ├── MsgPack.java
│ │ │ │ ├── MsgPackInput.java
│ │ │ │ ├── MsgPackOutput.java
│ │ │ │ ├── MsgPackVisualizer.java
│ │ │ │ └── package-info.java
│ │ │ ├── json/
│ │ │ │ ├── AbstractJsonReader.java
│ │ │ │ ├── JodaBeanJsonNumberFormat.java
│ │ │ │ ├── JodaBeanJsonReader.java
│ │ │ │ ├── JodaBeanJsonWriter.java
│ │ │ │ ├── JodaBeanSimpleJsonReader.java
│ │ │ │ ├── JodaBeanSimpleJsonWriter.java
│ │ │ │ ├── JsonEvent.java
│ │ │ │ ├── JsonInput.java
│ │ │ │ ├── JsonOutput.java
│ │ │ │ └── package-info.java
│ │ │ ├── map/
│ │ │ │ ├── JodaBeanSimpleMapReader.java
│ │ │ │ ├── JodaBeanSimpleMapWriter.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── xml/
│ │ │ ├── JodaBeanXml.java
│ │ │ ├── JodaBeanXmlReader.java
│ │ │ ├── JodaBeanXmlWriter.java
│ │ │ └── package-info.java
│ │ └── test/
│ │ ├── BeanAssert.java
│ │ ├── BeanComparisonError.java
│ │ ├── JodaBeanTests.java
│ │ └── package-info.java
│ └── resources/
│ └── org/
│ └── joda/
│ └── beans/
│ └── gen/
│ ├── guava.ini
│ └── jdk.ini
├── site/
│ ├── markdown/
│ │ ├── enterprise.md
│ │ ├── index.md
│ │ ├── licensecover.md
│ │ ├── migration.md
│ │ ├── related.md
│ │ ├── userguide-codegen.md
│ │ ├── userguide-serialization.md
│ │ └── userguide.md
│ ├── resources/
│ │ ├── css/
│ │ │ └── site.css
│ │ └── download.html
│ └── site.xml
└── test/
├── java/
│ └── org/
│ └── joda/
│ └── beans/
│ ├── Examples.java
│ ├── TestAddress.java
│ ├── TestArray.java
│ ├── TestBasicBean.java
│ ├── TestBeanCodeGenException.java
│ ├── TestBeanIterator.java
│ ├── TestClone.java
│ ├── TestCompanyAddress.java
│ ├── TestFinalFieldBean.java
│ ├── TestFlexiBean.java
│ ├── TestImmutable.java
│ ├── TestJodaBeanUtils.java
│ ├── TestLight.java
│ ├── TestMapBean.java
│ ├── TestMetaBean.java
│ ├── TestMetaBeanProvider.java
│ ├── TestMetaBeans.java
│ ├── TestMetaInvoke.java
│ ├── TestMinimal.java
│ ├── TestMutableDerived.java
│ ├── TestMutableListBeans.java
│ ├── TestOptionalBean.java
│ ├── TestPair.java
│ ├── TestPerson.java
│ ├── TestPropertyPath.java
│ ├── TestPropertyStyle.java
│ ├── TestRecordBean.java
│ ├── TestReflective.java
│ ├── TestResolvedType.java
│ ├── TestResult.java
│ ├── TestSubBean.java
│ ├── TestValidateBean.java
│ ├── sample/
│ │ ├── AbstractResult.java
│ │ ├── Address.java
│ │ ├── AddressResult.java
│ │ ├── ClassAnnotation.java
│ │ ├── ClonePerson.java
│ │ ├── Company.java
│ │ ├── CompanyAddress.java
│ │ ├── CompanyAddressMidResult.java
│ │ ├── CompanyAddressResult.java
│ │ ├── ComplexAnnotation.java
│ │ ├── Documentation.java
│ │ ├── DocumentationHolder.java
│ │ ├── DoubleGenericsComplexExtendsSuperTwoGenerics.java
│ │ ├── DoubleGenericsNoExtendsNoSuper.java
│ │ ├── DoubleGenericsSimpleSuper.java
│ │ ├── DoubleGenericsWithExtendsNoSuper.java
│ │ ├── DoubleGenericsWithExtendsSuperNoGenerics.java
│ │ ├── DoubleGenericsWithExtendsSuperOneGeneric.java
│ │ ├── DoubleGenericsWithExtendsSuperTwoGenerics.java
│ │ ├── FieldNamesImmutable.java
│ │ ├── FieldNamesImmutableMinimal.java
│ │ ├── FieldNamesLight.java
│ │ ├── FieldNamesMutable.java
│ │ ├── FieldNamesMutableMinimal.java
│ │ ├── FinalFieldBean.java
│ │ ├── GenericAllFinal.java
│ │ ├── GenericArray.java
│ │ ├── GenericInterfaceBase.java
│ │ ├── GenericInterfaceChild.java
│ │ ├── GenericInterfaceImpl.java
│ │ ├── GenericInterfaceMid.java
│ │ ├── GenericSubWrapper.java
│ │ ├── GenericUnionType.java
│ │ ├── GenericWrapperDocumentation.java
│ │ ├── IKey.java
│ │ ├── INamedKey.java
│ │ ├── IPerson.java
│ │ ├── ImmAddress.java
│ │ ├── ImmArrays.java
│ │ ├── ImmClone.java
│ │ ├── ImmComplexAnnotation.java
│ │ ├── ImmDefault.java
│ │ ├── ImmDeprecated.java
│ │ ├── ImmDocumentationHolder.java
│ │ ├── ImmDocumentationResult.java
│ │ ├── ImmDoubleArray.java
│ │ ├── ImmDoubleFloat.java
│ │ ├── ImmEmpty.java
│ │ ├── ImmFieldGetter.java
│ │ ├── ImmGeneric.java
│ │ ├── ImmGenericArray.java
│ │ ├── ImmGenericCollections.java
│ │ ├── ImmGenericLinkedRefs.java
│ │ ├── ImmGenericNonFinal.java
│ │ ├── ImmGuava.java
│ │ ├── ImmJodaConvertBean.java
│ │ ├── ImmJodaConvertWrapper.java
│ │ ├── ImmKey.java
│ │ ├── ImmKeyDeserializer.java
│ │ ├── ImmKeyHolder.java
│ │ ├── ImmKeyHolderDeserializer.java
│ │ ├── ImmKeyList.java
│ │ ├── ImmMappedKey.java
│ │ ├── ImmMinimalMetaBuilder.java
│ │ ├── ImmMinimalPrivateBuilder.java
│ │ ├── ImmNamedKey.java
│ │ ├── ImmOptional.java
│ │ ├── ImmOptionalMeta.java
│ │ ├── ImmPackageScoped.java
│ │ ├── ImmPair.java
│ │ ├── ImmPerson.java
│ │ ├── ImmPersonAbstract.java
│ │ ├── ImmPersonNonFinal.java
│ │ ├── ImmPrivateMeta.java
│ │ ├── ImmSubPersonFromAbstract.java
│ │ ├── ImmSubPersonNonFinal.java
│ │ ├── ImmSubSubPersonFinal.java
│ │ ├── ImmTolerance.java
│ │ ├── ImmTreeNode.java
│ │ ├── ImmTypes.java
│ │ ├── ImmUnusedGeneric.java
│ │ ├── JodaConvertBean.java
│ │ ├── JodaConvertInterface.java
│ │ ├── JodaConvertWrapper.java
│ │ ├── LightEmpty.java
│ │ ├── LightImmutable.java
│ │ ├── LightImmutableGeneric.java
│ │ ├── LightImmutableSimple.java
│ │ ├── LightMutable.java
│ │ ├── LightMutableGeneric.java
│ │ ├── LightMutableSimple.java
│ │ ├── MetaBeanLoad.java
│ │ ├── MidAbstractResult.java
│ │ ├── MinimalEmpty.java
│ │ ├── MinimalImmutable.java
│ │ ├── MinimalImmutableGeneric.java
│ │ ├── MinimalImmutableSimple.java
│ │ ├── MinimalManualBuilder.java
│ │ ├── MinimalMutable.java
│ │ ├── MinimalMutableGeneric.java
│ │ ├── MinimalMutableGenericSimple.java
│ │ ├── MinimalMutableSimple.java
│ │ ├── MutableBaseBean.java
│ │ ├── MutableDeprecated.java
│ │ ├── MutableDerived.java
│ │ ├── MutableDerivedBean.java
│ │ ├── MutableEmptyBase.java
│ │ ├── MutableListFinalBean.java
│ │ ├── MutableListNonFinalBean.java
│ │ ├── MutableOptional.java
│ │ ├── MutableTypes.java
│ │ ├── NoClone.java
│ │ ├── NoGenEquals.java
│ │ ├── NoGenToString.java
│ │ ├── NoProperties.java
│ │ ├── Pair.java
│ │ ├── PairBuilder.java
│ │ ├── PairDeserializer.java
│ │ ├── PairManualInnerBuilder.java
│ │ ├── PairManualTopLevelBuilder.java
│ │ ├── Person.java
│ │ ├── PersonDocumentation.java
│ │ ├── PrimitiveBean.java
│ │ ├── PropertyDefBean.java
│ │ ├── RWOnlyBean.java
│ │ ├── RecordStrIntPair.java
│ │ ├── ReflectiveMutable.java
│ │ ├── Risk.java
│ │ ├── RiskFactory.java
│ │ ├── RiskLevel.java
│ │ ├── RiskPerception.java
│ │ ├── SimpleAnnotation.java
│ │ ├── SimpleJson.java
│ │ ├── SimpleName.java
│ │ ├── SimplePerson.java
│ │ ├── SimplePersonWithBuilderFinal.java
│ │ ├── SimplePersonWithBuilderNonFinal.java
│ │ ├── SimpleSubPersonWithBuilderFinal.java
│ │ ├── SimpleSubPersonWithBuilderNonFinal.java
│ │ ├── SubDecimal.java
│ │ ├── SubPerson.java
│ │ ├── SubValidateBean.java
│ │ ├── SubWrapper.java
│ │ ├── TestRWOnlyBean.java
│ │ ├── TupleFinal.java
│ │ ├── TupleImmutable.java
│ │ ├── TupleNonFinal.java
│ │ ├── TupleSub.java
│ │ ├── TweakedPair.java
│ │ ├── UserAccount.java
│ │ ├── ValidateBean.java
│ │ ├── ValidateBeanCheck.java
│ │ ├── WeirdFormat.java
│ │ ├── Wrapper.java
│ │ └── WrapperToDoubleGenerics.java
│ ├── ser/
│ │ ├── AtomicReference.java
│ │ ├── BigDecimal.java
│ │ ├── Normal.java
│ │ ├── SerTestHelper.java
│ │ ├── TestJodaBeanBinFormat.java
│ │ ├── TestLinkedByteArrayOutputStream.java
│ │ ├── TestSerDeserializerProvider.java
│ │ ├── TestSerTypeMapper.java
│ │ ├── TestSerializeSmartReader.java
│ │ ├── bin/
│ │ │ ├── TestBinPerformance.java
│ │ │ ├── TestSerializePackedBin.java
│ │ │ ├── TestSerializeReferencingBin.java
│ │ │ └── TestSerializeStandardBin.java
│ │ ├── json/
│ │ │ ├── TestJsonInput.java
│ │ │ ├── TestJsonOutput.java
│ │ │ ├── TestJsonPerformance.java
│ │ │ ├── TestSerializeJson.java
│ │ │ └── TestSerializeJsonSimple.java
│ │ ├── lowerCase.java
│ │ ├── map/
│ │ │ └── TestSerializeSimpleMap.java
│ │ └── xml/
│ │ ├── MockRenameDeserializer.java
│ │ ├── MockSemanticChangeDeserializer.java
│ │ ├── MockTypeChangeDeserializer.java
│ │ ├── TestDeserializeXml.java
│ │ └── TestSerializeXml.java
│ └── test/
│ ├── TestBeanAssert.java
│ └── TestCoverage.java
└── resources/
├── META-INF/
│ └── org/
│ └── joda/
│ └── beans/
│ └── JodaBeans.ini
└── org/
└── joda/
└── beans/
└── ser/
├── Address.xml
├── Address1.packbinstr
├── Address2.binstr
├── Address2.json
├── Address2.simplejson
├── Collections.xml
├── Collections1.binstr
├── Collections1.json
├── Collections1.packbinstr
├── Collections1.refbinstr
├── Collections2.binstr
├── Collections2.json
├── Collections2.simplejson
├── ImmAddress.xml
├── ImmAddress1.binstr
├── ImmAddress1.json
├── ImmAddress1.packbinstr
├── ImmAddress1.refbinstr
├── ImmAddress1.simplejson
├── ImmAddress2.binstr
├── ImmAddress2.json
├── ImmAddress2.simplejson
├── ImmAddressCached1.packbinstr
├── ImmArrays1.binstr
├── ImmArrays1.json
├── ImmArrays1.packbinstr
├── ImmArrays1.refbinstr
├── ImmArrays1.simplejson
├── ImmArrays2.binstr
├── ImmArrays2.json
├── ImmArrays2.simplejson
├── ImmOptional.xml
├── ImmOptional1.packbinstr
├── ImmOptional1.refbinstr
├── ImmOptional2.binstr
├── ImmOptional2.json
├── ImmOptional2.simplejson
└── SimpleJson2.simplejson
================================================
FILE CONTENTS
================================================
================================================
FILE: .coderabbit.yaml
================================================
language: en-GB
tone_instructions: ''
early_access: false
enable_free_tier: true
reviews:
profile: chill
request_changes_workflow: true
high_level_summary: true
high_level_summary_placeholder: '@coderabbitai summary'
auto_title_placeholder: '@coderabbitai'
review_status: true
commit_status: true
poem: false
collapse_walkthrough: true
sequence_diagrams: false
changed_files_summary: true
labeling_instructions: []
path_filters:
- '**/*'
- '**/gen/**'
- '!**/test/**/gen/**'
- '!**/.git/**'
- '!**/target/**'
path_instructions:
- path: '**/*.java'
instructions: |
- Review code using Java 21 standards, taking into account the rules defined by `src/main/checkstyle/checkstyle.xml`.
- Validate that code indentation uses spaces, not tabs, with an indent of multiple of 4.
- Validate that immutable local variables are not annotated with `final` unless the variable is required for use in an inner class.
- Favour use of `var` keyword for type declarations. `var` may also be used when the value is a cast `null`.
- Use a coding standard where multi-line expressions have operators and tenary separators at the end of line.
- Propose changes that only use the Java 21 API, not the API of Guava.
- The pattern matching `instanceof` expression safely handles `null`, returning `false`.
- path: '**/main/java/**/*.java'
instructions: |
- This project is mature and must provide a stable backwards-compatible public Java API.
- In the 'Walkthrough' section, you must always provide a list of up to 25 changes to the public Java API that will affect end users.
If there are no changes, you must explicitly state that there are no changes to the public Java API in this PR.
The public Java API is defined as public and protected methods on public classes, plus the file `module-info.java`.
Provide the list by deeply analysing code flow, which incudes analysing code flow through private methods and calls to Guava and Java 21.
Changes to be reported on include:
- New or removed methods in the public Java API
- Changes to method return types or parameter types in the public Java API
- Changes to method behaviour in the public Java API that might affect consumers
- This project uses `System.out.println` instead of logging
- This project tends to prefer `for` loops to streams for performance reasons, however either form is acceptable.
Do not make suggestions to change between streams and for loops or vice versa.
- path: '**/test/java/**/*.java'
instructions: |
For test code, focus on:
- Correctness of test assertions
- Test coverage of edge cases
- Clear test naming and documentation
- Encourage test methods to be package-scoped where possible
- Be more lenient with code style and minor optimisations
abort_on_close: true
auto_review:
enabled: true
auto_incremental_review: true
ignore_title_keywords: []
labels: []
drafts: false
base_branches:
- 'main'
tools:
shellcheck:
enabled: true
ruff:
enabled: false
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
languagetool:
enabled: true
enabled_only: false
level: default
enabled_rules: []
disabled_rules:
- EN_UNPAIRED_BRACKETS
enabled_categories: []
disabled_categories:
- TYPOS
- TYPOGRAPHY
- CASING
biome:
enabled: true
hadolint:
enabled: false
swiftlint:
enabled: true
phpstan:
enabled: false
level: default
golangci-lint:
enabled: false
yamllint:
enabled: true
gitleaks:
enabled: true
checkov:
enabled: false
detekt:
enabled: false
eslint:
enabled: true
rubocop:
enabled: false
buf:
enabled: false
regal:
enabled: false
actionlint:
enabled: true
pmd:
enabled: true
cppcheck:
enabled: false
semgrep:
enabled: true
circleci:
enabled: true
ast-grep:
packages: []
rule_dirs: []
util_dirs: []
essential_rules: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
issues:
scope: auto
jira:
project_keys: []
linear:
team_keys: []
pull_requests:
scope: auto
================================================
FILE: .github/FUNDING.yml
================================================
github: jodastephen
open_collective: joda
tidelift: maven/org.joda:joda-beans
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
================================================
FILE: .github/SECURITY.md
================================================
# Security Policy
## Supported Versions
If a security issue occurs, only the latest versions of v3.x and v2.x are guaranteed to be patched.
Consideration will be given to updating the v1.x line, however this is not guaranteed.
## Reporting a Vulnerability
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
Tidelift will coordinate the fix and disclosure.
================================================
FILE: .github/dependabot.yml
================================================
# Dependabot config
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: weekly
time: "02:30"
open-pull-requests-limit: 20
================================================
FILE: .github/maven-settings.xml
================================================
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>central-publish</id>
<username>${env.MAVEN_CENTRAL_USERNAME}</username>
<password>${env.MAVEN_CENTRAL_PASSWORD}</password>
</server>
<server>
<id>github</id>
<privateKey>${env.GITHUB_TOKEN}</privateKey>
</server>
</servers>
</settings>
================================================
FILE: .github/workflows/build.yml
================================================
name: Build
on:
push:
branches:
- '*'
pull_request:
branches:
- 'main'
schedule:
- cron: '41 19 * * 2'
permissions:
contents: read
jobs:
build:
permissions:
security-events: write # for github/codeql-action
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Maven version
run: |
mkdir -p ./.mvn
echo "-e" >> ./.mvn/maven.config
echo "-B" >> ./.mvn/maven.config
echo "-ntp" >> ./.mvn/maven.config
echo "-DtrimStackTrace=false" >> ./.mvn/maven.config
echo "--settings" >> ./.mvn/maven.config
echo "$( pwd )/.github/maven-settings.xml" >> ./.mvn/maven.config
mvn --version
mkdir -p target
#------------------------------------------------------------------------
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: java
- name: Maven build
run: |
mvn install site -Doss.build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
push:
tags:
- 'release*'
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
ref: "main"
fetch-tags: true
- name: Setup git
run: |
git config --global user.name "Stephen Colebourne (CI)"
git config --global user.email "scolebourne@joda.org"
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Maven version
run: |
mkdir -p ./.mvn
echo "-e" >> ./.mvn/maven.config
echo "-B" >> ./.mvn/maven.config
echo "-ntp" >> ./.mvn/maven.config
echo "-DtrimStackTrace=false" >> ./.mvn/maven.config
echo "--settings" >> ./.mvn/maven.config
echo "$( pwd )/.github/maven-settings.xml" >> ./.mvn/maven.config
mvn --version
mkdir -p target
#------------------------------------------------------------------------
- name: Maven install
run: |
mvn clean install
- name: Maven release
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
run: |
mvn release:clean release:prepare release:perform
- name: Update website
run: |
git tag websiterelease
git push origin websiterelease
- name: Delete release tag
if: "always()"
run: |
git tag --delete "${GITHUB_REF_NAME}" || true
git push --delete origin "${GITHUB_REF_NAME}" || true
================================================
FILE: .github/workflows/website.yml
================================================
name: Website
on:
push:
tags:
- 'website*'
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
ref: ${{ github.ref }}
fetch-tags: true
- name: Setup git
run: |
git config --global user.name "Stephen Colebourne (CI)"
git config --global user.email "scolebourne@joda.org"
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Maven version
run: |
mkdir -p ./.mvn
echo "-e" >> ./.mvn/maven.config
echo "-B" >> ./.mvn/maven.config
echo "-ntp" >> ./.mvn/maven.config
echo "-DtrimStackTrace=false" >> ./.mvn/maven.config
echo "--settings" >> ./.mvn/maven.config
echo "$( pwd )/.github/maven-settings.xml" >> ./.mvn/maven.config
mvn --version
mkdir -p target
#------------------------------------------------------------------------
- name: Maven site
run: |
mvn install site
- name: Checkout website
uses: actions/checkout@v4
with:
token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
repository: JodaOrg/jodaorg.github.io
path: target/jodaorg.github.io
ref: "main"
- name: Update website
run: |
cd target/jodaorg.github.io
git status
rm -rf joda-beans/
cp -R ../site joda-beans/
git add -A
git status
git commit --message "Update joda-beans from CI: $GITHUB_ACTION"
git push origin main
- name: Delete website tag
if: "always()"
run: |
git tag --delete "${GITHUB_REF_NAME}" || true
git push --delete origin "${GITHUB_REF_NAME}" || true
================================================
FILE: .gitignore
================================================
/bin/
/target/
*.log
/tests/
/test-output/
.checkstyle
.classpath
.project
/.settings/
.idea
*.iml
*.class
================================================
FILE: LICENSE.txt
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) 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. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: NOTICE.txt
================================================
Joda Beans
Copyright 2001-present Stephen Colebourne
This product includes software developed by
Joda.org (https://www.joda.org/).
================================================
FILE: README.md
================================================
Joda-Beans
------------
Joda-Beans provides a small framework that adds properties to Java, greatly enhancing JavaBeans.
An API is provided that defines a bean and property model, together with a code generator to make it work in practice.
The key concept is to allow each property on a bean to be accessed as an object.
This enables technologies such as XPath, XML conversion, DB mappings, WebApp validation and Swing bindings.
Joda-Beans is licensed under the business-friendly [Apache 2.0 licence](https://www.joda.org/joda-beans/licenses.html).
### Why Joda Beans?
Joda-Beans has been created to plug a gap in the Java language - properties.
The concept of properties is familiar to those coding in almost every other modern language.
Java stands alone in its pursuit of the terrible JavaBean approach, and personally I believe that
properties should have been added to Java before generics and closures.
JavaBeans are typically created by manual coding or one-off IDE generation, such as by Eclipse.
The same approach is taken to the creation of equals and hashCode methods.
However, none of these approaches provides for a simple and fast mechanism to query a bean for the properties it exposes.
Joda-Beans provides a solution. As a developer, you just write the fields much as you would today.
Then you add annotations to the bean and properties.
Finally, you run a code generator, which creates the get/set methods plus framework methods that allow the properties
to be effectively queried.
If you use Eclipse and the Joda-Beans Maven plugin, the bean will be regenerated automatically on save.
A key point is that the code generator may be run again and again on the Java file, and is non-destructive.
See these sample classes used for testing -
[a simple user account class](https://github.com/JodaOrg/joda-beans/blob/v2.0/src/test/java/org/joda/beans/gen/UserAccount.java#L32),
[example usage](https://github.com/JodaOrg/joda-beans/blob/v2.0/src/test/java/org/joda/beans/Examples.java#L22),
[example of validation](https://github.com/JodaOrg/joda-beans/blob/v2.0/src/test/java/org/joda/beans/gen/ValidateBean.java#L33).
### Documentation
Various documentation is available:
* The [home page](https://www.joda.org/joda-beans/)
* The helpful [user guide](https://www.joda.org/joda-beans/userguide.html)
* The [Javadoc](https://www.joda.org/joda-beans/apidocs/index.html)
* The change notes for the [releases](https://www.joda.org/joda-beans/changes-report.html)
* The [related projects](related.html) including Maven, Gradle and IntelliJ integration
### Releases
The 3.x branch is compatible with Java SE 21 or later.
The 2.x branch is compatible with Java SE 8 or later.
v3.x releases are mostly compatible with v2.x releases,
see the [releases notes](https://www.joda.org/joda-beans/changes-report.html) for details.
Deprecated methods have been removed.
Joda-Beans depends on [Joda-Convert](https://www.joda.org/joda-convert/).
There are a number of [optional dependencies](https://www.joda.org/joda-beans/dependencies.html) which help with integration.
Available in the [Maven Central repository](https://search.maven.org/search?q=g:org.joda%20AND%20a:joda-beans&core=gav)
For Java SE 6 compatibility, use [release 1.14](https://github.com/JodaOrg/joda-beans/releases/tag/v1.14).
There are only [minor incompatibilities](https://www.joda.org/joda-beans/migration.html) with the 1.x codebase.

### For enterprise
Available as part of the Tidelift Subscription.
Joda and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
If you want the flexibility of open source and the confidence of commercial-grade software, this is for you.
[Learn more](https://tidelift.com/subscription/pkg/maven-org-joda-joda-beans?utm_source=maven-org-joda-joda-beans&utm_medium=github)
### Support
Please use [Stack Overflow](https://stackoverflow.com/search?q=joda-beans) for general usage questions.
GitHub [issues](https://github.com/JodaOrg/joda-beans/issues) and [pull requests](https://github.com/JodaOrg/joda-beans/pulls)
should be used when you want to help advance the project.
Any donations to support the project are accepted via [OpenCollective](https://opencollective.com/joda).
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
Tidelift will coordinate the fix and disclosure.
### Release process
* Update version (index.md, changes.xml)
* Commit and push
* `git push origin HEAD:refs/tags/release`
* Code and Website will be built and released by GitHub Actions
Release from local:
* Ensure `gpg-agent` is running
* `mvn clean release:clean release:prepare release:perform`
================================================
FILE: RELEASE-NOTES.txt
================================================
Joda-Beans
================================================
Joda-Beans is a library that provides full bean and property support for the JDK.
The release runs on Java 21 or later.
See https://www.joda.org/joda-beans/changes-report.html for changes
Feedback
--------
Feedback is best received using GitHub issues and Pull Requests.
https://github.com/JodaOrg/joda-beans/
The Joda team
================================================
FILE: pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<!-- ==================================================================== -->
<!-- Build requires Java SE 21 or later -->
<!-- ==================================================================== -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.joda</groupId>
<artifactId>joda-beans</artifactId>
<packaging>jar</packaging>
<name>Joda-Beans</name>
<version>3.0.0-SNAPSHOT</version>
<description>Beans and Properties, compatible with Java 21+</description>
<url>https://www.joda.org/joda-beans/</url>
<!-- ==================================================================== -->
<inceptionYear>2007</inceptionYear>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>Joda.org</name>
<url>https://www.joda.org</url>
</organization>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/JodaOrg/joda-beans/issues/</url>
</issueManagement>
<scm>
<connection>scm:git:https://github.com/JodaOrg/joda-beans.git</connection>
<developerConnection>scm:git:https://github.com/JodaOrg/joda-beans.git</developerConnection>
<url>https://github.com/JodaOrg/joda-beans</url>
<tag>HEAD</tag>
</scm>
<!-- ==================================================================== -->
<developers>
<developer>
<id>jodastephen</id>
<name>Stephen Colebourne</name>
<roles>
<role>Project Lead</role>
</roles>
<timezone>0</timezone>
<url>https://github.com/jodastephen</url>
</developer>
</developers>
<contributors>
<contributor>
<name>bcamel</name>
<url>https://github.com/bcamel</url>
</contributor>
<contributor>
<name>biteytech</name>
<url>https://github.com/biteytech</url>
</contributor>
<contributor>
<name>Hack Kampbjorn</name>
<url>https://github.com/hackmann</url>
</contributor>
<contributor>
<name>Chris Kent</name>
<url>https://github.com/cjkent</url>
</contributor>
<contributor>
<name>mediahype</name>
<url>https://github.com/mediahype</url>
</contributor>
<contributor>
<name>Will Nicholson</name>
<url>https://github.com/wjnicholson</url>
</contributor>
<contributor>
<name>Martynas Sateika</name>
<url>https://github.com/martynassateika</url>
</contributor>
<contributor>
<name>Andreas Schilling</name>
<url>https://github.com/andreas-schilling</url>
</contributor>
<contributor>
<name>troshanin</name>
<url>https://github.com/troshanin</url>
</contributor>
<contributor>
<name>Kevin Vella</name>
<url>https://github.com/lega</url>
</contributor>
</contributors>
<!-- ==================================================================== -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<targetPath>META-INF</targetPath>
<directory>${project.basedir}</directory>
<includes>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
</includes>
</resource>
</resources>
<!-- define build -->
<plugins>
<!-- Enforce Maven 3.8.0 and Java 21+ -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.8.0</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[21,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Tests need access to an extra module. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<compilerArgs>
<arg>--add-modules</arg>
<arg>java.desktop</arg>
<arg>--add-reads</arg>
<arg>org.joda.beans=java.desktop</arg>
</compilerArgs>
</configuration>
</execution>
</executions>
</plugin>
<!-- Tests need access to an extra module. -->
<!-- Package org.joda.beans.sample is only for tests, this it must be explicitly exported. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<configuration>
<useModulePath>true</useModulePath>
<argLine>--add-modules java.desktop --add-reads org.joda.beans=java.desktop --add-exports org.joda.beans/org.joda.beans.sample=org.joda.convert</argLine>
</configuration>
</execution>
<execution>
<id>test-without-modules</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<useModulePath>false</useModulePath>
</configuration>
</execution>
</executions>
</plugin>
<!-- Release to GitHub -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<arguments>-Doss.build -Doss.repo</arguments>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>v@{project.version}</tagNameFormat>
<localCheckout>true</localCheckout>
</configuration>
<dependencies>
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>${github-api.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
<!-- Manage plugin versions -->
<pluginManagement>
<plugins>
<!-- Maven build and reporting plugins (alphabetical) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${maven-changes-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${maven-jxr-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${maven-plugin-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-repository-plugin</artifactId>
<version>${maven-repository-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-report-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>${maven-toolchains-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
</plugin>
<!-- Setup site with reflow maven skin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
<configuration>
<skipDeploy>true</skipDeploy>
</configuration>
<executions>
<execution>
<id>attach-descriptor</id>
<goals>
<goal>attach-descriptor</goal>
</goals>
<!-- https://issues.apache.org/jira/browse/MSITE-639 -->
<configuration>
<locales>en,de</locales>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.joda.external</groupId>
<artifactId>reflow-velocity-tools</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- ==================================================================== -->
<dependencies>
<dependency>
<groupId>org.joda</groupId>
<artifactId>joda-convert</artifactId>
<version>${joda-convert.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>listenablefuture</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.j2objc</groupId>
<artifactId>j2objc-annotations</artifactId>
</exclusion>
<exclusion>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.joda</groupId>
<artifactId>joda-collect</artifactId>
<version>${joda-collect.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- ==================================================================== -->
<reporting>
<plugins>
<!-- Setup standard project info reports -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>ci-management</report>
<report>dependencies</report>
<report>dependency-info</report>
<report>issue-management</report>
<report>licenses</report>
<report>team</report>
<report>scm</report>
<report>summary</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- Setup Checkstyle report, excluding module-info -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<includeResources>false</includeResources>
<includeTestResources>false</includeTestResources>
<includeTestSourceDirectory>false</includeTestSourceDirectory>
<excludes>module-info.java</excludes>
</configuration>
</plugin>
<!-- Setup Javadoc report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<source>21</source>
</configuration>
</plugin>
<!-- Setup Surefire report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-report-plugin.version}</version>
<configuration>
<showSuccess>true</showSuccess>
</configuration>
</plugin>
<!-- Setup changes (release notes) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${maven-changes-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- Setup PMD report, excluding module-info -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<configuration>
<minimumTokens>100</minimumTokens>
<targetJdk>${maven.compiler.release}</targetJdk>
<excludes>
<exclude>module-info.java</exclude>
</excludes>
</configuration>
</plugin>
<!-- Setup spotbugs report -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
</plugin>
<!-- Setup JaCoCo report -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<!-- ==================================================================== -->
<profiles>
<!-- Main profile for command line builds -->
<profile>
<id>oss-build</id>
<activation>
<property>
<name>oss.build</name>
</property>
</activation>
<build>
<plugins>
<!-- Setup OSGi bundle data -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${maven-bundle-plugin.version}</version>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
<Specification-Version>${project.version}</Specification-Version>
<Export-Package>${joda.osgi.packages}</Export-Package>
<Require-Capability>${joda.osgi.require.capability}</Require-Capability>
<_fixupmessages>"Classes found in the wrong directory"; restrict:=error; is:=ignore</_fixupmessages>
</instructions>
<supportIncrementalBuild>true</supportIncrementalBuild>
</configuration>
</execution>
</executions>
</plugin>
<!-- Setup Jar file manifest entries -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Setup Javadoc jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<!-- Javadoc uses source 21 to pickup the module settings -->
<configuration>
<source>21</source>
</configuration>
</plugin>
<!-- Setup source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Setup Checkstyle, excluding module-info -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>run-checkstyle</id>
<phase>process-sources</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>module-info.java</excludes>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Setup JaCoCo code coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Set environment when running on GitHub Actions -->
<profile>
<id>github-action</id>
<activation>
<property>
<name>env.GITHUB_ACTIONS</name>
<value>true</value>
</property>
</activation>
<properties>
<gpg.signer>bc</gpg.signer>
</properties>
</profile>
<!-- Main deployment profile, activated by -Doss.repo -->
<profile>
<id>release-artifacts</id>
<activation>
<property>
<name>oss.repo</name>
</property>
</activation>
<build>
<plugins>
<!-- Create dist files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<attach>false</attach>
<descriptors>
<descriptor>src/main/assembly/dist.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Sign artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Use central plugin to directly release -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central-publish</publishingServerId>
<deploymentName>${project.name}</deploymentName>
<autoPublish>${joda.publish.auto}</autoPublish>
<waitUntil>${joda.publish.wait}</waitUntil>
</configuration>
</plugin>
<!-- Release dist files to GitHub -->
<!-- This will create a tag on GitHub on deploy -->
<!-- The release commit must have been pushed first -->
<plugin>
<groupId>de.jutzig</groupId>
<artifactId>github-release-plugin</artifactId>
<version>${github-release-plugin.version}</version>
<configuration>
<releaseName>Release v${project.version}</releaseName>
<description>See the [change notes](https://www.joda.org/joda-beans/changes-report.html#a${project.version}) for more information.</description>
<tag>v${project.version}</tag>
<overwriteArtifact>true</overwriteArtifact>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>joda-beans*-dist.tar.gz</include>
<include>joda-beans*-dist.zip</include>
</includes>
</fileSet>
</fileSets>
</configuration>
<executions>
<execution>
<id>github-releases</id>
<phase>deploy</phase>
<goals>
<goal>release</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- ==================================================================== -->
<properties>
<!-- Dependencies -->
<assertj.version>3.27.3</assertj.version>
<guava.version>33.4.8-jre</guava.version>
<joda-collect.version>2.0.0</joda-collect.version>
<joda-convert.version>3.0.1</joda-convert.version>
<junit.version>5.13.4</junit.version>
<!-- Common control parameters -->
<joda.osgi.packages>org.joda.beans.*</joda.osgi.packages>
<joda.osgi.require.capability>osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=${maven.compiler.release}))"</joda.osgi.require.capability>
<joda.publish.auto>false</joda.publish.auto><!-- false/true -->
<joda.publish.wait>validated</joda.publish.wait><!-- validated/published -->
<!-- Plugin version numbers -->
<maven-assembly-plugin.version>3.7.1</maven-assembly-plugin.version>
<maven-bundle-plugin.version>6.0.0</maven-bundle-plugin.version>
<maven-changes-plugin.version>2.12.1</maven-changes-plugin.version>
<maven-checkstyle-plugin.version>3.4.0</maven-checkstyle-plugin.version><!-- 3.6.0 fails in reporting -->
<maven-clean-plugin.version>3.4.0</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-dependency-plugin.version>3.8.1</maven-dependency-plugin.version>
<maven-deploy-plugin.version>3.1.3</maven-deploy-plugin.version>
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
<maven-gpg-plugin.version>3.2.7</maven-gpg-plugin.version>
<maven-install-plugin.version>3.1.3</maven-install-plugin.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version>
<maven-jxr-plugin.version>3.6.0</maven-jxr-plugin.version>
<maven-plugin-plugin.version>3.15.1</maven-plugin-plugin.version>
<maven-pmd-plugin.version>3.24.0</maven-pmd-plugin.version><!-- 3.25.0/3.26.0 throws NoSuchMethodException -->
<maven-project-info-reports-plugin.version>3.6.2</maven-project-info-reports-plugin.version><!-- 3.7.0/3.8.0 has error -->
<maven-release-plugin.version>3.1.1</maven-release-plugin.version>
<maven-repository-plugin.version>2.4</maven-repository-plugin.version>
<maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
<maven-site-plugin.version>3.12.1</maven-site-plugin.version><!-- 3.20.0/3.21.0 throws ComponentLookupException -->
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
<maven-surefire-report-plugin.version>3.5.3</maven-surefire-report-plugin.version>
<maven-toolchains-plugin.version>3.2.0</maven-toolchains-plugin.version>
<central-publishing-maven-plugin.version>0.8.0</central-publishing-maven-plugin.version>
<github-api.version>1.326</github-api.version>
<github-release-plugin.version>1.6.0</github-release-plugin.version>
<jacoco-maven-plugin.version>0.8.12</jacoco-maven-plugin.version>
<revapi-maven-plugin.version>0.11.1</revapi-maven-plugin.version>
<revapi-java.version>0.15.1</revapi-java.version>
<spotbugs-maven-plugin.version>4.8.6.6</spotbugs-maven-plugin.version>
<!-- Properties for maven-compiler-plugin -->
<maven.compiler.release>21</maven.compiler.release>
<maven.compiler.fork>true</maven.compiler.fork>
<!-- Properties for maven-javadoc-plugin -->
<author>false</author>
<notimestamp>true</notimestamp>
<doclint>none</doclint>
<!-- Properties for maven-checkstyle-plugin -->
<checkstyle.version>10.23.1</checkstyle.version>
<checkstyle.config.location>src/main/checkstyle/checkstyle.xml</checkstyle.config.location>
<linkXRef>false</linkXRef>
<!-- Other properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
</project>
================================================
FILE: src/changes/changes.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>Changes</title>
<author>Stephen Colebourne</author>
</properties>
<body>
<!-- types are add, fix, remove, update -->
<release version="3.0.0-RC1" date="SNAPSHOT" description="Version 3.0.0-RC1">
<action dev="jodastephen" type="add">
Major version based on Java SE 21.
Mostly compatible with v2.x.
Deprecated methods have been removed.
</action>
<action dev="jodastephen" type="add">
Allow Java records to become beans.
Add `RecordBean` interface that can be implemented by records.
</action>
<action dev="jodastephen" type="add">
Add `LinkedByteArrayOutputStream`, which is like `ByteArrayOutputStream` but faster.
</action>
<action dev="jodastephen" type="add">
Add `ResolvedType`, which allows generic type information to be managed in a simple way.
</action>
<action dev="jodastephen" type="add" issue="232">
Potentially incompatible change:
Manual equals, hashCode and toString methods must now be located *before* the autogenerated block.
This change allows nested classes to be written with their own equals, hashCode and toString methods,
so long as the nested class is written *after* the autogenerated block.
It is expected that most uses of Joda-Beans already have the equals, hashCode and toString methods
before the autogenerated block and therefore will be unaffected.
</action>
<action dev="jodastephen" type="add" issue="445">
Add a new binary format.
This change adds a third binary format, with a focus on size and performance.
In testing it produces binary files similar or slightly smaller than the referencing binary format,
but with faster serialization and deserialization. This solves a performance problem with the referencing
format whereby it tried to deduplicate all beans, even those with very large hash codes.
As part of this change, callers should now explicitly select which binary format they want using `JodaBeanBinFormat`.
</action>
<action dev="jodastephen" type="add" issue="446">
Potentially incompatible change:
The standard and referencing binary formats now support null as a map key.
</action>
<action dev="jodastephen" type="add" issue="230">
Potentially incompatible change:
The referencing binary format no longer deduplicates collections.
The old format can still be parsed successfully.
</action>
<action dev="jodastephen" type="add" issue="446">
Potentially incompatible change:
The standard binary and JSON formats now handle `Iterable` as a collection type.
</action>
<action dev="jodastephen" type="update">
Incompatible change:
The JSON serialization formats have changed for primitive arrays.
Instead of a Joda-Convert formatted string, the array is output as a list of primitives.
This also applies to multi-dimensional arrays.
This is a much more natural JSON format.
The old format can still be parsed successfully.
</action>
<action dev="jodastephen" type="update">
Incompatible change:
The JSON serialization formats have changed requiring fewer @meta and @type annotations.
For example, where the type of the collection is Object,
previously a String value was explicitly typed as a String, now the type is implicit.
This is a much more natural JSON format.
The old format can still be parsed successfully.
</action>
<action dev="jodastephen" type="update" issue="192">
Incompatible change:
The simple JSON serialization format now uses a string instead of null for NaN for consistency.
The new configuration 'JodaBeanJsonNumberFormat' can be used to control how NaN and Infinity are output.
As part of this change, the extended literals from 'The JSON5 Data Interchange Format' can be used if desired.
</action>
</release>
<release version="2.12.0" date="SNAPSHOT" description="v2.12.0">
<action dev="jodastephen" type="fix" issue="424">
Potentially incompatible bug fix:
Properties of type 'boolean[]' and 2-dimensional arrays are now cloned by default in immutable beans
in line with existing behaviour. Cloning is opt-in for mutable beans using new settings on `PropertyDefinition`.
</action>
<action dev="jodastephen" type="fix" issue="424">
Potentially incompatible bug fix:
Binary and JSON parsers now accept the formats produced by v3.x.
Certain edge cases now succeed when previously an exception would have been thrown.
</action>
<action dev="jodastephen" type="fix" issue="405">
Fix code generation for property names that clash with code generated method parameters.
Properties named `obj`, `other` or `propertyName` caused problems.
These are now prefixed by `this` to avoid the clash.
</action>
<action dev="jodastephen" type="fix">
Fix `BeanAssert` to output the correct message.
Previously there was no check for equals at the property level, nor were arrays properly converted to `String`.
</action>
<action dev="jodastephen" type="fix" issue="410">
Fix code generation of light beans for `short`, `byte` and `char` fields.
</action>
</release>
<release version="2.11.1" date="2024-08-01" description="v2.11.1">
<action dev="jodastephen" type="add">
Allow deserialization to handle numbers greater than the capacity of an int.
</action>
</release>
<release version="2.11.0" date="2024-05-23" description="v2.11.0">
<action dev="jodastephen" type="add">
Add `PropertyPath` class, allowing multi-stage property lookups.
</action>
<action dev="jodastephen" type="add">
New methods on MetaBean and MetaProperty to query an annotation, returning Optional.
</action>
<action dev="jodastephen" type="fix">
DirectBean annotation lookup now handles derived properties correctly.
</action>
</release>
<release version="2.10.0" date="2023-09-11" description="v2.10.0">
<action dev="jodastephen" type="update">
The jar file is now a multi-release jar file, with the module-info file moved.
</action>
<action dev="jodastephen" type="remove">
The classic jar file (without module-info.class) is no longer produced.
</action>
</release>
<release version="2.9.2" date="2023-05-29" description="v2.9.2">
<action dev="jodastephen" type="fix">
Allow generics in metaImplements.
</action>
</release>
<release version="2.9.1" date="2023-05-25" description="v2.9.1">
<action dev="jodastephen" type="fix">
Remove erroneous assertj dependency.
</action>
</release>
<release version="2.9.0" date="2023-05-24" description="v2.9.0">
<action dev="jodastephen" type="add">
Add 'metaImplements' bean definition option that allows meta beans to implement an interface.
</action>
<action dev="jodastephen" type="add">
Allow IDEs to generate @Override tags without Joda-Beans removing them on regeneration.
</action>
<action dev="jodastephen" type="update">
Switch master to main.
</action>
<action dev="jodastephen" type="update">
Switch LGTM to CodeQL.
</action>
</release>
<release version="2.8.3" date="2022-08-02" description="Version 2.8.3">
<action dev="martynassateika" type="fix" issue="235">
Fix bug in referencing deserialization.
</action>
<action dev="jodastephen" type="update">
Update dependencies.
</action>
</release>
<release version="2.8.2" date="2022-04-20" description="Version 2.8.2">
<action dev="jodastephen" type="fix">
Avoid NPE in `MetaBeans`.
</action>
<action dev="jodastephen" type="update">
Update Guava dependency.
</action>
</release>
<release version="2.8.1" date="2020-10-20" description="Version 2.8.1">
<action dev="biteytech" type="add" issue="227">
Add 'eol' command line argument to control the end-of-line character.
</action>
<action dev="jodastephen" type="fix" issue="226">
Ensure meta-bean only registered once.
</action>
</release>
<release version="2.8.0" date="2020-02-26" description="Version 2.8.0">
<action dev="jodastephen" type="add">
Provide ability to copy a bean to a builder of a different type.
See JodaBeanUtils.copy(Bean, Class).
</action>
<action dev="cjkent" type="add">
Add MetaBeanProvider annotation for more flexible meta-bean lookup.
</action>
<action dev="jodastephen" type="fix">
Fix mutable beans where the subclass has no properties.
Fixes #210, #221.
</action>
<action dev="wjnicholson" type="fix" issue="224">
Fix binary serialization of Joda-Convert types with intermediate interfaces in referencing format.
</action>
<action dev="wjnicholson" type="fix" issue="220">
Fix toString() to include derived properties.
</action>
<action dev="jodastephen" type="fix" issue="211">
Handle repeated annotations more cleanly.
</action>
<action dev="jodastephen" type="fix">
Call JodaBeansUtils.toString() on all properties, not just the last.
</action>
</release>
<release version="2.7.1" date="2019-06-04" description="Version 2.7.1">
<action dev="jodastephen" type="fix">
Fix manual builders when used with minimal style.
</action>
</release>
<release version="2.7.0" date="2019-06-03" description="Version 2.7.0">
<action dev="jodastephen" type="add">
Add smart reader, that dynamically works out the format of the input.
</action>
<action dev="jodastephen" type="add">
Provide the ability to manually write a builder.
</action>
<action dev="jodastephen" type="add">
New command line flag -generated to add @Generated annotation.
Fixes #209, #149
</action>
<action dev="jodastephen" type="update">
Change XML parsing to share factory.
The JDK bug was fixed many years ago now, please use JDK 8u20 or later to avoid issues.
</action>
<action dev="wjnicholson" type="fix" issue="207">
Fix referencing binary format for serialized nulls.
</action>
</release>
<release version="2.6.2" date="2019-05-15" description="Version 2.6.2">
<action dev="wjnicholson" type="fix" issue="205">
Fix referencing binary format for serialized nulls.
</action>
</release>
<release version="2.6.1" date="2019-05-08" description="Version 2.6.1">
<action dev="wjnicholson" type="fix" issue="204">
Fix referencing binary format for interfaces serialized via Joda-Convert.
</action>
<action dev="jodastephen" type="update">
Update Joda-Convert version.
</action>
</release>
<release version="2.6.0" date="2019-04-05" description="Version 2.6.0">
<action dev="wjnicholson" type="add" issue="203">
Add referencing binary format that typically uses less space.
</action>
<action dev="jodastephen" type="fix">
Ensure that annotations are parsed correctly on fields.
</action>
<action dev="jodastephen" type="fix">
Ensure that all annotations are available at runtime.
</action>
</release>
<release version="2.5.0" date="2019-02-28" description="Version 2.5.0">
<action dev="jodastephen" type="add" issue="200">
Ensure that builders on mutable beans are handled correctly.
Create `toBuilder()` methods and fix case where empty parent bean didn't compile.
</action>
<action dev="jodastephen" type="fix" issue="201">
Fix handling of deprecated properties.
Ensure that Javadoc tag is not output twice.
Move the tag to be output last, after other tags.
</action>
</release>
<release version="2.4.0" date="2019-01-17" description="Version 2.4.0">
<action dev="wjnicholson" type="add">
Add ability to serialize XML to an `Appendable`.
Deprecate existing `writeToBuffer()` methods.
See #196.
</action>
<action dev="jodastephen" type="add">
Add Tidelift commercial support and security policy.
</action>
</release>
<release version="2.3" date="2018-08-10" description="Version 2.3">
<action dev="jodastephen" type="add">
Allow deserializers to be registered in config files.
</action>
<action dev="jodastephen" type="add">
Avoid NullPointerException in finally block.
</action>
</release>
<release version="2.2.2" date="2018-06-13" description="Version 2.2.2">
<action dev="jodastephen" type="add">
Parse class headers spread over multiple lines.
Fixes #191.
</action>
<action dev="jodastephen" type="fix">
Update Guava and Joda-Collect versions.
</action>
</release>
<release version="2.2.1" date="2018-06-08" description="Version 2.2.1">
<action dev="jodastephen" type="fix">
Allow primitive integral types to be deserialized into floating point properties.
Fixes #190.
</action>
</release>
<release version="2.2" date="2018-03-13" description="Version 2.2">
<action dev="jodastephen" type="fix">
Ensure tests and functionality work correctly on Java 9.
</action>
<action dev="jodastephen" type="fix">
Fix light and minimal beans to respect aliases.
Aliases are useful for handling the rename of properties.
Fixes #187.
</action>
<action dev="jodastephen" type="fix">
Add classic jar file for those that can't handle module-info.class.
Fixes #188.
</action>
</release>
<release version="2.1" date="2018-02-19" description="Version 2.1">
<action dev="jodastephen" type="remove">
Remove integration projects - Freemarker, Kryo, Mongo.
These are now available as separate Maven artifacts, see https://github.com/JodaOrg/joda-beans-integrate.
</action>
<action dev="jodastephen" type="add">
Add module-info for Java 9.
Fixes #180.
</action>
<action dev="jodastephen" type="add">
Allow serialization of derived properties.
Use JodaBeanSer::withIncludeDerived(true).
Fixes #183.
</action>
<action dev="jodastephen" type="add">
Change serialization format of simple JSON.
Primitive arrays are now output in standard JSON format, not as a string.
Any byte arrays are still output as base-64.
Simple map format was also changed to retain the arrays.
Fixes #186.
</action>
<action dev="jodastephen" type="fix">
Handle double space in field definitions.
Fixes #182.
</action>
<action dev="jodastephen" type="fix">
Handle wildcards better when looking up generic types.
Fixes #185.
</action>
<action dev="jodastephen" type="fix">
Avoid NPE when parsing JSON.
If the generic type of the key could not be decoded, NPE could result.
Fixes #184.
</action>
<action dev="jodastephen" type="fix">
Fix error message for table/grid.
Fixes #179.
</action>
<action dev="jodastephen" type="fix">
Fix serialization issues for collections.
ImmutableSortedMap now works.
Collections where the generic is `Comparable` now work.
</action>
<action dev="jodastephen" type="add">
Update and redesign build to support Java 9.
</action>
</release>
<release version="2.0.2" date="2017-10-05" description="Version 2.0.2">
<action dev="jodastephen" type="fix">
Fix cached hash code to be transient.
It must not be serialized.
Fixes #177.
</action>
</release>
<release version="2.0.1" date="2017-09-26" description="Version 2.0.1">
<action dev="jodastephen" type="fix">
Fix minimal and light beans.
Code erroneously assumed reflection returns fields in source code order.
Fixes #176.
</action>
<action dev="jodastephen" type="fix">
Ensure that properties stay in order.
Use LinkedHashMap instead of HashMap where necessary.
</action>
</release>
<release version="2.0" date="2017-09-20" description="Version 2.0">
<action dev="jodastephen" type="update">
Move to Java 8.
Change light beans from reflection to method handles.
Change minimal beans to not have generated meta-bean class and disallow subclasses.
Fixes #155.
</action>
<action dev="jodastephen" type="fix">
Use diamond operators in generated code.
Fixes #5.
</action>
<action dev="jodastephen" type="fix">
Add @SafeVarargs annotation.
Fixes #156.
</action>
<action dev="hackmann" type="update">
Change BeanBuilder.get to use meta property type.
Fixes #152.
</action>
<action dev="jodastephen" type="update">
Remove comments for Clover ON/OFF.
Use the AUTOGENERATED START/END comments instead.
Fixes #157.
</action>
<action dev="jodastephen" type="add">
MetaBean must pass type of bean to builder.
This is needed when the meta-bean is not generated.
Fixes #158.
</action>
<action dev="jodastephen" type="add">
Ensure light beans default empty collections.
Fixes #148.
</action>
<action dev="jodastephen" type="remove">
Remove deprecated methods.
</action>
<action dev="jodastephen" type="add">
Additional meta-bean methods - isBuildable(), of(Class), annotations(), annotation(Class).
Fixes #161.
</action>
<action dev="jodastephen" type="add">
Register meta-beans via MetaBean.register(). Deprecate old way on JodaBeanUtils.
Fixes #166.
</action>
<action dev="jodastephen" type="add">
Add methods to assist with test coverage.
Force coverage of Joda-Beans branches so the coverage percentage is more meaningful.
</action>
<action dev="jodastephen" type="add">
Add `Automatic-Module-Name` into `MANIFEST.MF`.
Locks in module name for Java SE 9.
Fixes #175.
</action>
</release>
<release version="1.14" date="2017-09-20" description="Version 1.14">
<action dev="mediahype" type="fix" >
Generate property change as `final transient`.
Fixes #173.
</action>
<action dev="jodastephen" type="fix" >
Handle multi-line annotations after `@PropertyDefinition`.
This simply looks for a comma at the end of the previous line, which isn't perfect but better than nothing.
Fixes #174.
</action>
</release>
<release version="1.13" date="2017-05-04" description="Version 1.13">
<action dev="jodastephen" type="add">
Add lenient mode for deserialization, see `SerDeserializers`.
This allows unknown properties and some invalid types to be ignored.
Fixes #170.
</action>
</release>
<release version="1.12" date="2017-04-10" description="Version 1.12">
<action dev="jodastephen" type="add">
Support derived properties on light and minimal beans.
Fixes #169.
</action>
<action dev="jodastephen" type="fix">
Avoid warnings with generated code setString() and setAll().
Fixes #168.
</action>
<action dev="jodastephen" type="add">
Add notBlank validation.
Fixes #167.
</action>
</release>
<release version="1.11" date="2017-03-29" description="Version 1.11">
<action dev="hackmann" type="fix">
Ensure builder calls super constructor in hierarchy.
Fixes #150.
</action>
<action dev="jodastephen" type="update">
Rename config file from "jdk6" to "jdk".
Fixes #163.
</action>
<action dev="jodastephen" type="add">
ToString style of 'omit' did not affect builder.
Fixes #164.
</action>
<action dev="jodastephen" type="add">
Serialize to/from a Map of Maps.
Fixes #159.
</action>
<action dev="jodastephen" type="update">
Deprecate PropertyMap, use JodaBeanUtils.flatten(bean) or BasicPropertyMap.of(bean).
</action>
<action dev="jodastephen" type="update">
Deprecate BeanQuery, use functional interfaces in Java SE 8.
</action>
<action dev="jodastephen" type="update">
Deprecate BeanBuilder methods - setString() and setAll().
</action>
<action dev="jodastephen" type="add">
Redesign reflective meta-bean.
Fixes #160.
</action>
</release>
<release version="1.10.1" date="2017-01-23" description="Version 1.10.1">
<action dev="jodastephen" type="fix">
JSON/binary serialization fails to read in a double[][] written with meta type.
Fixes #147.
</action>
</release>
<release version="1.10" date="2017-01-16" description="Version 1.10">
<action dev="jodastephen" type="add">
Allow mutable light beans to control constructor scope.
Fixes #145.
</action>
<action dev="jodastephen" type="fix">
Generated factory methods do not have Javadoc @return.
Fixes #146.
</action>
<action dev="jodastephen" type="fix">
Ensure light bean builder handles arbitrary meta property implementations.
Fixes #144.
</action>
<action dev="jodastephen" type="fix">
Avoid generating methods that have no advantage in private builders.
Fixes #143.
</action>
<action dev="jodastephen" type="fix">
Light bean setters fail to work via bean abstraction.
Fixes #142.
</action>
<action dev="jodastephen" type="fix">
Light meta bean field should be final.
Fixes #141.
</action>
</release>
<release version="1.9.1" date="2017-01-11" description="Version 1.9.1">
<action dev="jodastephen" type="fix">
Scope of meta bean and builder should match scope of main bean.
Fixes #140.
</action>
</release>
<release version="1.9" date="2016-12-19" description="Version 1.9">
<action dev="jodastephen" type="add">
Add deserializer providers, to allow more extensibility in deserialization.
Fixes #128.
</action>
<action dev="jodastephen" type="add">
Extend concept of "light" beans to mutable.
Light beans generate minimal code - no meta bean or builder.
Fixes #139.
</action>
<action dev="jodastephen" type="fix">
Avoid NPE for mutable beans with builder.
Fixes #138.
</action>
<action dev="jodastephen" type="add">
Allow clone methods on immutable beans.
</action>
<action dev="bcamel" type="add">
Allow clone methods to be skipped during generation.
Fixes #135.
</action>
<action dev="jodastephen" type="add">
Enhance Guava deserialization when using certain immutable collection types.
Fixes #131.
</action>
<action dev="andreas-schilling" type="fix">
Incorrect config file for JDK 6.
Fixes #134.
</action>
<action dev="jodastephen" type="add">
Provide integration with Kryo serialization.
Fixes #130.
</action>
<action dev="jodastephen" type="add">
Add generation of static factory method.
Fixes #123.
</action>
</release>
<release version="1.8" date="2016-07-28" description="Version 1.8">
<action dev="jodastephen" type="add">
Allow scope of meta-bean to be controlled.
Fixes #127.
</action>
<action dev="jodastephen" type="fix">
Optional properties on light beans did not report the correct property type.
This caused serialization to fail.
Also fix field-based access problems due to lack of setAccessible.
Fixes #126.
</action>
<action dev="jodastephen" type="fix">
Handle JSON parsing where integer can be converted safely to double or float.
Fixes #122.
</action>
<action dev="jodastephen" type="add">
Add support for EnumSet.
Fixes #125.
</action>
</release>
<release version="1.7" date="2015-11-12" description="Version 1.7">
<action dev="jodastephen" type="add">
Change equals/hashCode/toString to use fields, not getters, for immutable beans.
Allow equals/hashCode/toString to be controlled , including selectively omitted.
Fixes #118, #121.
</action>
<action dev="jodastephen" type="add">
Provide ability to generate ConstructorProperties annotation.
Fixes #120.
</action>
<action dev="jodastephen" type="add">
Allow tolerance to be set when comparing beans using BeanAssert.
Additional methods on JodaBeanUtils provides tools for manual equals() methods.
Fixes #117.
</action>
<action dev="jodastephen" type="fix">
Make bean parser more lenient.
Handle open brace immediately following Bean or ImmutableBean in an implements clause.
Fixes #116.
</action>
<action dev="jodastephen" type="fix">
Use configured prefix for cachedHashCode and propertyChangeSupport.
Fixes #115.
</action>
<action dev="jodastephen" type="fix">
Avoid null check in array clone getters where possible.
Fixes #114.
</action>
<action dev="jodastephen" type="fix">
Fix light-weight immutable bean generation.
Generation needs to add call to register the meta-bean.
Constructor location logic is now more lenient to handle interface/class separation.
Fixes #111.
</action>
<action dev="jodastephen" type="fix">
Fix XML to read/write interface base keys.
Handle case where interface does note extend Bean interface.
Fixes #119.
</action>
</release>
<release version="1.6" date="2015-07-24" description="Version 1.6">
<action dev="jodastephen" type="add">
Add light-weight immutable bean generation.
Light-weight code generation using reflection to implement the bean methods.
No Meta class or Builder is generated.
Fixes #111.
</action>
<action dev="jodastephen" type="add">
Add basic support for bound properties.
Implementation only handles non-final properties on mutable beans.
Fixes #78.
</action>
<action dev="jodastephen" type="add">
Support package, protected and public scoped immutable constructors.
Fixes #107.
</action>
<action dev="jodastephen" type="add">
Support package-scoped builder classes.
Fixes #109.
</action>
<action dev="jodastephen" type="add">
Support package-scoped getters/setters.
Fixes #108.
</action>
<action dev="jodastephen" type="fix">
Allow immutable builder property type to be manually controlled.
Fixes #103.
</action>
<action dev="jodastephen" type="fix">
Enhance generation of varargs builder methods.
Support "List<? extends Foo>" and "List<?>"
Fixes #104.
</action>
<action dev="jodastephen" type="add">
Generate documentation for builder methods based on user-written docs.
Fixes #106.
</action>
<action dev="jodastephen" type="add">
Fix code generation for immutable beans where there are two generic types and the types are linked.
For example, Foo<A, B extends Comparable<A>>.
Fixes #110.
</action>
</release>
<release version="1.5.1" date="2015-02-12" description="Version 1.5.1">
<action dev="jodastephen" type="fix">
Enable better test coverage.
Fixes #102.
</action>
<action dev="jodastephen" type="fix">
Optimise JodaBeanUtils for hotspot inlining.
Fixes #101.
</action>
</release>
<release version="1.5" date="2015-01-05" description="Version 1.5">
<action dev="jodastephen" type="fix">
Optimise internals of generated builders to use immutable collections.
This avoids unnecessary copying and object creation.
Fixes #96.
</action>
<action dev="jodastephen" type="add">
Provide details of files changed by code generation.
This allows tooling, such as the maven plugin, to be enhanced.
Fixes #99.
</action>
<action dev="jodastephen" type="add">
Standard format for exceptions in code generation.
Dedicated exception type allows tooling, such as the maven plugin, to be enhanced.
Fixes #98.
</action>
<action dev="jodastephen" type="add">
Add related projects page to website.
</action>
<action dev="andreas-schilling" type="fix">
Fixed parsing of verbose command line flag.
Fixes #97.
</action>
</release>
<release version="1.4" date="2014-12-10" description="Version 1.4">
<action dev="jodastephen" type="add">
Add ImmutablePreBuild annotation.
This handles the case where a property needs to be defaulted from the value of another property.
In most cases, ImmutableDefaults and/or ImmutableValidator are sufficient.
Fixes #95.
</action>
<action dev="jodastephen" type="add">
Generate serialization version id.
If the class implements Serializable and there is no manual serialVersionUID, then one will be generated.
Fixes #94.
</action>
<action dev="jodastephen" type="add">
Support Optional properties in serialization.
If an optional property is used, support it in serialization.
This works for everything except collection types.
Fixes #93.
</action>
<action dev="jodastephen" type="add">
Support Optional return type for getters of nullable properties.
Allows the instance variable of a property to remain nullable (as recommended for Java 8)
but with the getter returning an Optional wrapper.
Simply declare the PropertyDefinition with 'get="optional"'.
Fixes #92.
</action>
<action dev="jodastephen" type="fix">
Avoid including derived properties in equals/hashCode.
Fixes #91.
</action>
<action dev="jodastephen" type="add">
Add support for protected scope getters and setters.
Fixes #90.
</action>
</release>
<release version="1.3" date="2014-12-01" description="Version 1.3">
<action dev="jodastephen" type="fix">
Fix bean generation to handle a lack of spaces in field initializers.
Fixes #87.
</action>
<action dev="jodastephen" type="fix">
Fix bean generation to handle a property of a wildcard list type.
While the need for this is rare, better processing is needed.
The fix requires use of the PropertyDefinition "type" attribute in certain cases.
Fixes #88.
</action>
<action dev="jodastephen" type="fix">
The generated hash codes had a flaw and the algorithm has been changed.
Previously, they used (h += h * 31 + value.hashCode).
Now, they use (h = h * 31 + value.hashCode).
The incorrect version failed to generate unique hash codes when a bean
mostly contained null properties.
This causes all beans to regenerate.
Fixes #89.
</action>
<action dev="jodastephen" type="fix">
Add varargs overrides for collections in immutable builders.
Fixes #85.
</action>
<action dev="jodastephen" type="fix">
Fix code generation of immutable package-scoped beans.
Fixes #86.
</action>
</release>
<release version="1.2" date="2014-10-10" description="Version 1.2">
<action dev="jodastephen" type="add">
Add ability to iterate over all the beans within a bean.
Depth-first iteration handling collections.
Fixes #84.
</action>
<action dev="jodastephen" type="fix">
Fix parsing of class name with extends clause union types.
Generic parameters on second and subsequent union types are not supported.
Fixes #83.
</action>
<action dev="jodastephen" type="add">
Add alias support to PropertyDefinition.
A simple mechanism to handle property renames.
Fixes #82.
</action>
<action dev="jodastephen" type="fix">
Fix parsing of class name with extends clause generics of type with two generic parameters.
Fixes #81.
</action>
<action dev="jodastephen" type="add">
Add option to allow property values to be defaulted on immutable beans.
New annotation @ImmutableDefaults allows default values to be set.
Fixes #80.
</action>
<action dev="jodastephen" type="add">
Add option to allow hash codes to be cached.
New attribute on @BeanDefinition allows caching of hash codes.
Fixes #79.
</action>
</release>
<release version="1.1" date="2014-08-07" description="Version 1.1">
<action dev="jodastephen" type="remove">
Reduce scope of serialization helper classes.
MsgPack, MsgPackInput, MsgPackOutput and JodaBeanXml.
Backwards incompatible, but should not have been used.
</action>
<action dev="jodastephen" type="add">
Add JSON round-trip serialization.
Fixes #75.
</action>
<action dev="jodastephen" type="add">
Use effective type exposed by Joda-Convert.
Joda-Convert v1.7 exposes the effective type of the converted string.
This can be more useful to use in serialization than the value type.
For example, where a public interface has the `FromString` annotation and non-public subclass has the `ToString`.
Fixes #76.
</action>
<action dev="jodastephen" type="add">
Better documentation.
Fixes #74.
</action>
<action dev="jodastephen" type="fix">
Fix to add @Override annotation on toBuilder().
Fixes #73.
</action>
</release>
<release version="1.0.2" date="2014-07-17" description="Version 1.0.2">
<action dev="jodastephen" type="fix">
Fix serialization to handle subclasses of enums.
Fixes #72.
</action>
</release>
<release version="1.0.1" date="2014-06-27" description="Version 1.0.1">
<action dev="jodastephen" type="fix">
Fix immutable beans with private builders.
Meta-Bean builder() method returned the private buidler.
Fixes #70.
</action>
<action dev="jodastephen" type="fix">
Fix immutable builder setString() method to actually convert from a string.
Fixes #69.
</action>
<action dev="jodastephen" type="add">
Add JodaBeansUtils.notEmpty(Collection) and JodaBeansUtils.notEmpty(Map).
Fixes #71.
</action>
</release>
<release version="1.0" date="2014-06-26" description="Version 1.0">
<action dev="jodastephen" type="add">
Update docs for v1.0.
</action>
<action dev="jodastephen" type="fix">
Provide @ImmutableValidator to allow immutable constructors to be manually validated.
Fixes #65.
</action>
<action dev="jodastephen" type="fix">
Generate Javadoc param tags for generic types in meta/builder.
Fixes #68.
</action>
<action dev="jodastephen" type="add">
Add getter/setter style of "field".
As all access is direct to the field, a weird getter/setter can be used.
Fixes #67.
</action>
<action dev="jodastephen" type="fix">
Remove Bean.clone().
Clashes with generic union types.
Immutable beans no longer generate a clone method.
Use JodaBeanUtils.clone(bean) instead.
Fixes #66.
</action>
<action dev="jodastephen" type="fix">
Block immutable beans from using EnumBiMap, EnumHashBiMap, HashBiMap,
EnumMultiset, HashMultiset, LinkedHashMultiset, TreeMultiset,
ArrayListMultimap, LinkedListMultimap, HashMultimap, LinkedHashMultimap, TreeMultimap, SortedSetMultimap
SparseGrid, DenseGrid.
Change Multimap interface to use ArrayListMultimap, not HashMultimap, because ImmutableMultimap is list based.
Fixes #64.
</action>
</release>
<release version="0.9.8" date="2014-05-12" description="Version 0.9.8">
<action dev="jodastephen" type="add">
Enable selective use of Override annotation.
Fixes #63.
</action>
<action dev="jodastephen" type="fix">
Undo deprecation of BasicImmutableBeanBuilder.
</action>
<action dev="jodastephen" type="fix">
Fix immutable beans builder method comment.
Fixes #62.
</action>
<action dev="jodastephen" type="fix">
Enhance and fix 2D array support in serialization.
Fixes #61.
</action>
<action dev="jodastephen" type="fix">
Enhance and fix meta-type support in serialization.
Fixes #60.
</action>
</release>
<release version="0.9.7" date="2014-03-04" description="Version 0.9.7">
<action dev="jodastephen" type="add">
Add support for Joda-Collect Grid interface.
Fixes #59.
</action>
<action dev="jodastephen" type="add">
Add support for Guava BiMap interface.
Fixes #58.
</action>
<action dev="jodastephen" type="add">
Handle collections in clone().
Fixes #55.
</action>
<action dev="jodastephen" type="fix">
Do not clone in getters of mutable beans for arrays and java.util.Date.
Fixes #57.
</action>
<action dev="jodastephen" type="add">
Add mime types for serialized formats.
Fixes #56.
</action>
<action dev="jodastephen" type="add">
Add support for Guava Table interface.
Fixes #54.
</action>
</release>
<release version="0.9.6" date="2014-02-13" description="Version 0.9.6">
<action dev="jodastephen" type="add">
Immutable subclass builders do not work.
Immutable and builder-based beans will regenerate.
Fixes #53.
</action>
<action dev="jodastephen" type="add">
Bean builder should have getters.
Immutable and builder-based beans will regenerate.
Fixes #52.
</action>
<action dev="jodastephen" type="fix">
Deprecate BasicImmutableBeanBuilder.
</action>
<action dev="jodastephen" type="add">
Support three generic parameters.
Fixes #51.
</action>
</release>
<release version="0.9.5" date="2014-02-11" description="Version 0.9.5">
<action dev="jodastephen" type="fix">
More secure XML parsing.
</action>
</release>
<release version="0.9.4" date="2014-02-07" description="Version 0.9.4">
<action dev="jodastephen" type="add">
Add Joda-Bean binary serialization based on MessagePack.
Fixes #49.
</action>
<action dev="jodastephen" type="fix">
More flexible XML parsing wrt Joda-Convert.
Handle a bean that has Joda-Convert annotations added, or vice versa.
Fixes #50.
</action>
<action dev="jodastephen" type="fix">
Invalid code generated for an abstract @ImmutableBean.
Fixes #48.
</action>
<action dev="jodastephen" type="fix">
Guava MultiSet serialized incorrectly.
Was serializing using the set size, not the unique elements size.
Fixes #47.
</action>
</release>
<release version="0.9.3" date="2014-01-28" description="Version 0.9.3">
<action dev="jodastephen" type="fix">
Choose known types in serialization carefully.
Reduce the set from v0.9.2 as that set of types was too large.
Fixes #46.
</action>
<action dev="jodastephen" type="fix">
Fix BeanComparisonError.
Fixes #45.
</action>
</release>
<release version="0.9.2" date="2014-01-27" description="Version 0.9.2">
<action dev="jodastephen" type="fix">
Remove encodeClass/decodeClass from main serialization API.
Fixes #44.
</action>
<action dev="jodastephen" type="fix">
Handle refactored beans in deserialization.
Fixes #43.
</action>
<action dev="jodastephen" type="fix">
BasicBeanBuilder get(String) returns builder rather than the requested data.
Backwards incompatible, but the old code is useless so will never have been used.
Fixes #42.
</action>
<action dev="jodastephen" type="fix">
Ensure XML reader property closed.
Fixes #41.
</action>
<action dev="jodastephen" type="add">
Handle type renames in deserialization.
Fixes #40.
</action>
<action dev="jodastephen" type="fix">
Short types flag not being used in JodaBeanSer.
Fixes #39.
</action>
</release>
<release version="0.9.1" date="2014-01-20" description="Version 0.9.1">
<action dev="jodastephen" type="fix">
Fix immutable collection copies to preserve comparators.
Affects SortedSet and SortedMap.
Fixes #37.
</action>
<action dev="jodastephen" type="fix">
Remove incorrect suppress unchecked in immutable generic beans.
Fixes #38.
</action>
</release>
<release version="0.9.0" date="2013-12-14" description="Version 0.9.0">
<action dev="jodastephen" type="fix">
Support partially final beans and immutable subclasses.
This support is complex and not recommended, but sometimes necessary.
Fixes #24.
</action>
<action dev="jodastephen" type="fix">
Recreate XMLInputFactory each time due to JDK bug JDK-8028111.
Fixes #36.
</action>
<action dev="jodastephen" type="fix">
Fix to ensure nested class constructors are private if the type is final.
May cause beans to regenerate.
Fixes #35.
</action>
<action dev="jodastephen" type="update">
Extend notNull validation to collection properties.
May cause beans to regenerate.
Fixes #34.
</action>
<action dev="jodastephen" type="update">
Enhance PropertyStyle. Add isReadOnly().
Fixes #33.
</action>
<action dev="jodastephen" type="add">
Add 'equalIgnoring' utility to compare two beans ignoring one or more properties.
Fixes #32.
</action>
</release>
<release version="0.8.6" date="2013-11-06" description="Version 0.8.6">
<action dev="jodastephen" type="fix">
XML generation of beans with no fields broken.
Affected COMPACT mode, not PRETTY mode.
Fixes #30.
</action>
<action dev="jodastephen" type="fix">
FlexiMap should retain the order of properties.
Use LinkedHashMap not HashMap.
Fixes #31.
</action>
</release>
<release version="0.8.5" date="2013-10-22" description="Version 0.8.5">
<action dev="jodastephen" type="fix">
Fix code generation unchecked annotation when no writable properties.
</action>
<action dev="jodastephen" type="add">
Allow beans to have two generic type parameters. Fixes #21.
</action>
<action dev="jodastephen" type="fix">
Fix code generation of private immutable builders. Fixes #26.
</action>
<action dev="jodastephen" type="fix">
Parse trailing comments on property definitions. Fixes #27.
</action>
</release>
<release version="0.8.4" date="2013-10-14" description="Version 0.8.4">
<action dev="jodastephen" type="add">
Add setting to allow immutable builders to be private. Fixes #26.
</action>
<action dev="jodastephen" type="fix">
Avoid code generating two lines next to one another.
</action>
<action dev="jodastephen" type="fix">
Handle extra spaces in class/extends definitions. Fixes #25.
</action>
<action dev="jodastephen" type="fix">
Fix code generation for properties of generic type array.
Where bean is Foo<T> and property is T[].
Also where immutable bean and property is T.
Fixes #22.
</action>
<action dev="jodastephen" type="fix">
Bean toString should process arrays correctly. Fixes #23.
</action>
<action dev="jodastephen" type="fix">
Enhance handling of non-null and non-empty fields especially in immutable beans. See #20.
</action>
</release>
<release version="0.8.3" date="2013-10-09" description="Version 0.8.3">
<action dev="jodastephen" type="fix" >
Immutable beans should handle nullable fields. Fixes #20.
</action>
<action dev="jodastephen" type="fix" >
Generate an immutable bean with no properties correctly.
</action>
<action dev="jodastephen" type="fix" >
Handle classes that are loaded but not initialized. Fixes #19.
</action>
</release>
<release version="0.8.2" date="2013-10-04" description="Version 0.8.2">
<action dev="jodastephen" type="fix" >
Fix XML parsing of complex map entries.
</action>
<action dev="jodastephen" type="fix" >
Handle multi-line class definition. Fixes #17.
</action>
<action dev="jodastephen" type="fix" >
Fix FlexiBean serialization. Fixes #18.
</action>
<action dev="jodastephen" type="fix" >
SerIteratorFactory off by one bug.
</action>
</release>
<release version="0.8.1" date="2013-10-03" description="Version 0.8.1">
<action dev="jodastephen" type="add" >
XML format no longer encodes tabs and newlines in elements.
</action>
<action dev="jodastephen" type="add" >
Allow private getters/setters using PropertyDefinition.
</action>
<action dev="jodastephen" type="add" >
Rename XML format map items to 'entry'.
Allow map keys to be beans, using two 'item' elements beneath 'entry'.
</action>
<action dev="jodastephen" type="add" >
Extend analysis of collection/map generic types.
</action>
<action dev="jodastephen" type="add" >
Allow short types to be switched off.
</action>
<action dev="jodastephen" type="fix" >
Handle simple types better when defined by unknown interface.
</action>
<action dev="jodastephen" type="fix" >
Generate correct Javadoc for builder static method with generics.
</action>
<action dev="jodastephen" type="add" >
Allow known types to be built up during serialization.
</action>
<action dev="jodastephen" type="add" >
Permit XML format to omit root type.
</action>
<action dev="jodastephen" type="update" >
Output Joda-Convert data whenever available.
</action>
</release>
<release version="0.8" date="2013-09-30" description="Version 0.8">
<action dev="jodastephen" type="update" >
Move to OSGi generation via Maven plugin.
</action>
<action dev="jodastephen" type="update" >
Add XML round-trip serialization. Fixes #16.
Allows the bean to be converted to and from XML in a human readable format.
</action>
<action dev="jodastephen" type="update" >
Enhance FlexiBean and MapBean. Fixes #15.
These now work more like the original intention.
Properties are always created on demand.
FlexiBean property names are now validated to a minimal format.
</action>
<action dev="jodastephen" type="fix" >
Identify Derived and Immutable properties at runtime. Fixes #14.
Rename readWrite() to style() and PropertyReadWrite to ProperyStyle.
Some existing beans may regenerate.
</action>
<action dev="jodastephen" type="fix" >
Generate final classes for final beans. Fixes #13.
Some existing beans may regenerate.
</action>
<action dev="jodastephen" type="fix" >
Parse annotations above @PropertyDefinition as well as those below. Fixes #10.
Some existing beans may regenerate.
</action>
<action dev="jodastephen" type="add" >
Add support for clone on beans.. Fixes #12.
All existing beans will regenerate.
</action>
<action dev="jodastephen" type="add" >
Add support for immutable beans. Fixes #11.
All existing beans will regenerate.
</action>
<action dev="jodastephen" type="update" >
Move location of equals/hashCode/toString methods in generation.
All existing beans will regenerate.
</action>
<action dev="jodastephen" type="update" >
Allow generated beans to implement interface, rather than extend class. Fixes #9.
Move propertyGet/propertySet/validate into meta-bean
All existing beans will regenerate.
</action>
<action dev="jodastephen" type="add" >
Generate toString() methods. Fixes #8.
All existing beans will regenerate.
</action>
<action dev="jodastephen" type="update" >
Optimize performance of generated equals for primitive numbers.
Some existing beans will regenerate.
</action>
<action dev="jodastephen" type="add" >
Home page at GitHub.
</action>
</release>
<release version="0.7.1" date="2013-07-22" description="Version 0.7.1">
<action dev="jodastephen" type="update">
Adjust code generation so can reformat in Eclipse without changing generated code.
Existing beans will regenerate, even though the only change is one blank line.
</action>
<action dev="jodastephen" type="add">
Add checkstyle
</action>
<action dev="jodastephen" type="update">
Change to use m2e Maven Eclipse
</action>
</release>
<release version="0.7" date="2013-02-20" description="Version 0.7">
<action dev="jodastephen" type="fix">
Fix indentation issue in metaPropertyMap field.
Existing beans will regenerate, even though the only change is indentation.
</action>
<action dev="jodastephen" type="update">
Refactor BeanCodeGen to allow it to be used from tools.
</action>
<action dev="jodastephen" type="fix">
Fix command line arguments - -v -> -verbose.
</action>
</release>
<release version="0.6.2" date="2013-01-21" description="Version 0.6.2">
<action dev="cjkent" type="add">
Add getString() and setString() overrides that take a StringConvert instance.
</action>
</release>
<release version="0.6.1" date="2013-01-08" description="Version 0.6.1">
<action dev="jodastephen" type="add">
Add metaXxx(Class) method to work around Eclipse/javac/Intellij generics compiler issues.
Existing beans will need regenerating.
</action>
<action dev="jodastephen" type="fix">
Allow derived property to be abstract or final.
</action>
<action dev="jodastephen" type="fix">
Set correct read/write flag for final fields.
</action>
</release>
<release version="0.6" date="2012-03-12" description="Version 0.6">
<action dev="jodastephen" type="fix">
Make generics more correct.
</action>
<action dev="jodastephen" type="add">
Add builder methods based on meta-property.
</action>
<action dev="jodastephen" type="fix">
Move example code to correct location.
</action>
<action dev="jodastephen" type="fix">
Allow a property to be named 'map'.
</action>
<action dev="jodastephen" type="fix">
Handle empty comments correctly.
</action>
<action dev="lega" type="add">
Extend builder to support setting by string.
</action>
</release>
<release version="0.5" date="2011-10-27" description="Version 0.5">
<action dev="jodastephen" type="update">
Update to Joda-Convert v1.2 and use new feature to improve string conversion.
</action>
<action dev="jodastephen" type="update">
DirectBean no longer extends BasicBean to simplify the hierarchy.
</action>
<action dev="jodastephen" type="add">
Add BeanQuery and comparator support.
</action>
</release>
<release version="0.4.5" date="2011-10-05" description="Version 0.4.5">
<action dev="jodastephen" type="fix">
Handle generic subclasses better in JodaBeanUtils collection/map type extraction.
</action>
<action dev="jodastephen" type="fix">
Handle arrays in JodaBeanUtils equals method.
</action>
</release>
<release version="0.4.4" date="2011-09-08" description="Version 0.4.4">
<action dev="jodastephen" type="fix">
Fix JodaBeanUtils to handle collections and sets as well as lists.
</action>
</release>
<release version="0.4.3" date="2011-07-26" description="Version 0.4.3">
<action dev="jodastephen" type="add">
Fix generation of non-collection final properties.
</action>
</release>
<release version="0.4.2" date="2011-07-26" description="Version 0.4.2">
<action dev="jodastephen" type="add">
Add JodaBeanUtils.clone().
</action>
<action dev="jodastephen" type="add">
Add JodaBeanUtils.metaBean(), to lookup meta-bean by class.
This requires regeneration of direct beans.
</action>
<action dev="jodastephen" type="update">
Improve generation of imports.
This may require regeneration of direct beans.
</action>
<action dev="jodastephen" type="update">
Handle write-only properties better.
This requires regeneration of direct beans.
</action>
<action dev="jodastephen" type="add">
Allow conversion to and from a standard format string from meta-property.
</action>
</release>
<release version="0.4" date="2011-06-03" description="Version 0.4">
<action dev="jodastephen" type="add">
Add basic validation support.
</action>
<action dev="jodastephen" type="add">
Add derived property annotation and support.
</action>
<action dev="jodastephen" type="add">
Add BeanBuilder concept.
</action>
<action dev="jodastephen" type="add">
Refactor to improve equals/hashCode performance.
</action>
<action dev="jodastephen" type="fix">
Fix property/meta-property equals/hashCode.
</action>
<action dev="jodastephen" type="add">
Enhance meta-property map.
</action>
</release>
<release version="0.3.2" date="2011-04-06" description="Version 0.3.2">
<action dev="jodastephen" type="fix">
Minor fixes.
</action>
</release>
<release version="0.3" date="2010-12-13" description="Version 0.3">
<action dev="jodastephen" type="fix">
Handle generic subclass of a generic class.
</action>
</release>
<release version="0.2.20101111" date="2010-11-11" description="Version 0.2.20101111">
<action dev="jodastephen" type="fix">
Handle subclass of a generic class.
</action>
</release>
<release version="0.2" date="2010-06-30" description="Initial version">
<action dev="jodastephen" type="add">
Initial version.
</action>
</release>
</body>
</document>
================================================
FILE: src/main/assembly/dist.xml
================================================
<assembly>
<id>dist</id>
<formats>
<format>tar.gz</format>
<format>zip</format>
</formats>
<baseDirectory>${artifactId}-${version}</baseDirectory>
<fileSets>
<fileSet>
<includes>
<include>checkstyle.xml</include>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
<include>pom.xml</include>
<include>RELEASE-NOTES.txt</include>
</includes>
</fileSet>
<fileSet>
<directory>src</directory>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
================================================
FILE: src/main/checkstyle/checkstyle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<property name="tabWidth" value="4"/>
<module name="TreeWalker">
<module name="ConstantName">
<property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$|^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="AvoidStarImport">
<property name="severity" value="error"/>
</module>
<module name="EmptyBlock">
<property name="tokens" value="LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_IF,LITERAL_FOR,LITERAL_TRY,LITERAL_WHILE,STATIC_INIT"/>
</module>
<module name="EmptyForInitializerPad">
<property name="option" value="space"/>
</module>
<module name="EmptyForIteratorPad">
<property name="option" value="space"/>
</module>
<module name="EqualsHashCode"/>
<module name="IllegalImport"/>
<module name="IllegalInstantiation">
<property name="classes" value="Boolean"/>
</module>
<module name="JavadocType">
<property name="scope" value="protected"/>
</module>
<module name="JavadocMethod">
<property name="accessModifiers" value="public,protected"/>
</module>
<module name="JavadocVariable">
<property name="accessModifiers" value="public,protected"/>
</module>
<module name="LeftCurly">
<property name="severity" value="error"/>
</module>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9$]*$"/>
</module>
<module name="MethodLength">
<property name="max" value="300"/>
</module>
<module name="MethodName"/>
<module name="MissingJavadocMethodCheck">
<property name="allowMissingPropertyJavadoc" value="true"/>
</module>
<module name="ModifierOrder">
<property name="severity" value="error"/>
</module>
<module name="NeedBraces">
<property name="severity" value="error"/>
</module>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore">
<property name="allowLineBreaks" value="true"/>
<property name="tokens" value="SEMI,DOT,POST_DEC,POST_INC"/>
</module>
<module name="OperatorWrap">
<property name="option" value="eol"/>
<property name="tokens" value="ASSIGN, DIV_ASSIGN, PLUS_ASSIGN, MINUS_ASSIGN, STAR_ASSIGN, MOD_ASSIGN, SR_ASSIGN, BSR_ASSIGN, SL_ASSIGN, BXOR_ASSIGN, BOR_ASSIGN, BAND_ASSIGN"/>
</module>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="ParameterNumber">
<property name="max" value="20"/>
</module>
<module name="ParenPad"/>
<module name="RedundantImport"/>
<module name="RightCurly">
<property name="severity" value="error"/>
</module>
<module name="StaticVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<module name="TypeName"/>
<module name="TypecastParenPad"/>
<module name="UpperEll">
<property name="severity" value="error"/>
</module>
<module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAND,LCURLY,LE,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND"/>
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
</module>
<module name="MissingDeprecated"/>
<module name="MissingOverride"/>
<module name="PackageAnnotation"/>
<module name="CovariantEquals"/>
<module name="DefaultComesLast"/>
<module name="ExplicitInitialization"/>
<module name="FallThrough"/>
<module name="InnerAssignment"/>
<module name="StringLiteralEquality"/>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="FinalClass"/>
<module name="MutableException"/>
<module name="ArrayTypeStyle">
<property name="severity" value="error"/>
</module>
<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="caseIndent" value="4"/>
</module>
<module name="SuppressWithNearbyCommentFilter">
<property name="commentFormat" value="CSIGNORE"/>
<property name="checkFormat" value=".*"/>
<property name="checkC" value="false"/>
</module>
</module>
<!-- Header inlined due to m2e -->
<module name="RegexpHeader">
<property name="header" value="^/\*[*]?\n^ \* Copyright 2001[-]present Stephen Colebourne"/>
<property name="fileExtensions" value="java"/>
</module>
<module name="SuppressWithPlainTextCommentFilter">
<property name="offCommentFormat" value="CSOFF"/>
<property name="onCommentFormat" value="CSON"/>
</module>
<module name="FileLength"/>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
<property name="severity" value="error"/>
</module>
<module name="LineLength">
<property name="ignorePattern" value="^ *\* *[^ ]+$"/>
<property name="max" value="200"/>
</module>
<module name="NewlineAtEndOfFile"/>
</module>
================================================
FILE: src/main/java/module-info.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Joda-Beans is a small framework that adds properties to Java, greatly enhancing JavaBeans.
* <p>
* The key concept is to allow each property on a bean to be accessed as an object in its own right.
* This provides the hook for other technologies to build on, such as serialization, mapping,
* expression languages and validation.
*/
module org.joda.beans {
// dependency on Joda-Convert
requires transitive org.joda.convert;
// dependency on XML parser
requires java.xml;
// optional dependency on Guava
requires static com.google.common;
// optional dependency on Joda-Collect
requires static org.joda.collect;
// export all packages
exports org.joda.beans;
exports org.joda.beans.gen;
exports org.joda.beans.impl;
exports org.joda.beans.impl.direct;
exports org.joda.beans.impl.flexi;
exports org.joda.beans.impl.light;
exports org.joda.beans.impl.map;
exports org.joda.beans.impl.reflection;
exports org.joda.beans.ser;
exports org.joda.beans.ser.bin;
exports org.joda.beans.ser.json;
exports org.joda.beans.ser.map;
exports org.joda.beans.ser.xml;
exports org.joda.beans.test;
}
================================================
FILE: src/main/java/org/joda/beans/Bean.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
import java.util.NoSuchElementException;
import java.util.Set;
/**
* A bean consisting of a set of properties.
* <p>
* The implementation may be any class, but is typically a standard JavaBean
* with get/set methods. Alternate implementations might store the properties
* in another data structure such as a map.
*/
public interface Bean {
/**
* Gets the meta-bean representing the parts of the bean that are
* common across all instances, such as the set of meta-properties.
* <p>
* The meta-bean can be thought of as the equivalent of {@link Class} but for beans.
*
* @return the meta-bean, not null
*/
public abstract MetaBean metaBean();
/**
* Gets a property by name.
* <p>
* Each bean consists of a known set of properties.
* This method checks whether there is a property with the specified name.
* <p>
* The base interface throws an exception if the name is not recognised.
* By contrast, the {@code DynamicBean} interface creates the property on demand.
*
* @param <R> the property type, optional, enabling auto-casting
* @param propertyName the property name to retrieve, not null
* @return the property, not null
* @throws NoSuchElementException if the property name is invalid
*/
public default <R> Property<R> property(String propertyName) {
return metaBean().<R>metaProperty(propertyName).createProperty(this);
}
/**
* Gets the set of property names.
* <p>
* Each bean consists of a known set of properties.
* This method returns the known property names.
*
* @return the unmodifiable set of property names, not null
*/
public default Set<String> propertyNames() {
return metaBean().metaPropertyMap().keySet();
}
}
================================================
FILE: src/main/java/org/joda/beans/BeanBuilder.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
/**
* A builder for a bean, providing a safe way to create it.
* <p>
* This interface allows a bean to be created even if it is immutable.
*
* @param <T> the type of the bean
*/
public interface BeanBuilder<T extends Bean> {
/**
* Gets the value of a single property previously added to the builder.
*
* @param propertyName the property name to query, not null
* @return the previously set value, null if none
* @throws RuntimeException thrown if the property name is invalid
*/
public abstract Object get(String propertyName);
/**
* Gets the value of a single property previously added to the builder.
*
* @param metaProperty the meta-property to query, not null
* @return the previously set value, null if none
* @throws RuntimeException thrown if the property is invalid
* @param <P> the type of the property.
*/
public abstract <P> P get(MetaProperty<P> metaProperty);
/**
* Sets the value of a single property into the builder.
* <p>
* This will normally behave as per a {@code Map}, however it may not
* and as a general rule callers should only set each property once.
*
* @param propertyName the property name to set, not null
* @param value the property value, may be null
* @return {@code this}, for chaining, not null
* @throws RuntimeException optionally thrown if the property name is invalid
*/
public abstract BeanBuilder<T> set(String propertyName, Object value);
/**
* Sets the value of a single property into the builder.
* <p>
* This will normally behave as per a {@code Map}, however it may not
* and as a general rule callers should only set each property once.
*
* @param metaProperty the meta-property to set, not null
* @param value the property value, may be null
* @return {@code this}, for chaining, not null
* @throws RuntimeException optionally thrown if the property is invalid
*/
public abstract BeanBuilder<T> set(MetaProperty<?> metaProperty, Object value);
/**
* Builds the bean from the state of the builder.
* <p>
* Once this method has been called, the builder is in an invalid state.
* The effect of further method calls is undetermined.
*
* @return the created bean, not null
*/
public abstract T build();
}
================================================
FILE: src/main/java/org/joda/beans/BeanIterator.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import org.joda.beans.ser.SerIteratorFactory;
/**
* An iterator over beans.
*/
final class BeanIterator implements Iterator<Bean> {
/**
* The stack of beans.
*/
private final List<Bean> stack = new ArrayList<>(32);
/**
* Creates an instance.
*
* @param root the bean to iterate over
*/
BeanIterator(Bean root) {
this.stack.add(root);
}
@Override
public boolean hasNext() {
return !stack.isEmpty();
}
@Override
public Bean next() {
if (!hasNext()) {
throw new NoSuchElementException("No more elements in the iterator");
}
// next bean to return is head of the stack
var currentBean = stack.remove(stack.size() - 1);
// temp used to reverse the order of child beans to match depth-first order
// alternative is to insert into stack at a fixed index (lots of array copying)
var temp = new ArrayDeque<Bean>(32);
for (var mp : currentBean.metaBean().metaPropertyIterable()) {
findChildBeans(mp.get(currentBean), mp, currentBean.getClass(), temp);
}
stack.addAll(temp);
return currentBean;
}
// find child beans, including those in collections
private void findChildBeans(Object obj, MetaProperty<?> mp, Class<?> beanClass, Deque<Bean> temp) {
if (obj != null) {
if (obj instanceof Bean bean) {
temp.addFirst(bean);
} else {
var it = SerIteratorFactory.INSTANCE.create(obj, mp, beanClass);
if (it != null) {
while (it.hasNext()) {
it.next();
findChildBeans(it.key(), mp, Object.class, temp);
findChildBeans(it.value(), mp, Object.class, temp);
findChildBeans(it.column(), mp, Object.class, temp);
}
}
}
}
}
@Override
public void remove() {
throw new UnsupportedOperationException("BeanIterator does not support remove()");
}
}
================================================
FILE: src/main/java/org/joda/beans/DynamicBean.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
/**
* A dynamic bean that allows properties to be added and removed.
* <p>
* A JavaBean is defined at compile-time and cannot have additional properties added.
* Instances of this interface allow additional properties to be added and removed
* probably by wrapping a map
*/
public interface DynamicBean extends Bean {
/**
* Gets the meta-bean representing the parts of the bean that are
* common across all instances, such as the set of meta-properties.
*
* @return the meta-bean, not null
*/
@Override
public abstract DynamicMetaBean metaBean();
/**
* Gets a property by name.
* <p>
* This will not throw an exception if the property name does not exist.
* Whether a property is immediately created or not is implementation dependent.
*
* @param <R> the property type, optional, enabling auto-casting
* @param propertyName the property name to retrieve, not null
* @return the property, not null
*/
@Override
public abstract <R> Property<R> property(String propertyName);
/**
* Adds a property to those allowed to be stored in the bean.
* <p>
* Some implementations will automatically add properties, in which case this
* method will have no effect.
*
* @param propertyName the property name to check, not empty, not null
* @param propertyType the property type, not null
*/
public abstract void propertyDefine(String propertyName, Class<?> propertyType);
/**
* Removes a property by name.
*
* @param propertyName the property name to remove, null ignored
*/
public abstract void propertyRemove(String propertyName);
}
================================================
FILE: src/main/java/org/joda/beans/DynamicMetaBean.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
/**
* A dynamic meta-bean which works with {@code DynamicBean}.
* <p>
* A dynamic bean can have properties added or removed at any time.
* As such, there is a different meta-bean for each dynamic bean.
* The meta-bean allows meta-properties to be created on demand.
*/
public interface DynamicMetaBean extends MetaBean {
/**
* Creates a bean builder that can be used to create an instance of this bean.
* <p>
* All properties added to the builder will be created and appear in the result.
*
* @return the bean builder, not null
* @throws UnsupportedOperationException if the bean cannot be created
*/
@Override
public abstract BeanBuilder<? extends DynamicBean> builder();
/**
* Get the type of the bean represented as a {@code Class}.
*
* @return the type of the bean, not null
*/
@Override
public abstract Class<? extends DynamicBean> beanType();
/**
* Gets a meta-property by name.
* <p>
* This will not throw an exception if the meta-property name does not exist.
* Whether a meta-property is immediately created or not is implementation dependent.
*
* @param <R> the property type, optional, enabling auto-casting
* @param propertyName the property name to retrieve, not null
* @return the meta property, not null
*/
@Override
public abstract <R> MetaProperty<R> metaProperty(String propertyName);
//-----------------------------------------------------------------------
/**
* Defines a property for the bean.
* <p>
* Some implementations will automatically add properties, in which case this
* method will have no effect.
*
* @param propertyName the property name to check, not empty, not null
* @param propertyType the property type, not null
*/
public abstract void metaPropertyDefine(String propertyName, Class<?> propertyType);
/**
* Removes a property by name.
*
* @param propertyName the property name to remove, null ignored
*/
public abstract void metaPropertyRemove(String propertyName);
}
================================================
FILE: src/main/java/org/joda/beans/ImmutableBean.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
/**
* An immutable bean consisting of a set of properties.
* <p>
* This marker interface allows immutable beans to be identified.
*/
public interface ImmutableBean extends Bean {
}
================================================
FILE: src/main/java/org/joda/beans/JodaBeanUtils.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
import java.lang.reflect.Array;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.lang.reflect.WildcardType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.function.Function;
import org.joda.beans.impl.direct.DirectBean;
import org.joda.beans.impl.flexi.FlexiBean;
import org.joda.collect.grid.DenseGrid;
import org.joda.collect.grid.Grid;
import org.joda.collect.grid.ImmutableGrid;
import org.joda.collect.grid.SparseGrid;
import org.joda.convert.StringConvert;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableMultiset;
import com.google.common.collect.ImmutableTable;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.LinkedHashMultiset;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.SetMultimap;
import com.google.common.collect.SortedMultiset;
import com.google.common.collect.Table;
import com.google.common.collect.TreeMultiset;
/**
* A set of utilities to assist when working with beans and properties.
*/
public final class JodaBeanUtils {
/**
* The cache of meta-beans.
*/
private static final StringConvert converter = new StringConvert();
/**
* Restricted constructor.
*/
private JodaBeanUtils() {
}
//-----------------------------------------------------------------------
/**
* Gets the standard string format converter.
* <p>
* This returns a singleton that may be mutated (holds a concurrent map).
* New conversions should be registered at program startup.
*
* @return the standard string converter, not null
*/
public static StringConvert stringConverter() {
return converter;
}
//-----------------------------------------------------------------------
/**
* Checks if two objects are equal handling null.
*
* @param obj1 the first object, may be null
* @param obj2 the second object, may be null
* @return true if equal
*/
public static boolean equal(Object obj1, Object obj2) {
if (obj1 == obj2) {
return true;
}
if (obj1 == null || obj2 == null) {
return false;
}
if (obj1.getClass().isArray()) {
return equalsArray(obj1, obj2);
}
// this does not handle arrays embedded in objects, such as in lists/maps,
// but you shouldn't use arrays like that, should you?
return obj1.equals(obj2);
}
// extracted from equal(Object,Object) to aid hotspot inlining
private static boolean equalsArray(Object obj1, Object obj2) {
if (obj1.getClass() != obj2.getClass()) {
return false;
}
return switch (obj1) {
case Object[] objects -> Arrays.deepEquals(objects, (Object[]) obj2);
case int[] ints -> Arrays.equals(ints, (int[]) obj2);
case long[] longs -> Arrays.equals(longs, (long[]) obj2);
case byte[] bytes -> Arrays.equals(bytes, (byte[]) obj2);
case double[] doubles -> Arrays.equals(doubles, (double[]) obj2);
case float[] floats -> Arrays.equals(floats, (float[]) obj2);
case char[] chars -> Arrays.equals(chars, (char[]) obj2);
case short[] shorts -> Arrays.equals(shorts, (short[]) obj2);
case boolean[] booleans -> Arrays.equals(booleans, (boolean[]) obj2);
default -> false; // unreachable?
};
}
/**
* Checks if two floats are equal based on identity.
* <p>
* This performs the same check as {@link Float#equals(Object)}.
*
* @param val1 the first value, may be null
* @param val2 the second value, may be null
* @return true if equal
*/
public static boolean equal(float val1, float val2) {
return Float.floatToIntBits(val1) == Float.floatToIntBits(val2);
}
/**
* Checks if two floats are equal within the specified tolerance.
* <p>
* Two NaN values are equal. Positive and negative infinity are only equal with themselves.
* Otherwise, the difference between the values is compared to the tolerance.
*
* @param val1 the first value, may be null
* @param val2 the second value, may be null
* @param tolerance the tolerance used to compare equal
* @return true if equal
*/
public static boolean equalWithTolerance(float val1, float val2, double tolerance) {
return (Float.floatToIntBits(val1) == Float.floatToIntBits(val2)) || Math.abs(val1 - val2) <= tolerance;
}
/**
* Checks if two doubles are equal based on identity.
* <p>
* This performs the same check as {@link Double#equals(Object)}.
*
* @param val1 the first value, may be null
* @param val2 the second value, may be null
* @return true if equal
*/
public static boolean equal(double val1, double val2) {
return Double.doubleToLongBits(val1) == Double.doubleToLongBits(val2);
}
/**
* Checks if two doubles are equal within the specified tolerance.
* <p>
* Two NaN values are equal. Positive and negative infinity are only equal with themselves.
* Otherwise, the difference between the values is compared to the tolerance.
* The tolerance is expected to be a finite value, not NaN or infinity.
*
* @param val1 the first value, may be null
* @param val2 the second value, may be null
* @param tolerance the tolerance used to compare equal
* @return true if equal
*/
public static boolean equalWithTolerance(double val1, double val2, double tolerance) {
return (Double.doubleToLongBits(val1) == Double.doubleToLongBits(val2)) || Math.abs(val1 - val2) <= tolerance;
}
/**
* Returns a hash code for an object handling null.
*
* @param obj the object, may be null
* @return the hash code
*/
public static int hashCode(Object obj) {
if (obj == null) {
return 0;
}
if (obj.getClass().isArray()) {
return hashCodeArray(obj);
}
return obj.hashCode();
}
// extracted from hashCode(Object) to aid hotspot inlining
private static int hashCodeArray(Object obj) {
return switch (obj) {
case Object[] objects -> Arrays.deepHashCode(objects);
case int[] ints -> Arrays.hashCode(ints);
case long[] longs -> Arrays.hashCode(longs);
case byte[] bytes -> Arrays.hashCode(bytes);
case double[] doubles -> Arrays.hashCode(doubles);
case float[] floats -> Arrays.hashCode(floats);
case char[] chars -> Arrays.hashCode(chars);
case short[] shorts -> Arrays.hashCode(shorts);
case boolean[] booleans -> Arrays.hashCode(booleans);
default -> obj.hashCode(); // unreachable?
};
}
/**
* Returns a hash code for a {@code boolean}.
*
* @param value the value to convert to a hash code
* @return the hash code
*/
public static int hashCode(boolean value) {
return value ? 1231 : 1237;
}
/**
* Returns a hash code for an {@code int}.
*
* @param value the value to convert to a hash code
* @return the hash code
*/
public static int hashCode(int value) {
return value;
}
/**
* Returns a hash code for a {@code long}.
*
* @param value the value to convert to a hash code
* @return the hash code
*/
public static int hashCode(long value) {
return Long.hashCode(value);
}
/**
* Returns a hash code for a {@code float}.
*
* @param value the value to convert to a hash code
* @return the hash code
*/
public static int hashCode(float value) {
return Float.hashCode(value);
}
/**
* Returns a hash code for a {@code double}.
*
* @param value the value to convert to a hash code
* @return the hash code
*/
public static int hashCode(double value) {
return Double.hashCode(value);
}
//-----------------------------------------------------------------------
/**
* Returns the {@code toString} value handling arrays.
*
* @param obj the object, may be null
* @return the string, not null
*/
public static String toString(Object obj) {
if (obj == null) {
return "null";
}
if (obj.getClass().isArray()) {
return toStringArray(obj);
}
return obj.toString();
}
// extracted from toString(Object) to aid hotspot inlining
private static String toStringArray(Object obj) {
return switch (obj) {
case Object[] objects -> Arrays.deepToString(objects);
case int[] ints -> Arrays.toString(ints);
case long[] longs -> Arrays.toString(longs);
case byte[] bytes -> Arrays.toString(bytes);
case double[] doubles -> Arrays.toString(doubles);
case float[] floats -> Arrays.toString(floats);
case char[] chars -> Arrays.toString(chars);
case short[] shorts -> Arrays.toString(shorts);
case boolean[] booleans -> Arrays.toString(booleans);
default -> obj.toString(); // unreachable?
};
}
//-----------------------------------------------------------------------
/**
* Checks if the two beans have the same set of properties.
* <p>
* This comparison checks that both beans have the same set of property names
* and that the value of each property name is also equal.
* It does not check the bean type, thus a {@link FlexiBean} may be equal
* to a {@link DirectBean}.
* <p>
* This comparison is usable with the {@link #propertiesHashCode} method.
* The result is the same as that if each bean was converted to a {@code Map}
* from name to value.
*
* @param bean1 the first bean to compare, not null
* @param bean2 the second bean to compare, not null
* @return true if equal
*/
public static boolean propertiesEqual(Bean bean1, Bean bean2) {
var names = bean1.propertyNames();
if (!names.equals(bean2.propertyNames())) {
return false;
}
for (var name : names) {
var value1 = bean1.property(name).get();
var value2 = bean2.property(name).get();
if (!equal(value1, value2)) {
return false;
}
}
return true;
}
/**
* Returns a hash code based on the set of properties on a bean.
* <p>
* This hash code is usable with the {@link #propertiesEqual} method.
* The result is the same as that if each bean was converted to a {@code Map}
* from name to value.
*
* @param bean the bean to generate a hash code for, not null
* @return the hash code
*/
public static int propertiesHashCode(Bean bean) {
var hash = 7;
var names = bean.propertyNames();
for (var name : names) {
var value = bean.property(name).get();
hash += hashCode(value);
}
return hash;
}
/**
* Returns a string describing the set of properties on a bean.
* <p>
* The result is the same as that if the bean was converted to a {@code Map}
* from name to value.
*
* @param bean the bean to generate a string for, not null
* @param prefix the prefix to use, null ignored
* @return the string form of the bean, not null
*/
public static String propertiesToString(Bean bean, String prefix) {
if (prefix == null) {
return propertiesToString(bean, "");
}
var names = bean.propertyNames();
var buf = new StringBuilder((names.size()) * 32 + prefix.length()).append(prefix);
buf.append('{');
if (!names.isEmpty()) {
for (var name : names) {
var value = bean.property(name).get();
buf.append(name).append('=').append(value).append(',').append(' ');
}
buf.setLength(buf.length() - 2);
}
buf.append('}');
return buf.toString();
}
/**
* Flattens a bean to a {@code Map}.
* <p>
* The returned map will contain all the properties from the bean with their actual values.
*
* @param bean the bean to generate a string for, not null
* @return the bean as a map, not null
*/
public static Map<String, Object> flatten(Bean bean) {
var propertyMap = bean.metaBean().metaPropertyMap();
var map = new LinkedHashMap<String, Object>(propertyMap.size());
for (var entry : propertyMap.entrySet()) {
map.put(entry.getKey(), entry.getValue().get(bean));
}
return Collections.unmodifiableMap(map);
}
//-----------------------------------------------------------------------
/**
* Copies properties from a bean to a different bean type.
* <p>
* This copies each non-null property value from the source bean to the destination builder
* provided that the destination builder supports the property name and the type is compatible.
*
* @param <T> the type of the bean to create
* @param sourceBean the bean to copy from, not null
* @param destType the type of the destination bean, not null
* @return the copied bean as a builder
* @throws RuntimeException if unable to copy a property
*/
public static <T extends Bean> BeanBuilder<T> copy(Bean sourceBean, Class<T> destType) {
var destMeta = MetaBean.of(destType);
@SuppressWarnings("unchecked")
var destBuilder = (BeanBuilder<T>) destMeta.builder();
return copyInto(sourceBean, destMeta, destBuilder);
}
/**
* Copies properties from a bean to a builder, which may be for a different type.
* <p>
* This copies each non-null property value from the source bean to the destination builder
* provided that the destination builder supports the property name and the type is compatible.
*
* @param <T> the type of the bean to create
* @param sourceBean the bean to copy from, not null
* @param destMeta the meta bean of the destination, not null
* @param destBuilder the builder to populate, not null
* @return the updated builder
* @throws RuntimeException if unable to copy a property
*/
public static <T extends Bean> BeanBuilder<T> copyInto(Bean sourceBean, MetaBean destMeta, BeanBuilder<T> destBuilder) {
var sourceMeta = sourceBean.metaBean();
for (var sourceProp : sourceMeta.metaPropertyIterable()) {
if (destMeta.metaPropertyExists(sourceProp.name())) {
var destProp = destMeta.metaProperty(sourceProp.name());
if (destProp.propertyType().isAssignableFrom(sourceProp.propertyType())) {
var sourceValue = sourceProp.get(sourceBean);
if (sourceValue != null) {
destBuilder.set(destProp, sourceValue);
}
}
}
}
return destBuilder;
}
//-----------------------------------------------------------------------
/**
* Deep clones an array.
* <p>
* This performs a deep clone and handles multi-dimensional arrays.
* There is no protection against cycles in the object graph beyond {@code StackOverflowError}.
* <p>
* Unfortunately, primitive arrays don't play nicely with generics, thus callers must cast the result.
*
* @param original the original array to clone, null returns null
* @return the cloned array, null if null input
* @throws IllegalArgumentException if the original object is not an array
* @since 2.12.0
*/
@SuppressWarnings("unchecked")
public static Object cloneArray(Object original) {
if (original == null) {
return null;
}
int len = Array.getLength(original);
Class<?> arrayType = original.getClass().getComponentType();
Object copy = Array.newInstance(arrayType, len);
for (int i = 0; i < len; i++) {
Array.set(copy, i, Cloner.INSTANCE.clone(Array.get(original, i)));
}
return copy;
}
/**
* Deep clones a bean, without cloning an {@code ImmutableBean}.
* <p>
* This performs a deep clone. There is no protection against cycles in
* the object graph beyond {@code StackOverflowError}.
*
* @param <T> the type of the bean
* @param original the original bean to clone, null returns null
* @return the cloned bean, null if null input
*/
public static <T extends Bean> T clone(T original) {
if (original == null || original instanceof ImmutableBean) {
return original;
}
return cloneAlways(original);
}
/**
* Deep clones a bean always.
* <p>
* This performs a deep clone. There is no protection against cycles in
* the object graph beyond {@code StackOverflowError}.
* This differs from {@link #clone()} in that immutable beans are also cloned.
*
* @param <T> the type of the bean
* @param original the original bean to clone, not null
* @return the cloned bean, not null
*/
public static <T extends Bean> T cloneAlways(T original) {
@SuppressWarnings("unchecked")
var builder = (BeanBuilder<T>) original.metaBean().builder();
for (var mp : original.metaBean().metaPropertyIterable()) {
if (mp.style().isBuildable()) {
var value = mp.get(original);
builder.set(mp.name(), Cloner.INSTANCE.clone(value));
}
}
return builder.build();
}
//-----------------------------------------------------------------------
/**
* Checks if the value is not null, throwing an exception if it is.
*
* @param value the value to check, may be null
* @param propertyName the property name, should not be null
* @throws IllegalArgumentException if the value is null
*/
public static void notNull(Object value, String propertyName) {
if (value == null) {
throw new IllegalArgumentException(notNullMsg(propertyName));
}
}
// extracted from notNull(Object,String) to aid hotspot inlining
private static String notNullMsg(String propertyName) {
return "Argument '" + propertyName + "' must not be null";
}
/**
* Checks if the value is not blank, throwing an exception if it is.
* <p>
* Validate that the specified argument is not null and has at least one non-whitespace character.
*
* @param value the value to check, may be null
* @param propertyName the property name, should not be null
* @throws IllegalArgumentException if the value is null or empty
*/
public static void notBlank(String value, String propertyName) {
if (value == null || value.isBlank()) {
throw new IllegalArgumentException(notEmpty(propertyName));
}
}
/**
* Checks if the value is not empty, throwing an exception if it is.
*
* @param value the value to check, may be null
* @param propertyName the property name, should not be null
* @throws IllegalArgumentException if the value is null or empty
*/
public static void notEmpty(String value, String propertyName) {
if (value == null || value.isEmpty()) {
throw new IllegalArgumentException(notEmpty(propertyName));
}
}
// extracted from notEmpty(?,String) to aid hotspot inlining
private static String notEmpty(String propertyName) {
return "Argument '" + propertyName + "' must not be empty";
}
/**
* Checks if the collection value is not empty, throwing an exception if it is.
*
* @param value the value to check, may be null
* @param propertyName the property name, should not be null
* @throws IllegalArgumentException if the value is null or empty
*/
public static void notEmpty(Collection<?> value, String propertyName) {
if (value == null || value.isEmpty()) {
throw new IllegalArgumentException(notEmpty(propertyName));
}
}
/**
* Checks if the map value is not empty, throwing an exception if it is.
*
* @param value the value to check, may be null
* @param propertyName the property name, should not be null
* @throws IllegalArgumentException if the value is null or empty
*/
public static void notEmpty(Map<?, ?> value, String propertyName) {
if (value == null || value.isEmpty()) {
throw new IllegalArgumentException(notEmpty(propertyName));
}
}
//-----------------------------------------------------------------------
/**
* Extracts the collection content type as a {@code Class} from a property.
* <p>
* This method allows the resolution of generics in certain cases.
*
* @param prop the property to examine, not null
* @return the collection content type, null if unable to determine or type has no generic parameters
*/
public static Class<?> collectionType(Property<?> prop) {
return collectionType(prop.metaProperty(), prop.bean().getClass());
}
/**
* Extracts the collection content type as a {@code Class} from a meta-property.
* <p>
* The target type is the type of the object, not the declaring type of the meta-property.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @return the collection content type, null if unable to determine or type has no generic parameters
*/
public static Class<?> collectionType(MetaProperty<?> prop, Class<?> contextClass) {
return extractTypeClass(prop, contextClass, 1, 0);
}
/**
* Extracts the map value type generic type parameters as a {@code Class} from a meta-property.
* <p>
* The target type is the type of the object, not the declaring type of the meta-property.
* <p>
* This is used when the collection generic parameter is a map or collection.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @return the collection content type generic parameters, empty if unable to determine, no nulls
*/
public static List<Class<?>> collectionTypeTypes(MetaProperty<?> prop, Class<?> contextClass) {
var type = extractType(prop, contextClass, 1, 0);
return extractTypeClasses(type, contextClass);
}
/**
* Extracts the map key type as a {@code Class} from a meta-property.
*
* @param prop the property to examine, not null
* @return the map key type, null if unable to determine or type has no generic parameters
*/
public static Class<?> mapKeyType(Property<?> prop) {
return mapKeyType(prop.metaProperty(), prop.bean().getClass());
}
/**
* Extracts the map key type as a {@code Class} from a meta-property.
* <p>
* The target type is the type of the object, not the declaring type of the meta-property.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @return the map key type, null if unable to determine or type has no generic parameters
*/
public static Class<?> mapKeyType(MetaProperty<?> prop, Class<?> contextClass) {
return extractTypeClass(prop, contextClass, 2, 0);
}
/**
* Extracts the map value type as a {@code Class} from a meta-property.
*
* @param prop the property to examine, not null
* @return the map value type, null if unable to determine or type has no generic parameters
*/
public static Class<?> mapValueType(Property<?> prop) {
return mapValueType(prop.metaProperty(), prop.bean().getClass());
}
/**
* Extracts the map value type as a {@code Class} from a meta-property.
* <p>
* The target type is the type of the object, not the declaring type of the meta-property.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @return the map value type, null if unable to determine or type has no generic parameters
*/
public static Class<?> mapValueType(MetaProperty<?> prop, Class<?> contextClass) {
return extractTypeClass(prop, contextClass, 2, 1);
}
/**
* Extracts the map value type generic type parameters as a {@code Class} from a meta-property.
* <p>
* The target type is the type of the object, not the declaring type of the meta-property.
* <p>
* This is used when the map value generic parameter is a map or collection.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @return the map value type generic parameters, empty if unable to determine, no nulls
*/
public static List<Class<?>> mapValueTypeTypes(MetaProperty<?> prop, Class<?> contextClass) {
var type = extractType(prop, contextClass, 2, 1);
return extractTypeClasses(type, contextClass);
}
/**
* Low-level method to extract generic type information.
*
* @param prop the property to examine, not null
* @param contextClass the context class to evaluate against, not null
* @param size the number of generic parameters expected
* @param index the index of the generic parameter
* @return the type, null if unable to determine or type has no generic parameters
*/
public static Class<?> extractTypeClass(MetaProperty<?> prop, Class<?> contextClass, int size, int index) {
return eraseToClass(extractType(prop, contextClass, size, index));
}
private static Type extractType(MetaProperty<?> prop, Class<?> contextClass, int size, int index) {
var genType = prop.propertyGenericType();
if (genType instanceof ParameterizedType pt) {
var types = pt.getActualTypeArguments();
if (types.length == size) {
var type = types[index];
if (type instanceof WildcardType wtype) {
if (wtype.getLowerBounds().length == 0 && wtype.getUpperBounds().length > 0) {
type = wtype.getUpperBounds()[0];
}
}
if (type instanceof TypeVariable<?> tvar) {
type = resolveGenerics(tvar, contextClass);
}
return type;
}
}
return null;
}
private static List<Class<?>> extractTypeClasses(Type type, Class<?> contextClass) {
var result = new ArrayList<Class<?>>();
if (type != null) {
if (type instanceof ParameterizedType pt) {
var actualTypes = pt.getActualTypeArguments();
for (var actualType : actualTypes) {
if (actualType instanceof TypeVariable<?> tvar) {
actualType = resolveGenerics(tvar, contextClass);
}
var cls = eraseToClass(actualType);
result.add(cls != null ? cls : Object.class);
}
}
}
return result;
}
// cache the type variable lookup by Class
private static final ClassValue<Map<Type, Type>> RESOLVED_TYPE_VARIABLES = new ClassValue<>() {
@Override
protected Map<Type, Type> computeValue(Class<?> contextClass) {
var resolved = new HashMap<Type, Type>();
findTypeVars(contextClass, resolved);
if (resolved.size() > 1) {
// simplify, eg 'T=N, N=String' is simplified to 'T=String, N=String'
for (var entry : resolved.entrySet()) {
var value = entry.getValue();
while (resolved.containsKey(value)) {
value = resolved.get(value);
}
entry.setValue(value);
}
}
return Collections.unmodifiableMap(resolved);
}
private void findTypeVars(Type type, HashMap<Type, Type> resolved) {
if (type instanceof Class<?> cls) {
// check parent class and interfaces
findTypeVars(cls.getGenericSuperclass(), resolved);
for (var genInterface : cls.getGenericInterfaces()) {
findTypeVars(genInterface, resolved);
}
} else if (type instanceof ParameterizedType pt) {
// find actual types that have been captured
var actualTypeArguments = pt.getActualTypeArguments();
// find type variables declared in source code
var rawType = eraseToClass(pt.getRawType());
var typeParameters = rawType.getTypeParameters();
for (var i = 0; i < actualTypeArguments.length; i++) {
resolved.put(typeParameters[i], actualTypeArguments[i]);
}
findTypeVars(rawType, resolved);
}
}
};
// resolve generic type variables
// if a subclass is defined as 'extends Foo<String>' and the superclass is 'Foo<T>'
// then we know that 'T = String' in the context of the subclass
// NOTE: this may return a type variable
static Type resolveGenerics(TypeVariable<?> typevar, Class<?> contextClass) {
var resolved = RESOLVED_TYPE_VARIABLES.get(contextClass);
return resolved.getOrDefault(typevar, typevar);
}
// erases a Type to a Class
static Class<?> eraseToClass(Type type) {
return switch (type) {
case null -> null;
case Class<?> cls -> cls;
case ParameterizedType parameterizedType -> eraseToClass(parameterizedType.getRawType());
case GenericArrayType arrType -> {
var componentType = arrType.getGenericComponentType();
var componentClass = eraseToClass(componentType);
yield componentClass != null ? componentClass.arrayType() : null;
}
case TypeVariable<?> tvar -> {
var bounds = tvar.getBounds();
yield bounds.length == 0 ? Object.class : eraseToClass(bounds[0]);
}
case WildcardType wild -> {
var bounds = wild.getUpperBounds();
yield bounds.length == 0 ? Object.class : eraseToClass(bounds[0]);
}
default -> null;
};
}
//-------------------------------------------------------------------------
/**
* Checks if two beans are equal ignoring one or more properties.
* <p>
* This version of {@code equalIgnoring} only checks properties at the top level.
* For example, if a {@code Person} bean contains an {@code Address} bean then
* only properties on the {@code Person} bean will be checked against the ignore list.
*
* @param bean1 the first bean, not null
* @param bean2 the second bean, not null
* @param properties the properties to ignore, not null
* @return true if equal
* @throws IllegalArgumentException if inputs are null
*/
public static boolean equalIgnoring(Bean bean1, Bean bean2, MetaProperty<?>... properties) {
JodaBeanUtils.notNull(bean1, "bean1");
JodaBeanUtils.notNull(bean2, "bean2");
JodaBeanUtils.notNull(properties, "properties");
if (bean1 == bean2) {
return true;
}
if (bean1.getClass() != bean2.getClass()) {
return false;
}
return switch (properties.length) {
case 0 -> bean1.equals(bean2);
case 1 -> {
var ignored = properties[0];
for (var mp : bean1.metaBean().metaPropertyIterable()) {
if (!ignored.equals(mp) && !JodaBeanUtils.equal(mp.get(bean1), mp.get(bean2))) {
yield false;
}
}
yield true;
}
default -> {
var ignored = Set.of(properties);
for (var mp : bean1.metaBean().metaPropertyIterable()) {
if (!ignored.contains(mp) && !JodaBeanUtils.equal(mp.get(bean1), mp.get(bean2))) {
yield false;
}
}
yield true;
}
};
}
//-----------------------------------------------------------------------
/**
* Returns an iterator over all the beans contained within the bean.
* <p>
* The iterator is a depth-first traversal of the beans within the specified bean.
* The first returned bean is the specified bean.
* Beans within collections will be returned.
* <p>
* A cycle in the bean structure will cause an infinite loop.
*
* @param bean the bean to iterate over, not null
* @return the iterator, not null
*/
public static Iterator<Bean> beanIterator(Bean bean) {
return new BeanIterator(bean);
}
//-------------------------------------------------------------------------
/**
* Chains two meta-properties together.
* <p>
* The resulting function takes an instance of a bean, queries using the first
* meta-property, then queries the result using the second meta-property.
* If the first returns null, the result will be null.
*
* @param <P> the type of the result of the chain
* @param mp1 the first meta-property, not null
* @param mp2 the second meta-property, not null
* @return the chain function, not null
*/
public static <P> Function<Bean, P> chain(MetaProperty<? extends Bean> mp1, MetaProperty<P> mp2) {
notNull(mp1, "MetaProperty 1");
notNull(mp1, "MetaProperty 2");
return b -> {
var first = mp1.get(b);
return first != null ? mp2.get(first) : null;
};
}
/**
* Chains a function to a meta-property.
* <p>
* The resulting function takes an instance of a bean, queries using the first
* function, then queries the result using the second meta-property.
* If the first returns null, the result will be null.
*
* @param <P> the type of the result of the chain
* @param fn1 the first meta-property, not null
* @param mp2 the second meta-property, not null
* @return the chain function, not null
*/
public static <P> Function<Bean, P> chain(Function<Bean, ? extends Bean> fn1, MetaProperty<P> mp2) {
notNull(fn1, "Function 1");
notNull(fn1, "MetaProperty 2");
return b -> {
var first = fn1.apply(b);
return first != null ? mp2.get(first) : null;
};
}
//-------------------------------------------------------------------------
/**
* Obtains a comparator for the specified bean query.
* <p>
* The result of the query must be {@link Comparable}.
* <p>
* To use this with a meta-property append {@code ::get} to the meta-property,
* for example {@code Address.meta().street()::get}.
*
* @param query the query to use, not null
* @param ascending true for ascending, false for descending
* @return the comparator, not null
*/
public static Comparator<Bean> comparator(Function<Bean, ?> query, boolean ascending) {
return (ascending ? comparatorAscending(query) : comparatorDescending(query));
}
/**
* Obtains an ascending comparator for the specified bean query.
* <p>
* The result of the query must be {@link Comparable}.
*
* @param query the query to use, not null
* @return the comparator, not null
*/
public static Comparator<Bean> comparatorAscending(Function<Bean, ?> query) {
Objects.requireNonNull(query, "query must not be null");
return new Comp(query);
}
/**
* Obtains a descending comparator for the specified bean query.
* <p>
* The result of the query must be {@link Comparable}.
*
* @param query the query to use, not null
* @return the comparator, not null
*/
public static Comparator<Bean> comparatorDescending(Function<Bean, ?> query) {
Objects.requireNonNull(query, "query must not be null");
return Collections.reverseOrder(new Comp(query));
}
//-------------------------------------------------------------------------
/**
* Comparator.
*/
private static final class Comp implements Comparator<Bean> {
private final Function<Bean, ?> query;
private Comp(Function<Bean, ?> query) {
this.query = query;
}
@Override
public int compare(Bean bean1, Bean bean2) {
@SuppressWarnings("unchecked")
var value1 = (Comparable<Object>) query.apply(bean1);
Object value2 = query.apply(bean2);
return value1.compareTo(value2);
}
}
//-------------------------------------------------------------------------
/**
* Clones an object.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
private static class Cloner {
public static final Cloner INSTANCE = getInstance();
private static Cloner getInstance() {
try {
ImmutableGrid.of(); // check if class is available
return new CollectCloner();
} catch (Exception | LinkageError ex) {
try {
ImmutableMultiset.of(); // check if class is available
return new GuavaCloner();
} catch (Exception | LinkageError ex2) {
return new Cloner();
}
}
}
Cloner() {
}
Object clone(Object value) {
return switch (value) {
case null -> value;
case Bean bean -> cloneAlways(bean);
case SortedSet set -> cloneIterable(set, new TreeSet(set.comparator()));
case Set set -> cloneIterable(set, LinkedHashSet.newLinkedHashSet(set.size()));
case Collection coll -> cloneIterable(coll, new ArrayList(coll.size()));
case Iterable iterable -> cloneIterable(iterable, new ArrayList());
case SortedMap map -> cloneMap(map, new TreeMap(map.comparator()));
case Map map -> cloneMap(map, LinkedHashMap.newLinkedHashMap(map.size()));
case java.util.Date date -> date.clone();
case long[] array -> array.clone();
case int[] array -> array.clone();
case short[] array -> array.clone();
case byte[] array -> array.clone();
case char[] array -> array.clone();
case double[] array -> array.clone();
case float[] array -> array.clone();
case boolean[] array -> array.clone();
case Object[] array -> cloneArray(array);
default -> value;
};
}
Object cloneIterable(Iterable original, Collection cloned) {
for (var item : original) {
cloned.add(clone(item));
}
return cloned;
}
Object cloneMap(Map original, Map cloned) {
for (var item : original.entrySet()) {
var entry = (Entry) item;
cloned.put(clone(entry.getKey()), clone(entry.getValue()));
}
return cloned;
}
Object cloneArray(Object[] originalArray) {
var copy = originalArray.clone();
for (var i = 0; i < copy.length; i++) {
copy[i] = clone(originalArray[i]);
}
return copy;
}
}
//-------------------------------------------------------------------------
/**
* Clones an object.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
private static class GuavaCloner extends Cloner {
GuavaCloner() {
}
@Override
Object clone(Object value) {
return switch (value) {
case null -> value;
case ImmutableCollection coll -> coll;
case ImmutableMap map -> map;
case ImmutableMultimap map -> map;
case ImmutableTable table -> table;
case SortedMultiset set -> cloneIterable(set, TreeMultiset.create(set.comparator()));
case Multiset mset -> cloneIterable(mset, LinkedHashMultiset.create(mset.size()));
case SetMultimap mmap -> cloneMultimap(mmap, LinkedHashMultimap.create());
case ListMultimap mmap -> cloneMultimap(mmap, ArrayListMultimap.create());
case Multimap mmap -> cloneMultimap(mmap, ArrayListMultimap.create());
case BiMap bimap -> cloneMap(bimap, HashBiMap.create(bimap.size()));
case Table table -> cloneTable(table, HashBasedTable.create());
default -> super.clone(value);
};
}
Object cloneMultimap(Multimap original, Multimap cloned) {
for (var key : original.keySet()) {
var values = original.get(key);
for (var value : values) {
cloned.put(clone(key), clone(value));
}
}
return cloned;
}
Object cloneTable(Table original, Table cloned) {
for (var item : original.cellSet()) {
var cell = (Table.Cell) item;
cloned.put(clone(cell.getRowKey()), clone(cell.getColumnKey()), clone(cell.getValue()));
}
return cloned;
}
}
//-------------------------------------------------------------------------
/**
* Clones an object.
*/
@SuppressWarnings({"rawtypes", "unchecked"})
private static class CollectCloner extends GuavaCloner {
CollectCloner() {
}
@Override
Object clone(Object value) {
return switch (value) {
case null -> value;
case ImmutableGrid grid -> grid;
case DenseGrid grid -> cloneGrid(grid, DenseGrid.create(grid.rowCount(), grid.columnCount()));
case Grid grid -> cloneGrid(grid, SparseGrid.create(grid.rowCount(), grid.columnCount()));
default -> super.clone(value);
};
}
Object cloneGrid(Grid original, Grid cloned) {
for (var item : original.cells()) {
var cell = (Grid.Cell) item;
cloned.put(cell.getRow(), cell.getColumn(), clone(cell.getValue()));
}
return cloned;
}
}
}
================================================
FILE: src/main/java/org/joda/beans/MetaBean.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
import java.lang.annotation.Annotation;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Optional;
/**
* A meta-bean, defining those aspects of a bean which are not specific
* to a particular instance, such as the type and set of meta-properties.
* <p>
* This interface can be thought of as the equivalent of {@link Class} but for beans.
* In most cases the meta-bean will be code generated and the concrete class will have additional methods.
*/
public interface MetaBean {
/**
* Obtains a meta-bean from a {@code Class}.
* <p>
* This will return a meta-bean if it has been registered, or if the class
* implements {@link DynamicBean} and has a no-args constructor.
* Note that the common case where the meta-bean is registered by a static initializer is handled.
*
* @param cls the class to get the meta-bean for, not null
* @return the meta-bean associated with the class, not null
* @throws IllegalArgumentException if unable to obtain the meta-bean
*/
public static MetaBean of(Class<?> cls) {
return MetaBeans.lookup(cls);
}
/**
* Registers a meta-bean.
* <p>
* This should be done for all beans in a static factory where possible.
* If the meta-bean is dynamic, this method should not be called.
*
* @param metaBean the meta-bean, not null
* @throws IllegalArgumentException if unable to register
*/
public static void register(MetaBean metaBean) {
MetaBeans.register(metaBean);
}
//-----------------------------------------------------------------------
/**
* Checks whether this bean is buildable or not.
* <p>
* A buildable bean can be constructed using {@link #builder()}.
* If this method returns true then {@code builder()} must return a valid builder.
* If this method returns false then {@code builder()} must throw {@link UnsupportedOperationException}.
*
* @return true if this bean is buildable
*/
public abstract boolean isBuildable();
/**
* Creates a bean builder that can be used to create an instance of this bean.
* <p>
* The builder is used in two main ways.
* The first is to allow immutable beans to be constructed.
* The second is to enable automated tools like serialization/deserialization.
* <p>
* The builder can be thought of as a {@code Map} of {@link MetaProperty} to value.
* Note that the implementation is not necessarily an actual map.
*
* @return the bean builder, not null
* @throws UnsupportedOperationException if the bean cannot be created
*/
public abstract BeanBuilder<? extends Bean> builder();
//-----------------------------------------------------------------------
/**
* Gets the bean name, which is normally the fully qualified class name of the bean.
* <p>
* This is primarily used for human-readable output.
*
* @return the name of the bean, not empty
*/
public default String beanName() {
return beanType().getName();
}
/**
* Get the type of the bean, represented as a {@code Class}.
* <p>
* A {@code MetaBean} can be thought of as the equivalent of {@link Class} but for beans.
* This method allows the actual {@code Class} instance of the bean to be obtained.
*
* @return the type of the bean, not null
*/
public abstract Class<? extends Bean> beanType();
//-----------------------------------------------------------------------
/**
* Counts the number of properties.
* <p>
* Each meta-bean manages a single bean with a known set of properties.
* This method returns the count of properties.
*
* @return the number of properties
*/
public default int metaPropertyCount() {
return metaPropertyMap().size();
}
/**
* Checks if a property exists.
* <p>
* Each meta-bean manages a single bean with a known set of properties.
* This method checks whether there is a property with the specified name.
*
* @param propertyName the property name to check, null returns false
* @return true if the property exists
*/
public default boolean metaPropertyExists(String propertyName) {
return metaPropertyMap().containsKey(propertyName);
}
/**
* Gets a meta-property by name.
* <p>
* Each meta-bean manages a single bean with a known set of properties.
* This method returns the property with the specified name.
* <p>
* The base interface throws an exception if the name is not recognised.
* By contrast, the {@code DynamicMetaBean} interface creates the property on demand.
*
* @param <R> the property type, optional, enabling auto-casting
* @param propertyName the property name to retrieve, not null
* @return the meta property, not null
* @throws NoSuchElementException if the property name is invalid
*/
@SuppressWarnings("unchecked")
public default <R> MetaProperty<R> metaProperty(String propertyName) {
var mp = metaPropertyMap().get(propertyName);
if (mp == null) {
throw new NoSuchElementException("Unknown property: " + propertyName);
}
return (MetaProperty<R>) mp;
}
/**
* Gets an iterator of meta-properties.
* <p>
* This method returns an {@code Iterable}, which is simpler than a {@code Map}.
* As a result, implementations may be able to optimise, and so this method should be
* preferred to {@link #metaPropertyMap()} where a choice is possible.
*
* @return the unmodifiable map of meta property objects, not null
*/
public default Iterable<MetaProperty<?>> metaPropertyIterable() {
return metaPropertyMap().values();
}
/**
* Gets the map of meta-properties, keyed by property name.
* <p>
* Where possible, use {@link #metaPropertyIterable()} instead as it typically has better performance.
*
* @return the unmodifiable map of meta property objects, not null
*/
public abstract Map<String, MetaProperty<?>> metaPropertyMap();
/**
* Gets the annotations associated with this bean.
* <p>
* The annotations are queried from the bean.
* This is typically accomplished by querying the annotations of an underlying
* {@link Class} however any strategy is permitted.
* <p>
* If the implementation has a mutable set of annotations, then the result of
* this method must stream over those annotations in existence when this method
* is called to avoid concurrency issues.
* <p>
* The default implementation uses the annotations from {@link #beanType()}.
*
* @return the annotations, unmodifiable, not null
*/
public default List<Annotation> annotations() {
return List.of(beanType().getAnnotations());
}
/**
* Gets an annotation from the bean.
* <p>
* The annotations are queried from the bean.
* This is typically accomplished by querying the annotations of an underlying
* {@link Class} however any strategy is permitted.
*
* @param <A> the annotation type
* @param annotationClass the annotation class to find, not null
* @return the annotation, not null
* @throws NoSuchElementException if the annotation is not specified
*/
@SuppressWarnings("unchecked")
public default <A extends Annotation> A annotation(Class<A> annotationClass) {
var annotations = annotations();
for (var annotation : annotations) {
if (annotationClass.isInstance(annotation)) {
return (A) annotation;
}
}
throw new NoSuchElementException("Unknown annotation: " + annotationClass.getName());
}
/**
* Finds an optional annotation from the property.
* <p>
* The annotations are queried from the property.
* This is typically accomplished by querying the annotations of the underlying
* instance variable however any strategy is permitted.
*
* @param <A> the annotation type
* @param annotationClass the annotation class to find, not null
* @return the annotation, empty if not found
* @since 2.11.0
*/
@SuppressWarnings("unchecked")
public default <A extends Annotation> Optional<A> annotationOpt(Class<A> annotationClass) {
var annotations = annotations();
for (var annotation : annotations) {
if (annotationClass.isInstance(annotation)) {
return Optional.of((A) annotation);
}
}
return Optional.empty();
}
}
================================================
FILE: src/main/java/org/joda/beans/MetaBeanProvider.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
/**
* A provider of {@link MetaBean} instances for bean classes.
*/
public interface MetaBeanProvider {
/**
* Returns the meta bean for the class or null if no meta bean can be found.
*
* @param cls the class for which the meta bean is required
* @return the meta bean for the class or null if no meta bean can be found
*/
MetaBean findMetaBean(Class<?> cls);
}
================================================
FILE: src/main/java/org/joda/beans/MetaBeans.java
================================================
/*
* Copyright 2001-present Stephen Colebourne
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.joda.beans;
import java.lang.invoke.MethodHandles;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.joda.beans.impl.RecordBean;
import org.joda.beans.impl.flexi.FlexiBean;
import org.joda.beans.impl.map.MapBean;
/**
* Utilities for registered meta-beans.
*/
final class MetaBeans {
/**
* The cache of meta-beans.
*/
private static final ConcurrentHashMap<Class<?>, MetaBean> META_BEANS = new ConcurrentHashMap<>();
// not a ClassValue, as entries are registered m
gitextract_08ef56yp/
├── .coderabbit.yaml
├── .github/
│ ├── FUNDING.yml
│ ├── SECURITY.md
│ ├── dependabot.yml
│ ├── maven-settings.xml
│ └── workflows/
│ ├── build.yml
│ ├── release.yml
│ └── website.yml
├── .gitignore
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── RELEASE-NOTES.txt
├── pom.xml
└── src/
├── changes/
│ └── changes.xml
├── main/
│ ├── assembly/
│ │ └── dist.xml
│ ├── checkstyle/
│ │ └── checkstyle.xml
│ ├── java/
│ │ ├── module-info.java
│ │ └── org/
│ │ └── joda/
│ │ └── beans/
│ │ ├── Bean.java
│ │ ├── BeanBuilder.java
│ │ ├── BeanIterator.java
│ │ ├── DynamicBean.java
│ │ ├── DynamicMetaBean.java
│ │ ├── ImmutableBean.java
│ │ ├── JodaBeanUtils.java
│ │ ├── MetaBean.java
│ │ ├── MetaBeanProvider.java
│ │ ├── MetaBeans.java
│ │ ├── MetaProperty.java
│ │ ├── MetaProvider.java
│ │ ├── Property.java
│ │ ├── PropertyPath.java
│ │ ├── PropertyStyle.java
│ │ ├── ResolvedType.java
│ │ ├── TypedMetaBean.java
│ │ ├── gen/
│ │ │ ├── BeanCodeGen.java
│ │ │ ├── BeanCodeGenException.java
│ │ │ ├── BeanData.java
│ │ │ ├── BeanDefinition.java
│ │ │ ├── BeanGen.java
│ │ │ ├── BeanGenConfig.java
│ │ │ ├── BeanParser.java
│ │ │ ├── BuilderGen.java
│ │ │ ├── CopyGen.java
│ │ │ ├── DerivedProperty.java
│ │ │ ├── GetterGen.java
│ │ │ ├── ImmutableConstructor.java
│ │ │ ├── ImmutableDefaults.java
│ │ │ ├── ImmutablePreBuild.java
│ │ │ ├── ImmutableValidator.java
│ │ │ ├── PropertyData.java
│ │ │ ├── PropertyDefinition.java
│ │ │ ├── PropertyGen.java
│ │ │ ├── PropertyParser.java
│ │ │ ├── SetterGen.java
│ │ │ └── package-info.java
│ │ ├── impl/
│ │ │ ├── BasicBean.java
│ │ │ ├── BasicBeanBuilder.java
│ │ │ ├── BasicImmutableBeanBuilder.java
│ │ │ ├── BasicMetaBean.java
│ │ │ ├── BasicMetaProperty.java
│ │ │ ├── BasicProperty.java
│ │ │ ├── BasicPropertyMap.java
│ │ │ ├── BufferingBeanBuilder.java
│ │ │ ├── RecordBean.java
│ │ │ ├── RecordBeanBuilder.java
│ │ │ ├── RecordMetaBean.java
│ │ │ ├── RecordMetaProperty.java
│ │ │ ├── StandaloneMetaProperty.java
│ │ │ ├── direct/
│ │ │ │ ├── DirectBean.java
│ │ │ │ ├── DirectBeanBuilder.java
│ │ │ │ ├── DirectFieldsBeanBuilder.java
│ │ │ │ ├── DirectMetaBean.java
│ │ │ │ ├── DirectMetaProperty.java
│ │ │ │ ├── DirectMetaPropertyMap.java
│ │ │ │ ├── DirectPrivateBeanBuilder.java
│ │ │ │ ├── MinimalMetaBean.java
│ │ │ │ ├── MinimalMetaProperty.java
│ │ │ │ └── package-info.java
│ │ │ ├── flexi/
│ │ │ │ ├── FlexiBean.java
│ │ │ │ ├── FlexiBeanBuilder.java
│ │ │ │ ├── FlexiMetaBean.java
│ │ │ │ ├── FlexiMetaProperty.java
│ │ │ │ └── package-info.java
│ │ │ ├── light/
│ │ │ │ ├── LightBeanBuilder.java
│ │ │ │ ├── LightMetaBean.java
│ │ │ │ ├── LightMetaProperty.java
│ │ │ │ ├── PropertyGetter.java
│ │ │ │ ├── PropertySetter.java
│ │ │ │ └── package-info.java
│ │ │ ├── map/
│ │ │ │ ├── MapBean.java
│ │ │ │ ├── MapBeanBuilder.java
│ │ │ │ ├── MapBeanMetaProperty.java
│ │ │ │ ├── MapMetaBean.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── reflection/
│ │ │ ├── ReflectiveMetaBean.java
│ │ │ ├── ReflectiveMetaProperty.java
│ │ │ └── package-info.java
│ │ ├── package-info.java
│ │ ├── ser/
│ │ │ ├── CollectSerIteratorFactory.java
│ │ │ ├── DefaultDeserializer.java
│ │ │ ├── GuavaSerIteratorFactory.java
│ │ │ ├── JodaBeanMimeType.java
│ │ │ ├── JodaBeanSer.java
│ │ │ ├── JodaBeanSerFormat.java
│ │ │ ├── JodaBeanSmartReader.java
│ │ │ ├── LenientDeserializer.java
│ │ │ ├── LinkedByteArrayOutputStream.java
│ │ │ ├── SerCategory.java
│ │ │ ├── SerDeserializer.java
│ │ │ ├── SerDeserializerProvider.java
│ │ │ ├── SerDeserializers.java
│ │ │ ├── SerIterable.java
│ │ │ ├── SerIterator.java
│ │ │ ├── SerIteratorFactory.java
│ │ │ ├── SerOptional.java
│ │ │ ├── SerTypeMapper.java
│ │ │ ├── bin/
│ │ │ │ ├── AbstractBinReader.java
│ │ │ │ ├── AbstractBinWriter.java
│ │ │ │ ├── BeanPack.java
│ │ │ │ ├── BeanPackInput.java
│ │ │ │ ├── BeanPackOutput.java
│ │ │ │ ├── BeanPackVisualizer.java
│ │ │ │ ├── BeanReferences.java
│ │ │ │ ├── JodaBeanBinFormat.java
│ │ │ │ ├── JodaBeanBinReader.java
│ │ │ │ ├── JodaBeanBinWriter.java
│ │ │ │ ├── JodaBeanPackedBinReader.java
│ │ │ │ ├── JodaBeanPackedBinWriter.java
│ │ │ │ ├── JodaBeanReferencingBinReader.java
│ │ │ │ ├── JodaBeanReferencingBinWriter.java
│ │ │ │ ├── JodaBeanStandardBinReader.java
│ │ │ │ ├── JodaBeanStandardBinWriter.java
│ │ │ │ ├── MsgPack.java
│ │ │ │ ├── MsgPackInput.java
│ │ │ │ ├── MsgPackOutput.java
│ │ │ │ ├── MsgPackVisualizer.java
│ │ │ │ └── package-info.java
│ │ │ ├── json/
│ │ │ │ ├── AbstractJsonReader.java
│ │ │ │ ├── JodaBeanJsonNumberFormat.java
│ │ │ │ ├── JodaBeanJsonReader.java
│ │ │ │ ├── JodaBeanJsonWriter.java
│ │ │ │ ├── JodaBeanSimpleJsonReader.java
│ │ │ │ ├── JodaBeanSimpleJsonWriter.java
│ │ │ │ ├── JsonEvent.java
│ │ │ │ ├── JsonInput.java
│ │ │ │ ├── JsonOutput.java
│ │ │ │ └── package-info.java
│ │ │ ├── map/
│ │ │ │ ├── JodaBeanSimpleMapReader.java
│ │ │ │ ├── JodaBeanSimpleMapWriter.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── xml/
│ │ │ ├── JodaBeanXml.java
│ │ │ ├── JodaBeanXmlReader.java
│ │ │ ├── JodaBeanXmlWriter.java
│ │ │ └── package-info.java
│ │ └── test/
│ │ ├── BeanAssert.java
│ │ ├── BeanComparisonError.java
│ │ ├── JodaBeanTests.java
│ │ └── package-info.java
│ └── resources/
│ └── org/
│ └── joda/
│ └── beans/
│ └── gen/
│ ├── guava.ini
│ └── jdk.ini
├── site/
│ ├── markdown/
│ │ ├── enterprise.md
│ │ ├── index.md
│ │ ├── licensecover.md
│ │ ├── migration.md
│ │ ├── related.md
│ │ ├── userguide-codegen.md
│ │ ├── userguide-serialization.md
│ │ └── userguide.md
│ ├── resources/
│ │ ├── css/
│ │ │ └── site.css
│ │ └── download.html
│ └── site.xml
└── test/
├── java/
│ └── org/
│ └── joda/
│ └── beans/
│ ├── Examples.java
│ ├── TestAddress.java
│ ├── TestArray.java
│ ├── TestBasicBean.java
│ ├── TestBeanCodeGenException.java
│ ├── TestBeanIterator.java
│ ├── TestClone.java
│ ├── TestCompanyAddress.java
│ ├── TestFinalFieldBean.java
│ ├── TestFlexiBean.java
│ ├── TestImmutable.java
│ ├── TestJodaBeanUtils.java
│ ├── TestLight.java
│ ├── TestMapBean.java
│ ├── TestMetaBean.java
│ ├── TestMetaBeanProvider.java
│ ├── TestMetaBeans.java
│ ├── TestMetaInvoke.java
│ ├── TestMinimal.java
│ ├── TestMutableDerived.java
│ ├── TestMutableListBeans.java
│ ├── TestOptionalBean.java
│ ├── TestPair.java
│ ├── TestPerson.java
│ ├── TestPropertyPath.java
│ ├── TestPropertyStyle.java
│ ├── TestRecordBean.java
│ ├── TestReflective.java
│ ├── TestResolvedType.java
│ ├── TestResult.java
│ ├── TestSubBean.java
│ ├── TestValidateBean.java
│ ├── sample/
│ │ ├── AbstractResult.java
│ │ ├── Address.java
│ │ ├── AddressResult.java
│ │ ├── ClassAnnotation.java
│ │ ├── ClonePerson.java
│ │ ├── Company.java
│ │ ├── CompanyAddress.java
│ │ ├── CompanyAddressMidResult.java
│ │ ├── CompanyAddressResult.java
│ │ ├── ComplexAnnotation.java
│ │ ├── Documentation.java
│ │ ├── DocumentationHolder.java
│ │ ├── DoubleGenericsComplexExtendsSuperTwoGenerics.java
│ │ ├── DoubleGenericsNoExtendsNoSuper.java
│ │ ├── DoubleGenericsSimpleSuper.java
│ │ ├── DoubleGenericsWithExtendsNoSuper.java
│ │ ├── DoubleGenericsWithExtendsSuperNoGenerics.java
│ │ ├── DoubleGenericsWithExtendsSuperOneGeneric.java
│ │ ├── DoubleGenericsWithExtendsSuperTwoGenerics.java
│ │ ├── FieldNamesImmutable.java
│ │ ├── FieldNamesImmutableMinimal.java
│ │ ├── FieldNamesLight.java
│ │ ├── FieldNamesMutable.java
│ │ ├── FieldNamesMutableMinimal.java
│ │ ├── FinalFieldBean.java
│ │ ├── GenericAllFinal.java
│ │ ├── GenericArray.java
│ │ ├── GenericInterfaceBase.java
│ │ ├── GenericInterfaceChild.java
│ │ ├── GenericInterfaceImpl.java
│ │ ├── GenericInterfaceMid.java
│ │ ├── GenericSubWrapper.java
│ │ ├── GenericUnionType.java
│ │ ├── GenericWrapperDocumentation.java
│ │ ├── IKey.java
│ │ ├── INamedKey.java
│ │ ├── IPerson.java
│ │ ├── ImmAddress.java
│ │ ├── ImmArrays.java
│ │ ├── ImmClone.java
│ │ ├── ImmComplexAnnotation.java
│ │ ├── ImmDefault.java
│ │ ├── ImmDeprecated.java
│ │ ├── ImmDocumentationHolder.java
│ │ ├── ImmDocumentationResult.java
│ │ ├── ImmDoubleArray.java
│ │ ├── ImmDoubleFloat.java
│ │ ├── ImmEmpty.java
│ │ ├── ImmFieldGetter.java
│ │ ├── ImmGeneric.java
│ │ ├── ImmGenericArray.java
│ │ ├── ImmGenericCollections.java
│ │ ├── ImmGenericLinkedRefs.java
│ │ ├── ImmGenericNonFinal.java
│ │ ├── ImmGuava.java
│ │ ├── ImmJodaConvertBean.java
│ │ ├── ImmJodaConvertWrapper.java
│ │ ├── ImmKey.java
│ │ ├── ImmKeyDeserializer.java
│ │ ├── ImmKeyHolder.java
│ │ ├── ImmKeyHolderDeserializer.java
│ │ ├── ImmKeyList.java
│ │ ├── ImmMappedKey.java
│ │ ├── ImmMinimalMetaBuilder.java
│ │ ├── ImmMinimalPrivateBuilder.java
│ │ ├── ImmNamedKey.java
│ │ ├── ImmOptional.java
│ │ ├── ImmOptionalMeta.java
│ │ ├── ImmPackageScoped.java
│ │ ├── ImmPair.java
│ │ ├── ImmPerson.java
│ │ ├── ImmPersonAbstract.java
│ │ ├── ImmPersonNonFinal.java
│ │ ├── ImmPrivateMeta.java
│ │ ├── ImmSubPersonFromAbstract.java
│ │ ├── ImmSubPersonNonFinal.java
│ │ ├── ImmSubSubPersonFinal.java
│ │ ├── ImmTolerance.java
│ │ ├── ImmTreeNode.java
│ │ ├── ImmTypes.java
│ │ ├── ImmUnusedGeneric.java
│ │ ├── JodaConvertBean.java
│ │ ├── JodaConvertInterface.java
│ │ ├── JodaConvertWrapper.java
│ │ ├── LightEmpty.java
│ │ ├── LightImmutable.java
│ │ ├── LightImmutableGeneric.java
│ │ ├── LightImmutableSimple.java
│ │ ├── LightMutable.java
│ │ ├── LightMutableGeneric.java
│ │ ├── LightMutableSimple.java
│ │ ├── MetaBeanLoad.java
│ │ ├── MidAbstractResult.java
│ │ ├── MinimalEmpty.java
│ │ ├── MinimalImmutable.java
│ │ ├── MinimalImmutableGeneric.java
│ │ ├── MinimalImmutableSimple.java
│ │ ├── MinimalManualBuilder.java
│ │ ├── MinimalMutable.java
│ │ ├── MinimalMutableGeneric.java
│ │ ├── MinimalMutableGenericSimple.java
│ │ ├── MinimalMutableSimple.java
│ │ ├── MutableBaseBean.java
│ │ ├── MutableDeprecated.java
│ │ ├── MutableDerived.java
│ │ ├── MutableDerivedBean.java
│ │ ├── MutableEmptyBase.java
│ │ ├── MutableListFinalBean.java
│ │ ├── MutableListNonFinalBean.java
│ │ ├── MutableOptional.java
│ │ ├── MutableTypes.java
│ │ ├── NoClone.java
│ │ ├── NoGenEquals.java
│ │ ├── NoGenToString.java
│ │ ├── NoProperties.java
│ │ ├── Pair.java
│ │ ├── PairBuilder.java
│ │ ├── PairDeserializer.java
│ │ ├── PairManualInnerBuilder.java
│ │ ├── PairManualTopLevelBuilder.java
│ │ ├── Person.java
│ │ ├── PersonDocumentation.java
│ │ ├── PrimitiveBean.java
│ │ ├── PropertyDefBean.java
│ │ ├── RWOnlyBean.java
│ │ ├── RecordStrIntPair.java
│ │ ├── ReflectiveMutable.java
│ │ ├── Risk.java
│ │ ├── RiskFactory.java
│ │ ├── RiskLevel.java
│ │ ├── RiskPerception.java
│ │ ├── SimpleAnnotation.java
│ │ ├── SimpleJson.java
│ │ ├── SimpleName.java
│ │ ├── SimplePerson.java
│ │ ├── SimplePersonWithBuilderFinal.java
│ │ ├── SimplePersonWithBuilderNonFinal.java
│ │ ├── SimpleSubPersonWithBuilderFinal.java
│ │ ├── SimpleSubPersonWithBuilderNonFinal.java
│ │ ├── SubDecimal.java
│ │ ├── SubPerson.java
│ │ ├── SubValidateBean.java
│ │ ├── SubWrapper.java
│ │ ├── TestRWOnlyBean.java
│ │ ├── TupleFinal.java
│ │ ├── TupleImmutable.java
│ │ ├── TupleNonFinal.java
│ │ ├── TupleSub.java
│ │ ├── TweakedPair.java
│ │ ├── UserAccount.java
│ │ ├── ValidateBean.java
│ │ ├── ValidateBeanCheck.java
│ │ ├── WeirdFormat.java
│ │ ├── Wrapper.java
│ │ └── WrapperToDoubleGenerics.java
│ ├── ser/
│ │ ├── AtomicReference.java
│ │ ├── BigDecimal.java
│ │ ├── Normal.java
│ │ ├── SerTestHelper.java
│ │ ├── TestJodaBeanBinFormat.java
│ │ ├── TestLinkedByteArrayOutputStream.java
│ │ ├── TestSerDeserializerProvider.java
│ │ ├── TestSerTypeMapper.java
│ │ ├── TestSerializeSmartReader.java
│ │ ├── bin/
│ │ │ ├── TestBinPerformance.java
│ │ │ ├── TestSerializePackedBin.java
│ │ │ ├── TestSerializeReferencingBin.java
│ │ │ └── TestSerializeStandardBin.java
│ │ ├── json/
│ │ │ ├── TestJsonInput.java
│ │ │ ├── TestJsonOutput.java
│ │ │ ├── TestJsonPerformance.java
│ │ │ ├── TestSerializeJson.java
│ │ │ └── TestSerializeJsonSimple.java
│ │ ├── lowerCase.java
│ │ ├── map/
│ │ │ └── TestSerializeSimpleMap.java
│ │ └── xml/
│ │ ├── MockRenameDeserializer.java
│ │ ├── MockSemanticChangeDeserializer.java
│ │ ├── MockTypeChangeDeserializer.java
│ │ ├── TestDeserializeXml.java
│ │ └── TestSerializeXml.java
│ └── test/
│ ├── TestBeanAssert.java
│ └── TestCoverage.java
└── resources/
├── META-INF/
│ └── org/
│ └── joda/
│ └── beans/
│ └── JodaBeans.ini
└── org/
└── joda/
└── beans/
└── ser/
├── Address.xml
├── Address1.packbinstr
├── Address2.binstr
├── Address2.json
├── Address2.simplejson
├── Collections.xml
├── Collections1.binstr
├── Collections1.json
├── Collections1.packbinstr
├── Collections1.refbinstr
├── Collections2.binstr
├── Collections2.json
├── Collections2.simplejson
├── ImmAddress.xml
├── ImmAddress1.binstr
├── ImmAddress1.json
├── ImmAddress1.packbinstr
├── ImmAddress1.refbinstr
├── ImmAddress1.simplejson
├── ImmAddress2.binstr
├── ImmAddress2.json
├── ImmAddress2.simplejson
├── ImmAddressCached1.packbinstr
├── ImmArrays1.binstr
├── ImmArrays1.json
├── ImmArrays1.packbinstr
├── ImmArrays1.refbinstr
├── ImmArrays1.simplejson
├── ImmArrays2.binstr
├── ImmArrays2.json
├── ImmArrays2.simplejson
├── ImmOptional.xml
├── ImmOptional1.packbinstr
├── ImmOptional1.refbinstr
├── ImmOptional2.binstr
├── ImmOptional2.json
├── ImmOptional2.simplejson
└── SimpleJson2.simplejson
Showing preview only (504K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7014 symbols across 331 files)
FILE: src/main/java/org/joda/beans/Bean.java
type Bean (line 28) | public interface Bean {
method metaBean (line 38) | public abstract MetaBean metaBean();
method property (line 54) | public default <R> Property<R> property(String propertyName) {
method propertyNames (line 66) | public default Set<String> propertyNames() {
FILE: src/main/java/org/joda/beans/BeanBuilder.java
type BeanBuilder (line 25) | public interface BeanBuilder<T extends Bean> {
method get (line 34) | public abstract Object get(String propertyName);
method get (line 44) | public abstract <P> P get(MetaProperty<P> metaProperty);
method set (line 57) | public abstract BeanBuilder<T> set(String propertyName, Object value);
method set (line 70) | public abstract BeanBuilder<T> set(MetaProperty<?> metaProperty, Objec...
method build (line 80) | public abstract T build();
FILE: src/main/java/org/joda/beans/BeanIterator.java
class BeanIterator (line 30) | final class BeanIterator implements Iterator<Bean> {
method BeanIterator (line 42) | BeanIterator(Bean root) {
method hasNext (line 46) | @Override
method next (line 51) | @Override
method findChildBeans (line 69) | private void findChildBeans(Object obj, MetaProperty<?> mp, Class<?> b...
method remove (line 87) | @Override
FILE: src/main/java/org/joda/beans/DynamicBean.java
type DynamicBean (line 25) | public interface DynamicBean extends Bean {
method metaBean (line 33) | @Override
method property (line 46) | @Override
method propertyDefine (line 58) | public abstract void propertyDefine(String propertyName, Class<?> prop...
method propertyRemove (line 65) | public abstract void propertyRemove(String propertyName);
FILE: src/main/java/org/joda/beans/DynamicMetaBean.java
type DynamicMetaBean (line 25) | public interface DynamicMetaBean extends MetaBean {
method builder (line 35) | @Override
method beanType (line 43) | @Override
method metaProperty (line 56) | @Override
method metaPropertyDefine (line 69) | public abstract void metaPropertyDefine(String propertyName, Class<?> ...
method metaPropertyRemove (line 76) | public abstract void metaPropertyRemove(String propertyName);
FILE: src/main/java/org/joda/beans/ImmutableBean.java
type ImmutableBean (line 23) | public interface ImmutableBean extends Bean {
FILE: src/main/java/org/joda/beans/JodaBeanUtils.java
class JodaBeanUtils (line 74) | public final class JodaBeanUtils {
method JodaBeanUtils (line 84) | private JodaBeanUtils() {
method stringConverter (line 96) | public static StringConvert stringConverter() {
method equal (line 108) | public static boolean equal(Object obj1, Object obj2) {
method equalsArray (line 124) | private static boolean equalsArray(Object obj1, Object obj2) {
method equal (line 151) | public static boolean equal(float val1, float val2) {
method equalWithTolerance (line 166) | public static boolean equalWithTolerance(float val1, float val2, doubl...
method equal (line 179) | public static boolean equal(double val1, double val2) {
method equalWithTolerance (line 195) | public static boolean equalWithTolerance(double val1, double val2, dou...
method hashCode (line 205) | public static int hashCode(Object obj) {
method hashCodeArray (line 216) | private static int hashCodeArray(Object obj) {
method hashCode (line 237) | public static int hashCode(boolean value) {
method hashCode (line 247) | public static int hashCode(int value) {
method hashCode (line 257) | public static int hashCode(long value) {
method hashCode (line 267) | public static int hashCode(float value) {
method hashCode (line 277) | public static int hashCode(double value) {
method toString (line 288) | public static String toString(Object obj) {
method toStringArray (line 299) | private static String toStringArray(Object obj) {
method propertiesEqual (line 331) | public static boolean propertiesEqual(Bean bean1, Bean bean2) {
method propertiesHashCode (line 356) | public static int propertiesHashCode(Bean bean) {
method propertiesToString (line 376) | public static String propertiesToString(Bean bean, String prefix) {
method flatten (line 402) | public static Map<String, Object> flatten(Bean bean) {
method copy (line 424) | public static <T extends Bean> BeanBuilder<T> copy(Bean sourceBean, Cl...
method copyInto (line 444) | public static <T extends Bean> BeanBuilder<T> copyInto(Bean sourceBean...
method cloneArray (line 474) | @SuppressWarnings("unchecked")
method clone (line 498) | public static <T extends Bean> T clone(T original) {
method cloneAlways (line 516) | public static <T extends Bean> T cloneAlways(T original) {
method notNull (line 536) | public static void notNull(Object value, String propertyName) {
method notNullMsg (line 543) | private static String notNullMsg(String propertyName) {
method notBlank (line 556) | public static void notBlank(String value, String propertyName) {
method notEmpty (line 569) | public static void notEmpty(String value, String propertyName) {
method notEmpty (line 576) | private static String notEmpty(String propertyName) {
method notEmpty (line 587) | public static void notEmpty(Collection<?> value, String propertyName) {
method notEmpty (line 600) | public static void notEmpty(Map<?, ?> value, String propertyName) {
method collectionType (line 615) | public static Class<?> collectionType(Property<?> prop) {
method collectionType (line 628) | public static Class<?> collectionType(MetaProperty<?> prop, Class<?> c...
method collectionTypeTypes (line 643) | public static List<Class<?>> collectionTypeTypes(MetaProperty<?> prop,...
method mapKeyType (line 654) | public static Class<?> mapKeyType(Property<?> prop) {
method mapKeyType (line 667) | public static Class<?> mapKeyType(MetaProperty<?> prop, Class<?> conte...
method mapValueType (line 677) | public static Class<?> mapValueType(Property<?> prop) {
method mapValueType (line 690) | public static Class<?> mapValueType(MetaProperty<?> prop, Class<?> con...
method mapValueTypeTypes (line 705) | public static List<Class<?>> mapValueTypeTypes(MetaProperty<?> prop, C...
method extractTypeClass (line 719) | public static Class<?> extractTypeClass(MetaProperty<?> prop, Class<?>...
method extractType (line 723) | private static Type extractType(MetaProperty<?> prop, Class<?> context...
method extractTypeClasses (line 743) | private static List<Class<?>> extractTypeClasses(Type type, Class<?> c...
method computeValue (line 762) | @Override
method findTypeVars (line 779) | private void findTypeVars(Type type, HashMap<Type, Type> resolved) {
method resolveGenerics (line 805) | static Type resolveGenerics(TypeVariable<?> typevar, Class<?> contextC...
method eraseToClass (line 811) | static Class<?> eraseToClass(Type type) {
method equalIgnoring (line 847) | public static boolean equalIgnoring(Bean bean1, Bean bean2, MetaProper...
method beanIterator (line 893) | public static Iterator<Bean> beanIterator(Bean bean) {
method chain (line 910) | public static <P> Function<Bean, P> chain(MetaProperty<? extends Bean>...
method chain (line 931) | public static <P> Function<Bean, P> chain(Function<Bean, ? extends Bea...
method comparator (line 953) | public static Comparator<Bean> comparator(Function<Bean, ?> query, boo...
method comparatorAscending (line 965) | public static Comparator<Bean> comparatorAscending(Function<Bean, ?> q...
method comparatorDescending (line 978) | public static Comparator<Bean> comparatorDescending(Function<Bean, ?> ...
class Comp (line 987) | private static final class Comp implements Comparator<Bean> {
method Comp (line 990) | private Comp(Function<Bean, ?> query) {
method compare (line 994) | @Override
class Cloner (line 1007) | @SuppressWarnings({"rawtypes", "unchecked"})
method getInstance (line 1011) | private static Cloner getInstance() {
method Cloner (line 1025) | Cloner() {
method clone (line 1028) | Object clone(Object value) {
method cloneIterable (line 1052) | Object cloneIterable(Iterable original, Collection cloned) {
method cloneMap (line 1059) | Object cloneMap(Map original, Map cloned) {
method cloneArray (line 1067) | Object cloneArray(Object[] originalArray) {
class GuavaCloner (line 1080) | @SuppressWarnings({"rawtypes", "unchecked"})
method GuavaCloner (line 1082) | GuavaCloner() {
method clone (line 1085) | @Override
method cloneMultimap (line 1104) | Object cloneMultimap(Multimap original, Multimap cloned) {
method cloneTable (line 1114) | Object cloneTable(Table original, Table cloned) {
class CollectCloner (line 1127) | @SuppressWarnings({"rawtypes", "unchecked"})
method CollectCloner (line 1129) | CollectCloner() {
method clone (line 1132) | @Override
method cloneGrid (line 1143) | Object cloneGrid(Grid original, Grid cloned) {
FILE: src/main/java/org/joda/beans/MetaBean.java
type MetaBean (line 31) | public interface MetaBean {
method of (line 44) | public static MetaBean of(Class<?> cls) {
method register (line 57) | public static void register(MetaBean metaBean) {
method isBuildable (line 71) | public abstract boolean isBuildable();
method builder (line 86) | public abstract BeanBuilder<? extends Bean> builder();
method beanName (line 96) | public default String beanName() {
method beanType (line 108) | public abstract Class<? extends Bean> beanType();
method metaPropertyCount (line 119) | public default int metaPropertyCount() {
method metaPropertyExists (line 132) | public default boolean metaPropertyExists(String propertyName) {
method metaProperty (line 150) | @SuppressWarnings("unchecked")
method metaPropertyIterable (line 168) | public default Iterable<MetaProperty<?>> metaPropertyIterable() {
method metaPropertyMap (line 179) | public abstract Map<String, MetaProperty<?>> metaPropertyMap();
method annotations (line 196) | public default List<Annotation> annotations() {
method annotation (line 212) | @SuppressWarnings("unchecked")
method annotationOpt (line 235) | @SuppressWarnings("unchecked")
FILE: src/main/java/org/joda/beans/MetaBeanProvider.java
type MetaBeanProvider (line 21) | public interface MetaBeanProvider {
method findMetaBean (line 29) | MetaBean findMetaBean(Class<?> cls);
FILE: src/main/java/org/joda/beans/MetaBeans.java
class MetaBeans (line 31) | final class MetaBeans {
method MetaBeans (line 48) | private MetaBeans() {
method lookup (line 65) | static MetaBean lookup(Class<?> cls) {
method metaBeanLookup (line 74) | private static MetaBean metaBeanLookup(Class<?> cls) {
method findProviderAnnotation (line 141) | private static MetaProvider findProviderAnnotation(Class<?> cls) {
method register (line 168) | static void register(MetaBean metaBean) {
FILE: src/main/java/org/joda/beans/MetaProperty.java
type MetaProperty (line 33) | public interface MetaProperty<P> {
method createProperty (line 44) | public default Property<P> createProperty(Bean bean) {
method metaBean (line 56) | public abstract MetaBean metaBean();
method name (line 66) | public abstract String name();
method declaringType (line 75) | public abstract Class<?> declaringType();
method propertyType (line 85) | public abstract Class<P> propertyType();
method propertyGenericType (line 94) | public abstract Type propertyGenericType();
method propertyResolvedType (line 104) | public default ResolvedType propertyResolvedType(Class<?> contextClass) {
method style (line 116) | public abstract PropertyStyle style();
method annotations (line 129) | public abstract List<Annotation> annotations();
method annotation (line 143) | @SuppressWarnings("unchecked")
method annotationOpt (line 166) | @SuppressWarnings("unchecked")
method get (line 189) | public abstract P get(Bean bean);
method set (line 205) | public abstract void set(Bean bean, Object value);
method put (line 222) | public default P put(Bean bean, Object value) {
method getString (line 245) | public default String getString(Bean bean) {
method getString (line 265) | public default String getString(Bean bean, StringConvert stringConvert) {
method setString (line 283) | public default void setString(Bean bean, String value) {
method setString (line 301) | public default void setString(Bean bean, String value, StringConvert s...
method equals (line 315) | @Override
method hashCode (line 323) | @Override
FILE: src/main/java/org/joda/beans/Property.java
type Property (line 26) | public interface Property<P> {
method bean (line 36) | public abstract <B extends Bean> B bean();
method metaProperty (line 44) | public abstract MetaProperty<P> metaProperty();
method name (line 54) | public default String name() {
method get (line 68) | public default P get() {
method set (line 85) | public default void set(Object value) {
method put (line 101) | public default P put(Object value) {
method equals (line 115) | @Override
method hashCode (line 123) | @Override
FILE: src/main/java/org/joda/beans/PropertyPath.java
class PropertyPath (line 41) | public final class PropertyPath<P> {
method PropertyPath (line 59) | private PropertyPath(String propertyPath, Class<P> resultType, List<Pa...
method of (line 75) | public static <P> PropertyPath<P> of(String propertyPath, Class<P> res...
method get (line 94) | public Optional<P> get(Bean bean) {
method propertyPath (line 135) | public String propertyPath() {
method resultType (line 144) | public Class<P> resultType() {
method equals (line 148) | @Override
method hashCode (line 155) | @Override
method toString (line 160) | @Override
class PathEntry (line 166) | private static final class PathEntry {
method parse (line 171) | static List<PathEntry> parse(String propertyPath) {
method extractEntry (line 178) | private static PathEntry extractEntry(String propertyPath, String en...
method PathEntry (line 202) | private PathEntry(String propertyName, String key, int index) {
method get (line 208) | private Object get(Bean bean) {
method extract (line 216) | private Object extract(Object obj) {
FILE: src/main/java/org/joda/beans/PropertyStyle.java
type PropertyStyle (line 26) | public enum PropertyStyle {
method isReadable (line 63) | public boolean isReadable() {
method isWritable (line 74) | public boolean isWritable() {
method isReadOnly (line 87) | public boolean isReadOnly() {
method isBuildable (line 98) | public boolean isBuildable() {
method isDerived (line 109) | public boolean isDerived() {
method isSerializable (line 120) | public boolean isSerializable() {
FILE: src/main/java/org/joda/beans/ResolvedType.java
class ResolvedType (line 68) | public final class ResolvedType {
method ResolvedType (line 137) | private ResolvedType(Class<?> rawType) {
method ResolvedType (line 146) | private ResolvedType(Class<?> rawType, List<ResolvedType> arguments) {
method parse (line 161) | @FromString
method parse (line 169) | private static ResolvedType parse(Matcher matcher, String str, int dep...
method parseClassName (line 221) | private static Class<?> parseClassName(String name) {
method invalidFormat (line 233) | private static IllegalArgumentException invalidFormat(String str) {
method of (line 252) | public static ResolvedType of(Class<?> rawType) {
method of (line 270) | public static ResolvedType of(Class<?> rawType, ResolvedType... argume...
method of (line 289) | public static ResolvedType of(Class<?> rawType, List<ResolvedType> arg...
method invalidTypeParamCount (line 303) | private static IllegalArgumentException invalidTypeParamCount(Class<?>...
method ofFlat (line 326) | public static ResolvedType ofFlat(Class<?> rawType, Class<?>... argume...
method from (line 352) | public static ResolvedType from(Class<?> rawType) {
method from (line 370) | public static ResolvedType from(Type javaType, Class<?> contextClass) {
method fromAllowRaw (line 387) | public static ResolvedType fromAllowRaw(Type javaType, Class<?> contex...
method from (line 392) | private static ResolvedType from(Type javaType, Class<?> contextClass,...
method unknownGenericTypeClass (line 406) | private static IllegalArgumentException unknownGenericTypeClass(Type t...
method resolveClass (line 411) | private static ResolvedType resolveClass(Class<?> cls, Class<?> contex...
method resolveParameterizedType (line 425) | private static ResolvedType resolveParameterizedType(ParameterizedType...
method resolveGenericArrayType (line 436) | private static ResolvedType resolveGenericArrayType(GenericArrayType a...
method resolveTypeVariable (line 444) | private static ResolvedType resolveTypeVariable(TypeVariable<?> tvar, ...
method resolveGenericBound (line 454) | private static ResolvedType resolveGenericBound(Type bound, boolean al...
method resolveWildcard (line 476) | private static ResolvedType resolveWildcard(WildcardType wild, Class<?...
method getRawType (line 491) | public Class<?> getRawType() {
method getArguments (line 500) | public List<ResolvedType> getArguments() {
method getArgumentOrDefault (line 513) | public ResolvedType getArgumentOrDefault(int index) {
method isParameterized (line 530) | public boolean isParameterized() {
method isRaw (line 543) | public boolean isRaw() {
method isPrimitive (line 555) | public boolean isPrimitive() {
method isArray (line 564) | public boolean isArray() {
method toRaw (line 577) | public ResolvedType toRaw() {
method toBoxed (line 589) | public ResolvedType toBoxed() {
method boxed (line 593) | private ResolvedType boxed() {
method toJavaType (line 623) | public Type toJavaType() {
method toComponentType (line 648) | public ResolvedType toComponentType() {
method toBaseComponentType (line 665) | public ResolvedType toBaseComponentType() {
method toArrayType (line 683) | public ResolvedType toArrayType() {
method extractBaseComponentType (line 688) | private static Class<?> extractBaseComponentType(Class<?> cls) {
method equals (line 703) | @Override
method hashCode (line 715) | @Override
method toString (line 725) | @Override
method shortenedClassName (line 753) | private String shortenedClassName(Class<?> cls) {
class DynamicParameterizedType (line 766) | private static final class DynamicParameterizedType implements Paramet...
method DynamicParameterizedType (line 771) | private DynamicParameterizedType(Class<?> rawClass, Type[] typeArgum...
method getActualTypeArguments (line 782) | @Override
method getRawType (line 787) | @Override
method getOwnerType (line 792) | @Override
method equals (line 801) | @Override
method hashCode (line 809) | @Override
method toString (line 814) | @Override
class DynamicGenericArrayType (line 829) | private static final class DynamicGenericArrayType implements GenericA...
method DynamicGenericArrayType (line 833) | private DynamicGenericArrayType(Type componentType) {
method getGenericComponentType (line 837) | @Override
method equals (line 842) | @Override
method hashCode (line 848) | @Override
method toString (line 853) | @Override
method typeToString (line 859) | private static String typeToString(Type type) {
FILE: src/main/java/org/joda/beans/TypedMetaBean.java
type TypedMetaBean (line 26) | public interface TypedMetaBean<T extends Bean> extends MetaBean {
method builder (line 28) | @Override
method beanType (line 31) | @Override
FILE: src/main/java/org/joda/beans/gen/BeanCodeGen.java
class BeanCodeGen (line 37) | public class BeanCodeGen {
method main (line 48) | public static void main(String[] args) {
method createFromArgs (line 91) | public static BeanCodeGen createFromArgs(String[] args) {
method findFiles (line 174) | private static List<File> findFiles(Path parent, boolean recurse) {
method BeanCodeGen (line 205) | public BeanCodeGen(List<File> files, BeanGenConfig config, int verbosi...
method process (line 226) | public int process() throws Exception {
method processFiles (line 242) | public List<File> processFiles() throws Exception {
method processFile (line 260) | private File processFile(File file) throws IOException {
method parse (line 286) | private BeanGen parse(File file, ArrayList<String> content) {
method contentDiffers (line 299) | private boolean contentDiffers(List<String> content, List<String> orig...
method writeFileWithLogging (line 320) | private File writeFileWithLogging(File file, ArrayList<String> content...
method writeFile (line 339) | private void writeFile(File file, List<String> content) throws IOExcep...
FILE: src/main/java/org/joda/beans/gen/BeanCodeGenException.java
class BeanCodeGenException (line 24) | public final class BeanCodeGenException extends RuntimeException {
method BeanCodeGenException (line 48) | public BeanCodeGenException(String message, File file, int line) {
method BeanCodeGenException (line 61) | public BeanCodeGenException(String message, Throwable cause, File file) {
method getFile (line 73) | public File getFile() {
method getLine (line 82) | public int getLine() {
FILE: src/main/java/org/joda/beans/gen/BeanData.java
class BeanData (line 26) | class BeanData {
method BeanData (line 102) | BeanData() {
method getCurrentImports (line 109) | public SortedSet<String> getCurrentImports() {
method getNewImports (line 117) | public SortedSet<String> getNewImports() {
method ensureImport (line 125) | public void ensureImport(Class<?> cls) {
method ensureImport (line 133) | void ensureImport(String className) {
method getImportInsertLocation (line 143) | public int getImportInsertLocation() {
method setImportInsertLocation (line 151) | public void setImportInsertLocation(int location) {
method getBeanStyle (line 160) | public String getBeanStyle() {
method setBeanStyle (line 168) | public void setBeanStyle(String beanStyle) {
method resolveBeanStyle (line 176) | public void resolveBeanStyle(String defaultStyle) {
method isBeanStyleValid (line 186) | public boolean isBeanStyleValid() {
method isBeanStyleLight (line 195) | public boolean isBeanStyleLight() {
method isBeanStyleMinimal (line 203) | public boolean isBeanStyleMinimal() {
method isBeanStyleLightOrMinimal (line 211) | public boolean isBeanStyleLightOrMinimal() {
method isBeanStyleGenerateProperties (line 219) | public boolean isBeanStyleGenerateProperties() {
method isBeanStyleGenerateMetaProperties (line 227) | public boolean isBeanStyleGenerateMetaProperties() {
method getBeanMetaScope (line 236) | public String getBeanMetaScope() {
method setBeanMetaScope (line 244) | public void setBeanMetaScope(String metaScope) {
method isBeanMetaScopeValid (line 252) | public boolean isBeanMetaScopeValid() {
method getEffectiveMetaScope (line 263) | public String getEffectiveMetaScope() {
method isMetaScopePrivate (line 275) | public boolean isMetaScopePrivate() {
method getBeanMetaImplements (line 284) | public String getBeanMetaImplements() {
method setBeanMetaImplements (line 292) | public void setBeanMetaImplements(String metaImplements) {
method getBeanBuilderScope (line 301) | public String getBeanBuilderScope() {
method setBeanBuilderScope (line 309) | public void setBeanBuilderScope(String builderScope) {
method isBeanBuilderScopeValid (line 317) | public boolean isBeanBuilderScopeValid() {
method getEffectiveBuilderScope (line 328) | public String getEffectiveBuilderScope() {
method isEffectiveBuilderScopeVisible (line 340) | public boolean isEffectiveBuilderScopeVisible() {
method isBuilderScopeVisible (line 349) | public boolean isBuilderScopeVisible() {
method isBuilderGenerated (line 357) | public boolean isBuilderGenerated() {
method isSkipBuilderGeneration (line 365) | public boolean isSkipBuilderGeneration() {
method getBeanBuilderName (line 374) | public String getBeanBuilderName() {
method setBeanBuilderName (line 382) | public void setBeanBuilderName(String builderName) {
method isBeanBuilderManual (line 390) | public boolean isBeanBuilderManual() {
method getEffectiveBeanBuilderName (line 398) | public String getEffectiveBeanBuilderName() {
method getEffectiveMinimalBeanBuilderName (line 406) | public String getEffectiveMinimalBeanBuilderName() {
method isFactoryRequired (line 415) | public boolean isFactoryRequired() {
method getFactoryName (line 423) | public String getFactoryName() {
method setFactoryName (line 431) | public void setFactoryName(String name) {
method isCacheHashCode (line 440) | public boolean isCacheHashCode() {
method setCacheHashCode (line 448) | public void setCacheHashCode(boolean cacheHashCode) {
method isPropertyChangeSupport (line 457) | public boolean isPropertyChangeSupport() {
method isImmutable (line 466) | public boolean isImmutable() {
method isMutable (line 474) | public boolean isMutable() {
method setImmutable (line 482) | public void setImmutable(boolean immutable) {
method isConstructable (line 490) | public boolean isConstructable() {
method setConstructable (line 498) | public void setConstructable(boolean constructable) {
method getImmutableConstructor (line 506) | public int getImmutableConstructor() {
method setImmutableConstructor (line 514) | public void setImmutableConstructor(int manualConstructor) {
method getImmutableValidator (line 522) | public String getImmutableValidator() {
method setImmutableValidator (line 530) | public void setImmutableValidator(String immutableValidator) {
method getImmutableDefaults (line 538) | public String getImmutableDefaults() {
method setImmutableDefaults (line 546) | public void setImmutableDefaults(String immutableDefaults) {
method getImmutablePreBuild (line 554) | public String getImmutablePreBuild() {
method setImmutablePreBuild (line 562) | public void setImmutablePreBuild(String immutablePreBuild) {
method getConstructorStyle (line 570) | public int getConstructorStyle() {
method setConstructorStyle (line 578) | public void setConstructorStyle(int constructorStyle) {
method getConstructorScope (line 586) | public String getConstructorScope() {
method setConstructorScope (line 594) | public void setConstructorScope(String constructorScope) {
method isConstructorScopeValid (line 602) | public boolean isConstructorScopeValid() {
method getEffectiveConstructorScope (line 615) | public String getEffectiveConstructorScope() {
method isConstructorPropertiesAnnotation (line 630) | public boolean isConstructorPropertiesAnnotation() {
method isSerializable (line 638) | public boolean isSerializable() {
method setSerializable (line 646) | public void setSerializable(boolean serializable) {
method isManualSerializationId (line 654) | public boolean isManualSerializationId() {
method setManualSerializationId (line 662) | public void setManualSerializationId(boolean manualSerVersionId) {
method isManualClone (line 670) | public boolean isManualClone() {
method setManualClone (line 678) | public void setManualClone(boolean manualClone) {
method isManualEqualsHashCode (line 686) | public boolean isManualEqualsHashCode() {
method setManualEqualsHashCode (line 694) | public void setManualEqualsHashCode(boolean manualEqualsHashCode) {
method isManualToStringCode (line 702) | public boolean isManualToStringCode() {
method setManualToStringCode (line 710) | public void setManualToStringCode(boolean manualToStringCode) {
method getCloneStyle (line 718) | public String getCloneStyle() {
method setCloneStyle (line 726) | public void setCloneStyle(String cloneStyle) {
method isCloneStyleValid (line 734) | public boolean isCloneStyleValid() {
method isSkipCloneGeneration (line 744) | public boolean isSkipCloneGeneration() {
method setTypeParts (line 752) | public void setTypeParts(String[] parts) {
method setSuperTypeParts (line 782) | public void setSuperTypeParts(String[] parts) {
method getProperties (line 810) | public List<PropertyData> getProperties() {
method isTypeFinal (line 818) | public boolean isTypeFinal() {
method setTypeFinal (line 826) | public void setTypeFinal(boolean typeFinal) {
method getTypeScope (line 834) | public String getTypeScope() {
method isSubClass (line 843) | public boolean isSubClass() {
method isRootClass (line 851) | public boolean isRootClass() {
method isExtendsDirectBean (line 859) | public boolean isExtendsDirectBean() {
method isTypeGeneric (line 868) | public boolean isTypeGeneric() {
method getTypeGenericCount (line 876) | public int getTypeGenericCount() {
method getType (line 884) | public String getType() {
method getTypeGeneric (line 893) | public String getTypeGeneric(boolean includeBrackets) {
method getTypeGenericName (line 912) | public String getTypeGenericName(boolean includeBrackets) {
method getTypeGenericDiamond (line 930) | public String getTypeGenericDiamond() {
method getTypeWithDiamond (line 938) | public String getTypeWithDiamond() {
method getTypeGenericName (line 948) | public String getTypeGenericName(int typeParamIndex, boolean includeBr...
method getTypeGenericErased (line 958) | public String getTypeGenericErased(int typeParamIndex) {
method getTypeGenericExtends (line 968) | public String getTypeGenericExtends(int typeParamIndex) {
method getTypeGenericExtends (line 978) | public String getTypeGenericExtends(int typeParamIndex, String[] typeP...
method getTypeNoExtends (line 993) | public String getTypeNoExtends() {
method getTypeRaw (line 1001) | public String getTypeRaw() {
method getTypeWildcard (line 1009) | public String getTypeWildcard() {
method isTypeGenerifiedBy (line 1028) | public boolean isTypeGenerifiedBy(String type) {
method isSuperTypeGeneric (line 1043) | public boolean isSuperTypeGeneric() {
method getSuperType (line 1051) | public String getSuperType() {
method getSuperTypeGeneric (line 1060) | public String getSuperTypeGeneric(boolean includeBrackets) {
method getSuperTypeRaw (line 1068) | public String getSuperTypeRaw() {
method isValidated (line 1076) | public boolean isValidated() {
method getNestedClassConstructorScope (line 1084) | public String getNestedClassConstructorScope() {
FILE: src/main/java/org/joda/beans/gen/BeanGen.java
class BeanGen (line 52) | class BeanGen {
method BeanGen (line 102) | BeanGen(File file, List<String> content, BeanGenConfig config, BeanDat...
method BeanGen (line 121) | BeanGen(
method process (line 133) | void process() {
method processNonBean (line 167) | void processNonBean() {
method fixImports (line 172) | private void fixImports() {
method renameImport (line 182) | private void renameImport(String old, Class<?> cls) {
method resolveImports (line 189) | private void resolveImports() {
method resolveIndents (line 209) | private void resolveIndents() {
method removeOld (line 215) | private void removeOld() {
method generateSeparator (line 220) | private void generateSeparator() {
method generateIndentedSeparator (line 227) | private void generateIndentedSeparator() {
method generateGenerated (line 234) | private void generateGenerated(int tabCount) {
method generateFactory (line 240) | private void generateFactory() {
method generateImmutableBuilderMethod (line 283) | private void generateImmutableBuilderMethod() {
method generateBuilderBasedConstructor (line 306) | private void generateBuilderBasedConstructor() {
method generateArgBasedConstructor (line 363) | private void generateArgBasedConstructor() {
method isArgBasedConstructor (line 434) | private boolean isArgBasedConstructor() {
method generateMeta (line 448) | private void generateMeta() {
method generateFieldNames (line 608) | private void generateFieldNames(List<PropertyGen> nonDerived) {
method generateMetaForGenericType (line 619) | private void generateMetaForGenericType() {
method generateSerializationVersionId (line 663) | private void generateSerializationVersionId() {
method generatePropertyChangeSupportField (line 673) | private void generatePropertyChangeSupportField() {
method generateHashCodeField (line 684) | private void generateHashCodeField() {
method generateMetaBean (line 694) | private void generateMetaBean() {
method generateGettersSetters (line 728) | private void generateGettersSetters() {
method generateImmutableToBuilder (line 742) | private void generateImmutableToBuilder() {
method generateClone (line 773) | private void generateClone() {
method generateEquals (line 792) | private void generateEquals() {
method generateHashCode (line 834) | private void generateHashCode() {
method generateHashCodeContent (line 873) | private void generateHashCodeContent(String indent) {
method equalsHashCodeFieldAccessor (line 882) | private String equalsHashCodeFieldAccessor(PropertyGen prop) {
method generateToString (line 890) | private void generateToString() {
method toStringFieldAccessor (line 952) | private String toStringFieldAccessor(PropertyGen prop) {
method generateMetaClass (line 963) | private void generateMetaClass() {
method generateMetaPropertyConstants (line 1023) | private void generateMetaPropertyConstants() {
method generateMetaPropertyMapSetup (line 1029) | private void generateMetaPropertyMapSetup() {
method generateMetaBuilder (line 1047) | private void generateMetaBuilder() {
method generateMetaBeanType (line 1085) | private void generateMetaBeanType() {
method generateMetaPropertyGet (line 1100) | private void generateMetaPropertyGet() {
method generateMetaPropertyMap (line 1116) | private void generateMetaPropertyMap() {
method generateMetaPropertyMethods (line 1125) | private void generateMetaPropertyMethods() {
method generateMetaGetPropertyValue (line 1134) | private void generateMetaGetPropertyValue() {
method generateMetaSetPropertyValue (line 1151) | private void generateMetaSetPropertyValue() {
method generateMetaValidate (line 1189) | private void generateMetaValidate() {
method generateBuilderClass (line 1213) | private void generateBuilderClass() {
method generateBuilderConstructorNoArgs (line 1268) | private void generateBuilderConstructorNoArgs() {
method generateBuilderConstructorCopy (line 1280) | private void generateBuilderConstructorCopy() {
method generateBuilderProperties (line 1301) | private void generateBuilderProperties() {
method generateBuilderGet (line 1307) | private void generateBuilderGet() {
method generateBuilderSet (line 1336) | private void generateBuilderSet() {
method generateBuilderOtherSets (line 1373) | private void generateBuilderOtherSets() {
method generateBuilderBuild (line 1384) | private void generateBuilderBuild() {
method generateBuilderPropertySetMethods (line 1407) | private void generateBuilderPropertySetMethods() {
method generateBuilderToString (line 1415) | private void generateBuilderToString() {
method addLines (line 1473) | private void addLines(List<String> lines) {
method addLine (line 1477) | private void addLine(int tabCount, String line) {
method addBlankLine (line 1481) | private void addBlankLine() {
method join (line 1485) | private static String join(int i, List<?> list, String join, String en...
method joinComma (line 1489) | private static String joinComma(int i, List<?> list, String end) {
method isBean (line 1493) | boolean isBean() {
method getData (line 1497) | BeanData getData() {
method getConfig (line 1501) | BeanGenConfig getConfig() {
method getFile (line 1505) | File getFile() {
method getFieldPrefix (line 1509) | String getFieldPrefix() {
method nonDerivedProperties (line 1513) | private List<PropertyGen> nonDerivedProperties() {
method nonDerivedEqualsHashCodeProperties (line 1523) | private List<PropertyGen> nonDerivedEqualsHashCodeProperties() {
method toStringProperties (line 1533) | private List<PropertyGen> toStringProperties() {
FILE: src/main/java/org/joda/beans/gen/BeanGenConfig.java
class BeanGenConfig (line 32) | public final class BeanGenConfig {
method parse (line 87) | public static BeanGenConfig parse(String resourceLocator) {
method createConfigFileName (line 104) | private static String createConfigFileName(String resourceLocator) {
method parse (line 114) | private static BeanGenConfig parse(List<String> lines) {
method parseConfig (line 195) | private static void parseConfig(ListIterator<String> iterator, HashMap...
method BeanGenConfig (line 223) | private BeanGenConfig(
method getCopyGenerators (line 244) | Map<String, CopyGen> getCopyGenerators() {
method getBuilderGenerators (line 253) | Map<String, BuilderGen> getBuilderGenerators() {
method getBuilderTypes (line 262) | public Map<String, String> getBuilderTypes() {
method getInvalidImmutableTypes (line 271) | public Set<String> getInvalidImmutableTypes() {
method getImmutableVarArgs (line 280) | public Map<String, String> getImmutableVarArgs() {
method getImmutableGetClones (line 289) | public Map<String, String> getImmutableGetClones() {
method getIndent (line 299) | public String getIndent() {
method setIndent (line 308) | public void setIndent(String indent) {
method getPrefix (line 317) | public String getPrefix() {
method setPrefix (line 326) | public void setPrefix(String prefix) {
method getEol (line 335) | public String getEol() {
method setEol (line 344) | public void setEol(String eol) {
method getDefaultStyle (line 353) | public String getDefaultStyle() {
method setDefaultStyle (line 362) | public void setDefaultStyle(String defaultStyle) {
method isGeneratedAnno (line 371) | public boolean isGeneratedAnno() {
method setGeneratedAnno (line 380) | public void setGeneratedAnno(boolean generatedAnno) {
FILE: src/main/java/org/joda/beans/gen/BeanParser.java
class BeanParser (line 32) | class BeanParser {
method BeanParser (line 124) | BeanParser(File file, List<String> content, BeanGenConfig config) {
method getFile (line 131) | File getFile() {
method getFieldPrefix (line 135) | String getFieldPrefix() {
method getConfig (line 139) | BeanGenConfig getConfig() {
method parse (line 144) | BeanGen parse() {
method classHeaderAfterType (line 268) | private String classHeaderAfterType(int defLine, String fullType) {
method parseBeanDefinition (line 289) | private int parseBeanDefinition() {
method parseImports (line 299) | private Set<String> parseImports(int defLine) {
method parseImportLocation (line 314) | private int parseImportLocation(int defLine) {
method parseBeanStyle (line 325) | private String parseBeanStyle(int defLine) {
method parseConstructorScope (line 334) | private String parseConstructorScope(int defLine) {
method parseBeanMetaScope (line 343) | private String parseBeanMetaScope(int defLine) {
method parseBeanMetaImplements (line 352) | private String parseBeanMetaImplements(int defLine) {
method parseBeanBuilderScope (line 361) | private String parseBeanBuilderScope(int defLine) {
method parseBeanBuilderName (line 370) | private String parseBeanBuilderName(int defLine) {
method parseFactoryName (line 379) | private String parseFactoryName(int defLine) {
method parseBeanHierarchy (line 388) | private String parseBeanHierarchy(int defLine) {
method parseCacheHashCode (line 397) | private boolean parseCacheHashCode(int defLine) {
method parseCloneStyle (line 406) | private String parseCloneStyle(int defLine) {
method parseConstructable (line 415) | private boolean parseConstructable(int defLine) {
method parseBeanType (line 424) | private String[] parseBeanType(int defLine) {
method parseBeanSuperType (line 445) | private String[] parseBeanSuperType(String classHeaderAfterType) {
method parseSerializable (line 461) | private boolean parseSerializable(String classHeaderAfterType) {
method parseManualSerializationId (line 465) | private boolean parseManualSerializationId(int defLine) {
method parseImmutableConstructor (line 474) | private int parseImmutableConstructor(int defLine) {
method parseImmutableValidator (line 493) | private String parseImmutableValidator(int defLine) {
method parseImmutableDefaults (line 515) | private String parseImmutableDefaults(int defLine) {
method parseImmutablePreBuild (line 538) | private String parseImmutablePreBuild(int defLine) {
method parseProperties (line 561) | private List<PropertyGen> parseProperties(BeanData data) {
method parseStartAutogen (line 579) | private int parseStartAutogen() {
method parseEndAutogen (line 600) | private int parseEndAutogen() {
method parseManualClone (line 612) | private boolean parseManualClone(int defLine) {
method parseManualEqualsHashCode (line 622) | private boolean parseManualEqualsHashCode(int defLine) {
method parseManualToStringCode (line 632) | private boolean parseManualToStringCode(int defLine) {
FILE: src/main/java/org/joda/beans/gen/BuilderGen.java
class BuilderGen (line 23) | abstract class BuilderGen {
method generateField (line 32) | abstract List<String> generateField(String indent, PropertyData prop);
method isSpecialInit (line 40) | abstract boolean isSpecialInit(PropertyData prop);
method generateInit (line 48) | abstract String generateInit(PropertyData prop);
method generateType (line 56) | String generateType(PropertyData prop) {
class PatternBuilderGen (line 61) | static class PatternBuilderGen extends BuilderGen {
method PatternBuilderGen (line 64) | PatternBuilderGen(String type, String init) {
method generateField (line 68) | @Override
method isSpecialInit (line 77) | @Override
method generateInit (line 81) | @Override
method generateType (line 85) | @Override
class SimpleBuilderGen (line 94) | static class SimpleBuilderGen extends BuilderGen {
method SimpleBuilderGen (line 95) | SimpleBuilderGen() {
method generateField (line 97) | @Override
method isSpecialInit (line 101) | @Override
method generateInit (line 105) | @Override
method generateType (line 109) | @Override
class NoBuilderGen (line 115) | static class NoBuilderGen extends BuilderGen {
method generateField (line 117) | @Override
method isSpecialInit (line 121) | @Override
method generateInit (line 125) | @Override
method defaultType (line 132) | private static String defaultType(PropertyData prop) {
FILE: src/main/java/org/joda/beans/gen/CopyGen.java
class CopyGen (line 24) | abstract class CopyGen {
method generateCopyToImmutable (line 34) | abstract List<String> generateCopyToImmutable(String indent, String fr...
method generateCopyToMutable (line 44) | abstract List<String> generateCopyToMutable(String indent, PropertyDat...
class PatternCopyGen (line 47) | static class PatternCopyGen extends CopyGen {
method PatternCopyGen (line 57) | PatternCopyGen(String pattern, boolean nullSafe) {
method PatternCopyGen (line 61) | PatternCopyGen(String immutablePattern, String mutablePattern, boole...
method generateCopyToImmutable (line 66) | @Override
method generateCopyToMutable (line 92) | @Override
class NoCopyGen (line 124) | static class NoCopyGen extends CopyGen {
method generateCopyToImmutable (line 126) | @Override
method generateCopyToMutable (line 130) | @Override
FILE: src/main/java/org/joda/beans/gen/GetterGen.java
class GetterGen (line 24) | abstract class GetterGen {
method generateGetter (line 31) | abstract List<String> generateGetter(PropertyData prop);
method generateGetInvoke (line 39) | String generateGetInvoke(PropertyData prop) {
class GetGetterGen (line 44) | static final class GetGetterGen extends GetterGen {
method of (line 50) | static GetGetterGen of(String access) {
method GetGetterGen (line 58) | private GetGetterGen(String access) {
method generateGetter (line 61) | @Override
class IsGetterGen (line 67) | static final class IsGetterGen extends GetterGen {
method of (line 73) | static IsGetterGen of(String access) {
method IsGetterGen (line 81) | private IsGetterGen(String access) {
method generateGetter (line 84) | @Override
method generateGetInvoke (line 88) | @Override
class CloneNNGetterGen (line 94) | static final class CloneNNGetterGen extends GetterGen {
method of (line 100) | static GetterGen of(String access) {
method CloneNNGetterGen (line 108) | private CloneNNGetterGen(String access) {
method generateGetter (line 111) | @Override
class CloneGetterGen (line 117) | static final class CloneGetterGen extends GetterGen {
method of (line 123) | static GetterGen of(String access) {
method CloneGetterGen (line 131) | private CloneGetterGen(String access) {
method generateGetter (line 134) | @Override
class CloneCastNNGetterGen (line 140) | static final class CloneCastNNGetterGen extends GetterGen {
method of (line 146) | static GetterGen of(String access) {
method CloneCastNNGetterGen (line 154) | private CloneCastNNGetterGen(String access) {
method generateGetter (line 157) | @Override
class CloneCastGetterGen (line 163) | static final class CloneCastGetterGen extends GetterGen {
method of (line 169) | static GetterGen of(String access) {
method CloneCastGetterGen (line 177) | private CloneCastGetterGen(String access) {
method generateGetter (line 180) | @Override
class CloneArrayGetterGen (line 186) | static final class CloneArrayGetterGen extends GetterGen {
method of (line 193) | static GetterGen of(String access) {
method CloneArrayGetterGen (line 202) | private CloneArrayGetterGen(String access) {
method generateGetter (line 206) | @Override
class Optional8GetterGen (line 213) | static final class Optional8GetterGen extends GetterGen {
method generateGetter (line 215) | @Override
method generateGetInvoke (line 259) | @Override
class OptionalGuavaGetterGen (line 265) | static final class OptionalGuavaGetterGen extends GetterGen {
method generateGetter (line 267) | @Override
method generateGetInvoke (line 292) | @Override
class ManualGetterGen (line 298) | static class ManualGetterGen extends GetterGen {
method generateGetter (line 300) | @Override
class NoGetterGen (line 306) | static class NoGetterGen extends GetterGen {
method generateGetter (line 308) | @Override
method generateGetInvoke (line 312) | @Override
method doGenerateGetter (line 318) | private static List<String> doGenerateGetter(PropertyData prop, String...
FILE: src/main/java/org/joda/beans/gen/PropertyData.java
class PropertyData (line 31) | class PropertyData {
method PropertyData (line 122) | PropertyData(BeanData bean, BeanGenConfig config, int lineIndex) {
method getBean (line 133) | public BeanData getBean() {
method getConfig (line 142) | public BeanGenConfig getConfig() {
method setConfig (line 151) | public void setConfig(BeanGenConfig config) {
method getLineIndex (line 160) | public int getLineIndex() {
method getPropertyName (line 168) | public String getPropertyName() {
method setPropertyName (line 176) | public void setPropertyName(String propertyName) {
method getFieldName (line 184) | public String getFieldName() {
method setFieldName (line 192) | public void setFieldName(String fieldName) {
method getMetaFieldName (line 200) | public String getMetaFieldName() {
method setMetaFieldName (line 208) | public void setMetaFieldName(String metaFieldName) {
method getUpperName (line 216) | public String getUpperName() {
method setUpperName (line 224) | public void setUpperName(String upperName) {
method getType (line 232) | public String getType() {
method setType (line 240) | public void setType(String type) {
method getBuilderType (line 248) | public String getBuilderType() {
method setBuilderType (line 256) | public void setBuilderType(String builderType) {
method getFieldType (line 264) | public String getFieldType() {
method setFieldType (line 272) | public void setFieldType(String fieldType) {
method resolveType (line 279) | public void resolveType() {
method resolveBuilderType (line 306) | public void resolveBuilderType() {
method isFinal (line 334) | public boolean isFinal() {
method setFinal (line 342) | public void setFinal(boolean isFinal) {
method getInitializer (line 350) | public String getInitializer() {
method setInitializer (line 358) | public void setInitializer(String initializer) {
method getAlias (line 366) | public String getAlias() {
method setAlias (line 374) | public void setAlias(String alias) {
method getGetStyle (line 382) | public String getGetStyle() {
method setGetStyle (line 390) | public void setGetStyle(String getStyle) {
method getTypeStyle (line 398) | public String getTypeStyle() {
method setTypeStyle (line 406) | public void setTypeStyle(String typeStyle) {
method getBuilderTypeStyle (line 414) | public String getBuilderTypeStyle() {
method setBuilderTypeStyle (line 422) | public void setBuilderTypeStyle(String builderTypeStyle) {
method getEqualsHashCodeStyle (line 430) | public String getEqualsHashCodeStyle() {
method setEqualsHashCodeStyle (line 438) | public void setEqualsHashCodeStyle(String equalsHashCodeStyle) {
method resolveEqualsHashCodeStyle (line 447) | public void resolveEqualsHashCodeStyle(File file, int lineIndex) {
method getToStringStyle (line 464) | public String getToStringStyle() {
method setToStringStyle (line 472) | public void setToStringStyle(String toStringStyle) {
method resolveToStringStyle (line 481) | public void resolveToStringStyle(File file, int lineIndex) {
method getSetStyle (line 498) | public String getSetStyle() {
method setSetStyle (line 506) | public void setSetStyle(String setStyle) {
method isOverrideGet (line 514) | public boolean isOverrideGet() {
method setOverrideGet (line 522) | public void setOverrideGet(boolean overrideGet) {
method isOverrideSet (line 530) | public boolean isOverrideSet() {
method setOverrideSet (line 538) | public void setOverrideSet(boolean overrideSet) {
method getValidation (line 546) | public String getValidation() {
method setValidation (line 554) | public void setValidation(String validation) {
method resolveValidation (line 561) | public void resolveValidation() {
method isDeprecated (line 571) | public boolean isDeprecated() {
method setDeprecated (line 579) | public void setDeprecated(boolean deprecated) {
method getFirstComment (line 588) | public String getFirstComment() {
method setFirstComment (line 596) | public void setFirstComment(String firstComment) {
method getComments (line 604) | public List<String> getComments() {
method getDeprecatedComment (line 612) | public String getDeprecatedComment() {
method setDeprecatedComment (line 620) | public void setDeprecatedComment(String deprecatedComment) {
method isGenericParamType (line 629) | public boolean isGenericParamType() {
method isGenericWildcardParamType (line 638) | public boolean isGenericWildcardParamType() {
method getGenericParamType (line 647) | public String getGenericParamType() {
method isBeanGenericType (line 657) | public boolean isBeanGenericType() {
method isGeneric (line 666) | public boolean isGeneric() {
method getTypeRaw (line 675) | public String getTypeRaw() {
method getFieldTypeRaw (line 684) | public String getFieldTypeRaw() {
method getTypeGenerics (line 696) | public String getTypeGenerics() {
method getTypeGenericsSimple (line 708) | public String getTypeGenericsSimple() {
method getTypeBeanErased (line 718) | public String getTypeBeanErased() {
method isDerived (line 751) | public boolean isDerived() {
method resolveGetterGen (line 761) | public void resolveGetterGen(File file, int lineIndex) {
method getGetterGen (line 834) | public GetterGen getGetterGen() {
method resolveSetterGen (line 844) | public void resolveSetterGen(File file, int lineIndex) {
method getSetterGen (line 915) | public SetterGen getSetterGen() {
method getSetterScope (line 923) | public String getSetterScope() {
method isBound (line 934) | public boolean isBound() {
method resolveCopyGen (line 944) | public void resolveCopyGen(File file, int lineIndex) {
method getCopyGen (line 979) | public CopyGen getCopyGen() {
method resolveBuilderGen (line 987) | public void resolveBuilderGen() {
method getBuilderGen (line 1005) | public BuilderGen getBuilderGen() {
method isArrayType (line 1015) | public boolean isArrayType() {
method isGenericArrayType (line 1024) | public boolean isGenericArrayType() {
method isCollectionType (line 1033) | public boolean isCollectionType() {
method isSetType (line 1042) | public boolean isSetType() {
method isSortedSetType (line 1051) | public boolean isSortedSetType() {
method isMapType (line 1060) | public boolean isMapType() {
method getStyle (line 1069) | public PropertyStyle getStyle() {
method isValidated (line 1098) | public boolean isValidated() {
method isNotNull (line 1106) | public boolean isNotNull() {
method getNotNullJavadoc (line 1116) | public String getNotNullJavadoc() {
method getValidationMethodName (line 1129) | public String getValidationMethodName() {
method getVarArgsCode (line 1146) | public String getVarArgsCode() {
FILE: src/main/java/org/joda/beans/gen/PropertyGen.java
class PropertyGen (line 29) | class PropertyGen {
method PropertyGen (line 38) | PropertyGen(PropertyData propData) {
method generateConstructorAssign (line 43) | List<String> generateConstructorAssign(String fromBean) {
method generateMetaPropertyConstant (line 48) | List<String> generateMetaPropertyConstant() {
method generateMetaPropertyGetCase (line 77) | List<String> generateMetaPropertyGetCase() {
method generateGetter (line 87) | List<String> generateGetter() {
method generateSetter (line 91) | List<String> generateSetter() {
method generateProperty (line 95) | List<String> generateProperty() {
method generateMetaProperty (line 118) | List<String> generateMetaProperty() {
method generatePropertyGetCase (line 138) | List<String> generatePropertyGetCase() {
method generatePropertySetCase (line 155) | List<String> generatePropertySetCase() {
method generateLambdaGetter (line 174) | String generateLambdaGetter() {
method generateLambdaSetter (line 178) | String generateLambdaSetter() {
method isSpecialInit (line 185) | boolean isSpecialInit() {
method generateInit (line 189) | String generateInit() {
method generateBuilderField (line 193) | List<String> generateBuilderField() {
method generateBuilderConstructorAssign (line 197) | List<String> generateBuilderConstructorAssign(String beanToCopyFrom) {
method generateBuilderFieldGet (line 201) | List<String> generateBuilderFieldGet() {
method generateBuilderFieldSet (line 211) | List<String> generateBuilderFieldSet() {
method generateBuilderFieldName (line 222) | String generateBuilderFieldName() {
method generateBuilderSetMethod (line 226) | List<String> generateBuilderSetMethod() {
method getBuilderType (line 261) | String getBuilderType() {
method generateBuilderSetCollectionMethod (line 265) | private void generateBuilderSetCollectionMethod(List<String> list) {
method readWrite (line 308) | private String readWrite() {
method actualType (line 320) | private String actualType() {
method castObject (line 338) | private String castObject() {
method propertyType (line 343) | private String propertyType() {
method propertyType (line 347) | private String propertyType(String type) {
method getData (line 361) | PropertyData getData() {
method resolveWildcard (line 366) | static String resolveWildcard(String input) {
FILE: src/main/java/org/joda/beans/gen/PropertyParser.java
class PropertyParser (line 26) | class PropertyParser {
method PropertyParser (line 62) | PropertyParser(BeanParser beanParser) {
method parse (line 67) | PropertyGen parse(BeanData beanData, List<String> content, int lineInd...
method parseDerived (line 106) | PropertyGen parseDerived(BeanData beanData, List<String> content, int ...
method parseComments (line 132) | private void parseComments(List<String> content, PropertyData data) {
method makePropertyName (line 150) | private String makePropertyName(String name) {
method makeUpperName (line 157) | private String makeUpperName(String name) {
method parseAnnotationStart (line 162) | private int parseAnnotationStart(List<String> content, int lineIndex) {
method parseCodeIndex (line 170) | private int parseCodeIndex(List<String> content) {
method parseAlias (line 187) | private String parseAlias(List<String> content) {
method parseGetStyle (line 196) | private String parseGetStyle(List<String> content) {
method parseSetStyle (line 205) | private String parseSetStyle(List<String> content) {
method parseOverrideGet (line 214) | private boolean parseOverrideGet(List<String> content) {
method parseOverrideSet (line 223) | private boolean parseOverrideSet(List<String> content) {
method parseTypeStyle (line 232) | private String parseTypeStyle(List<String> content) {
method parseBuilderTypeStyle (line 241) | private String parseBuilderTypeStyle(List<String> content) {
method parseEqualsHashCodeStyle (line 250) | private String parseEqualsHashCodeStyle(List<String> content) {
method parseToStringStyle (line 259) | private String parseToStringStyle(List<String> content) {
method parseValidation (line 268) | private String parseValidation(List<String> content) {
method parseDeprecated (line 277) | private boolean parseDeprecated(List<String> content) {
method parseFieldName (line 288) | private String parseFieldName(List<String> content) {
method parseFinal (line 299) | private boolean parseFinal(List<String> content) {
method parseFieldType (line 313) | private String parseFieldType(List<String> content) {
method parseFieldDefinition (line 346) | private String parseFieldDefinition(List<String> content) {
method parseFieldInitializer (line 357) | private String parseFieldInitializer(List<String> content) {
method parseMethodNameAsPropertyName (line 373) | private String parseMethodNameAsPropertyName(List<String> content) {
method parseMethodType (line 381) | private String parseMethodType(List<String> content) {
method parseMethodDefinition (line 386) | private String[] parseMethodDefinition(List<String> content) {
method parseComment (line 419) | private List<String> parseComment(List<String> content, String propert...
FILE: src/main/java/org/joda/beans/gen/SetterGen.java
class SetterGen (line 24) | abstract class SetterGen {
method isSetterGenerated (line 32) | abstract boolean isSetterGenerated(PropertyData prop);
method generateSetter (line 41) | abstract List<String> generateSetter(String indent, PropertyData prop);
method generateSetInvoke (line 51) | String generateSetInvoke(PropertyData prop, String newValue) {
class SetSetterGen (line 56) | static final class SetSetterGen extends SetterGen {
method of (line 62) | static SetSetterGen of(String access) {
method SetSetterGen (line 70) | private SetSetterGen(String access) {
method isSetterGenerated (line 73) | @Override
method generateSetter (line 77) | @Override
class PatternSetterGen (line 107) | static class PatternSetterGen extends SetterGen {
method PatternSetterGen (line 110) | PatternSetterGen(String setPattern) {
method PatternSetterGen (line 113) | PatternSetterGen(String setPattern, String access) {
method isSetterGenerated (line 117) | @Override
method generateSetter (line 121) | @Override
class NoSetterGen (line 160) | static class NoSetterGen extends SetterGen {
method isSetterGenerated (line 162) | @Override
method generateSetter (line 166) | @Override
class FieldSetterGen (line 172) | static class FieldSetterGen extends SetterGen {
method isSetterGenerated (line 174) | @Override
method generateSetter (line 178) | @Override
method generateSetInvoke (line 182) | @Override
class ObservableSetterGen (line 188) | static class ObservableSetterGen extends SetterGen {
method isSetterGenerated (line 190) | @Override
method generateSetter (line 194) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicBean.java
class BasicBean (line 27) | public abstract class BasicBean implements Bean {
method clone (line 34) | @Override
method equals (line 47) | @Override
method hashCode (line 62) | @Override
method toString (line 74) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicBeanBuilder.java
class BasicBeanBuilder (line 32) | public class BasicBeanBuilder<T extends Bean>
method BasicBeanBuilder (line 45) | public BasicBeanBuilder(T bean) {
method getTargetBean (line 55) | protected T getTargetBean() {
method get (line 60) | @Override
method get (line 65) | @Override
method set (line 71) | @Override
method set (line 76) | @Override
method build (line 82) | @Override
method validate (line 93) | protected void validate(T bean) {
method toString (line 103) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicImmutableBeanBuilder.java
class BasicImmutableBeanBuilder (line 33) | public abstract class BasicImmutableBeanBuilder<T extends Bean>
method BasicImmutableBeanBuilder (line 46) | public BasicImmutableBeanBuilder(MetaBean meta) {
method get (line 51) | @Override
method get (line 56) | @Override
method set (line 63) | @Override
method toString (line 75) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicMetaBean.java
class BasicMetaBean (line 23) | public abstract class BasicMetaBean implements MetaBean {
method toString (line 30) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicMetaProperty.java
class BasicMetaProperty (line 25) | public abstract class BasicMetaProperty<P> implements MetaProperty<P> {
method BasicMetaProperty (line 35) | protected BasicMetaProperty(String propertyName) {
method name (line 43) | @Override
method equals (line 49) | @Override
method hashCode (line 56) | @Override
method toString (line 66) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicProperty.java
class BasicProperty (line 34) | public final class BasicProperty<P> implements Property<P> {
method of (line 49) | public static <P> BasicProperty<P> of(Bean bean, MetaProperty<P> metaP...
method BasicProperty (line 59) | private BasicProperty(Bean bean, MetaProperty<P> metaProperty) {
method bean (line 65) | @SuppressWarnings("unchecked")
method metaProperty (line 71) | @Override
method equals (line 77) | @Override
method hashCode (line 85) | @Override
method toString (line 95) | @Override
FILE: src/main/java/org/joda/beans/impl/BasicPropertyMap.java
class BasicPropertyMap (line 34) | public final class BasicPropertyMap
method of (line 46) | public static BasicPropertyMap of(Bean bean) {
method BasicPropertyMap (line 55) | private BasicPropertyMap(Bean bean) {
method size (line 60) | @Override
method containsKey (line 65) | @Override
method get (line 70) | @Override
method keySet (line 75) | @Override
method entrySet (line 80) | @Override
method flatten (line 118) | public Map<String, Object> flatten() {
FILE: src/main/java/org/joda/beans/impl/BufferingBeanBuilder.java
class BufferingBeanBuilder (line 35) | public class BufferingBeanBuilder<T extends Bean>
method of (line 54) | public static BufferingBeanBuilder<?> of(MetaBean metaBean) {
method BufferingBeanBuilder (line 64) | public BufferingBeanBuilder(MetaBean metaBean) {
method getMetaBean (line 74) | public MetaBean getMetaBean() {
method getBuffer (line 85) | public ConcurrentMap<MetaProperty<?>, Object> getBuffer() {
method get (line 96) | @Override
method get (line 107) | @Override
method set (line 114) | @Override
method set (line 119) | @Override
method build (line 128) | @Override
method toString (line 144) | @Override
FILE: src/main/java/org/joda/beans/impl/RecordBean.java
type RecordBean (line 52) | public interface RecordBean<T extends RecordBean<T>> extends ImmutableBe...
method register (line 68) | public static <T extends Record & ImmutableBean> MetaBean register(Cla...
method validateRecordClass (line 78) | private static <T extends Record & ImmutableBean> void validateRecordC...
method metaBean (line 90) | @Override
FILE: src/main/java/org/joda/beans/impl/RecordBeanBuilder.java
class RecordBeanBuilder (line 27) | final class RecordBeanBuilder<T extends ImmutableBean> implements BeanBu...
method RecordBeanBuilder (line 32) | RecordBeanBuilder(RecordMetaBean<T> metaBean, Object[] data) {
method get (line 38) | @Override
method get (line 43) | @Override
method set (line 48) | @Override
method set (line 54) | @Override
method build (line 59) | @Override
method toString (line 69) | @Override
FILE: src/main/java/org/joda/beans/impl/RecordMetaBean.java
class RecordMetaBean (line 42) | final class RecordMetaBean<T extends ImmutableBean> extends BasicMetaBea...
method RecordMetaBean (line 50) | RecordMetaBean(Class<T> beanType, MethodHandles.Lookup lookup) {
method findGetterHandle (line 73) | private MethodHandle findGetterHandle(RecordComponent recordComponent,...
method findConstructorHandle (line 83) | private static MethodHandle findConstructorHandle(
method index (line 104) | int index(String propertyName) {
method build (line 113) | T build(Object[] data) {
method isBuildable (line 125) | @Override
method builder (line 130) | @Override
method beanType (line 136) | @Override
method metaPropertyMap (line 141) | @SuppressWarnings({"rawtypes", "unchecked"})
FILE: src/main/java/org/joda/beans/impl/RecordMetaProperty.java
class RecordMetaProperty (line 36) | final class RecordMetaProperty<P> implements MetaProperty<P> {
method RecordMetaProperty (line 43) | RecordMetaProperty(
method metaBean (line 56) | @Override
method name (line 61) | @Override
method declaringType (line 66) | @Override
method propertyType (line 71) | @Override
method propertyGenericType (line 77) | @Override
method style (line 82) | @Override
method annotations (line 87) | @Override
method get (line 92) | @Override
method set (line 102) | @Override
method equals (line 108) | @Override
method hashCode (line 115) | @Override
method toString (line 125) | @Override
method getConstructorIndex (line 130) | int getConstructorIndex() {
FILE: src/main/java/org/joda/beans/impl/StandaloneMetaProperty.java
class StandaloneMetaProperty (line 35) | public final class StandaloneMetaProperty<P> extends BasicMetaProperty<P> {
method of (line 60) | public static <R> StandaloneMetaProperty<R> of(String propertyName, Me...
method of (line 74) | public static <R> StandaloneMetaProperty<R> of(String propertyName, Me...
method StandaloneMetaProperty (line 87) | private StandaloneMetaProperty(String propertyName, MetaBean metaBean,...
method metaBean (line 98) | @Override
method declaringType (line 103) | @Override
method propertyType (line 108) | @Override
method propertyGenericType (line 113) | @Override
method style (line 118) | @Override
method annotations (line 124) | @Override
method get (line 130) | @Override
method set (line 135) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectBean.java
class DirectBean (line 26) | public abstract class DirectBean implements Bean {
method clone (line 28) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectBeanBuilder.java
class DirectBeanBuilder (line 28) | public class DirectBeanBuilder<T extends Bean> extends BasicBeanBuilder<...
method DirectBeanBuilder (line 35) | public DirectBeanBuilder(T bean) {
method validate (line 40) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectFieldsBeanBuilder.java
class DirectFieldsBeanBuilder (line 30) | public abstract class DirectFieldsBeanBuilder<T extends Bean>
method DirectFieldsBeanBuilder (line 36) | protected DirectFieldsBeanBuilder() {
method get (line 40) | @Override
method get (line 45) | @Override
method set (line 52) | @Override
method toString (line 71) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectMetaBean.java
class DirectMetaBean (line 29) | public abstract class DirectMetaBean implements MetaBean {
method isBuildable (line 37) | @Override
method metaProperty (line 42) | @SuppressWarnings("unchecked")
method metaPropertyNotFound (line 52) | @SuppressWarnings("unchecked")
method metaPropertyGet (line 69) | protected MetaProperty<?> metaPropertyGet(String propertyName) {
method propertyGet (line 83) | protected Object propertyGet(Bean bean, String propertyName, boolean q...
method propertySet (line 100) | protected void propertySet(Bean bean, String propertyName, Object valu...
method validate (line 114) | protected void validate(Bean bean) {
method toString (line 122) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectMetaProperty.java
class DirectMetaProperty (line 46) | public final class DirectMetaProperty<P> extends BasicMetaProperty<P> {
method ofReadWrite (line 73) | public static <P> DirectMetaProperty<P> ofReadWrite(
method ofReadOnly (line 89) | public static <P> DirectMetaProperty<P> ofReadOnly(
method ofWriteOnly (line 105) | public static <P> DirectMetaProperty<P> ofWriteOnly(
method ofReadOnlyBuildable (line 121) | public static <P> DirectMetaProperty<P> ofReadOnlyBuildable(
method ofDerived (line 137) | public static <P> DirectMetaProperty<P> ofDerived(
method ofImmutable (line 153) | public static <P> DirectMetaProperty<P> ofImmutable(
method findField (line 159) | private static Field findField(MetaBean metaBean, String propertyName) {
method findMethod (line 175) | private static AccessibleObject findMethod(MetaBean metaBean, String p...
method DirectMetaProperty (line 198) | private DirectMetaProperty(MetaBean metaBean, String propertyName, Cla...
method metaBean (line 219) | @Override
method declaringType (line 224) | @Override
method propertyType (line 229) | @Override
method propertyGenericType (line 234) | @Override
method propertyResolvedType (line 239) | @Override
method style (line 244) | @Override
method annotation (line 249) | @Override
method annotationOpt (line 261) | @Override
method annotations (line 268) | @Override
method get (line 277) | @SuppressWarnings("unchecked")
method set (line 284) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectMetaPropertyMap.java
class DirectMetaPropertyMap (line 38) | @SuppressWarnings("rawtypes")
method DirectMetaPropertyMap (line 57) | @SuppressWarnings("unchecked")
method size (line 77) | @Override
method isEmpty (line 82) | @Override
method get (line 87) | @SuppressWarnings("unchecked")
method containsKey (line 96) | @Override
method containsValue (line 102) | @Override
method put (line 109) | @Override
method remove (line 114) | @Override
method putAll (line 119) | @Override
method clear (line 124) | @Override
method keySet (line 130) | @Override
method values (line 135) | @Override
method entrySet (line 140) | @Override
class Keys (line 149) | private static final class Keys extends AbstractSet<String> {
method Keys (line 152) | private Keys(Entry<String, MetaProperty<?>>[] metaProperties) {
method iterator (line 156) | @Override
method size (line 175) | @Override
class Values (line 184) | private static final class Values extends AbstractCollection<MetaPrope...
method Values (line 187) | private Values(Entry<String, MetaProperty<?>>[] metaProperties) {
method iterator (line 191) | @Override
method size (line 210) | @Override
class Entries (line 219) | private static final class Entries extends AbstractSet<Entry<String, M...
method Entries (line 222) | private Entries(Entry<String, MetaProperty<?>>[] metaProperties) {
method iterator (line 226) | @Override
method size (line 245) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/DirectPrivateBeanBuilder.java
class DirectPrivateBeanBuilder (line 30) | public abstract class DirectPrivateBeanBuilder<T extends Bean>
method DirectPrivateBeanBuilder (line 36) | protected DirectPrivateBeanBuilder() {
method get (line 40) | @Override
method get (line 45) | @Override
method set (line 52) | @Override
method toString (line 71) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/MinimalMetaBean.java
class MinimalMetaBean (line 44) | public final class MinimalMetaBean<T extends Bean> implements TypedMetaB...
method of (line 69) | @SafeVarargs
method of (line 95) | public static <B extends Bean> MinimalMetaBean<B> of(
method MinimalMetaBean (line 116) | private MinimalMetaBean(
method MinimalMetaBean (line 174) | private MinimalMetaBean(
method withAlias (line 198) | public MinimalMetaBean<T> withAlias(String alias, String realName) {
method isBuildable (line 208) | @Override
method builder (line 213) | @Override
method beanType (line 218) | @Override
method metaProperty (line 223) | @Override
method metaPropertyMap (line 233) | @Override
method equals (line 239) | @Override
method hashCode (line 245) | @Override
method toString (line 255) | @Override
FILE: src/main/java/org/joda/beans/impl/direct/MinimalMetaProperty.java
class MinimalMetaProperty (line 40) | final class MinimalMetaProperty<P> extends BasicMetaProperty<P> {
method MinimalMetaProperty (line 69) | @SuppressWarnings("unchecked")
method MinimalMetaProperty (line 99) | @SuppressWarnings("unchecked")
method createResolvedTypeFunction (line 124) | private Function<Class<?>, ResolvedType> createResolvedTypeFunction() {
method metaBean (line 133) | @Override
method declaringType (line 138) | @Override
method propertyType (line 143) | @Override
method propertyGenericType (line 148) | @Override
method propertyResolvedType (line 153) | @Override
method style (line 158) | @Override
method annotations (line 163) | @Override
method get (line 169) | @Override
method set (line 181) | @Override
FILE: src/main/java/org/joda/beans/impl/flexi/FlexiBean.java
class FlexiBean (line 45) | public final class FlexiBean implements DynamicBean, Serializable {
method meta (line 68) | public static DynamicMetaBean meta() {
method FlexiBean (line 76) | public FlexiBean() {
method FlexiBean (line 84) | public FlexiBean(FlexiBean copyFrom) {
method readResolve (line 89) | private Object readResolve() throws ObjectStreamException {
method dataWritable (line 99) | private Map<String, Object> dataWritable() {
method size (line 112) | public int size() {
method contains (line 122) | public boolean contains(String propertyName) {
method get (line 134) | public Object get(String propertyName) {
method get (line 149) | public <T> T get(String propertyName, Class<T> type) {
method getString (line 162) | public String getString(String propertyName) {
method getBoolean (line 175) | public boolean getBoolean(String propertyName) {
method getInt (line 187) | public int getInt(String propertyName) {
method getInt (line 199) | public int getInt(String propertyName, int defaultValue) {
method getLong (line 212) | public long getLong(String propertyName) {
method getLong (line 224) | public long getLong(String propertyName, long defaultValue) {
method getDouble (line 237) | public double getDouble(String propertyName) {
method getDouble (line 249) | public double getDouble(String propertyName, double defaultValue) {
method append (line 264) | public FlexiBean append(String propertyName, Object newValue) {
method set (line 277) | public void set(String propertyName, Object newValue) {
method put (line 290) | public Object put(String propertyName, Object newValue) {
method putAll (line 304) | public void putAll(Map<String, ? extends Object> map) {
method putAll (line 326) | public void putAll(FlexiBean other) {
method remove (line 343) | public void remove(String propertyName) {
method clear (line 350) | public void clear() {
method propertyExists (line 363) | public boolean propertyExists(String propertyName) {
method propertyGet (line 373) | public Object propertyGet(String propertyName) {
method propertySet (line 386) | public void propertySet(String propertyName, Object newValue) {
method metaBean (line 391) | @Override
method property (line 396) | @Override
method propertyNames (line 401) | @Override
method propertyDefine (line 406) | @Override
method propertyRemove (line 413) | @Override
method toMap (line 426) | public Map<String, Object> toMap() {
method clone (line 440) | @Override
method equals (line 451) | @Override
method hashCode (line 463) | @Override
method toString (line 475) | @Override
FILE: src/main/java/org/joda/beans/impl/flexi/FlexiBeanBuilder.java
class FlexiBeanBuilder (line 24) | class FlexiBeanBuilder implements BeanBuilder<FlexiBean> {
method FlexiBeanBuilder (line 36) | FlexiBeanBuilder(FlexiBean bean) {
method get (line 41) | @Override
method get (line 47) | @Override
method set (line 55) | @Override
method set (line 61) | @Override
method build (line 68) | @Override
method toString (line 74) | @Override
FILE: src/main/java/org/joda/beans/impl/flexi/FlexiMetaBean.java
class FlexiMetaBean (line 32) | class FlexiMetaBean implements DynamicMetaBean {
method FlexiMetaBean (line 44) | FlexiMetaBean(FlexiBean bean) {
method isBuildable (line 49) | @Override
method builder (line 54) | @Override
method beanType (line 59) | @Override
method metaPropertyCount (line 64) | @Override
method metaPropertyExists (line 69) | @Override
method metaProperty (line 74) | @Override
method metaPropertyIterable (line 80) | @Override
method metaPropertyMap (line 105) | @Override
method metaPropertyDefine (line 119) | @Override
method metaPropertyRemove (line 124) | @Override
method annotations (line 129) | @Override
method toString (line 139) | @Override
FILE: src/main/java/org/joda/beans/impl/flexi/FlexiMetaProperty.java
class FlexiMetaProperty (line 30) | final class FlexiMetaProperty extends BasicMetaProperty<Object> {
method of (line 41) | static FlexiMetaProperty of(MetaBean metaBean, String propertyName) {
method FlexiMetaProperty (line 51) | private FlexiMetaProperty(MetaBean metaBean, String propertyName) {
method metaBean (line 57) | @Override
method declaringType (line 62) | @Override
method propertyType (line 67) | @Override
method propertyGenericType (line 72) | @Override
method style (line 77) | @Override
method annotations (line 82) | @Override
method get (line 88) | @Override
method set (line 93) | @Override
FILE: src/main/java/org/joda/beans/impl/light/LightBeanBuilder.java
class LightBeanBuilder (line 29) | class LightBeanBuilder<B extends Bean>
method LightBeanBuilder (line 44) | LightBeanBuilder(LightMetaBean<B> metaBean, Object[] data) {
method get (line 50) | @Override
method get (line 55) | @Override
method set (line 62) | @Override
method set (line 67) | @Override
method index (line 73) | private int index(MetaProperty<?> metaProperty) {
method build (line 85) | @Override
method toString (line 96) | @Override
FILE: src/main/java/org/joda/beans/impl/light/LightMetaBean.java
class LightMetaBean (line 58) | public final class LightMetaBean<T extends Bean> implements TypedMetaBea...
method of (line 95) | public static <B extends Bean> LightMetaBean<B> of(Class<B> beanType, ...
method fieldNames (line 102) | private static String[] fieldNames(Class<?> beanType) {
method of (line 129) | public static <B extends Bean> LightMetaBean<B> of(
method LightMetaBean (line 141) | private LightMetaBean(
method LightMetaBean (line 232) | private LightMetaBean(
method findGetMethod (line 247) | private static Method findGetMethod(Class<? extends Bean> beanType, St...
method findSetMethod (line 260) | private static Method findSetMethod(Class<? extends Bean> beanType, St...
method findConstructorHandle (line 284) | private static <T extends Bean> MethodHandle findConstructorHandle(
method findConstructor (line 304) | private static <T extends Bean> Constructor<T> findConstructor(Class<T...
method findConstructorFallback (line 315) | private static <T extends Bean> Constructor<T> findConstructorFallback...
method buildConstructionData (line 345) | private static Object[] buildConstructionData(Constructor<?> construct...
method build (line 370) | @SuppressWarnings("unchecked")
method build (line 384) | T build(Object[] args) {
method withAlias (line 400) | public LightMetaBean<T> withAlias(String alias, String realName) {
method isBuildable (line 410) | @Override
method builder (line 415) | @Override
method beanType (line 420) | @Override
method metaProperty (line 425) | @Override
method metaPropertyMap (line 435) | @Override
method equals (line 441) | @Override
method hashCode (line 447) | @Override
method toString (line 457) | @Override
FILE: src/main/java/org/joda/beans/impl/light/LightMetaProperty.java
class LightMetaProperty (line 42) | final class LightMetaProperty<P> extends BasicMetaProperty<P> {
method of (line 73) | @SuppressWarnings("unchecked")
method of (line 117) | @SuppressWarnings("unchecked")
method calculateStyle (line 155) | private static PropertyStyle calculateStyle(MetaBean metaBean, MethodH...
method of (line 171) | @SuppressWarnings("unchecked")
method LightMetaProperty (line 209) | LightMetaProperty(
method metaBean (line 237) | @Override
method declaringType (line 242) | @Override
method propertyType (line 247) | @Override
method propertyGenericType (line 252) | @Override
method propertyResolvedType (line 257) | @Override
method style (line 262) | @Override
method annotations (line 267) | @Override
method get (line 273) | @Override
method set (line 284) | @Override
method getConstructorIndex (line 298) | int getConstructorIndex() {
FILE: src/main/java/org/joda/beans/impl/light/PropertyGetter.java
type PropertyGetter (line 23) | interface PropertyGetter {
method get (line 31) | Object get(Bean bean);
FILE: src/main/java/org/joda/beans/impl/light/PropertySetter.java
type PropertySetter (line 23) | interface PropertySetter {
method set (line 31) | void set(Bean bean, Object value);
FILE: src/main/java/org/joda/beans/impl/map/MapBean.java
class MapBean (line 37) | public class MapBean extends HashMap<String, Object> implements DynamicB...
method meta (line 51) | public static DynamicMetaBean meta() {
method MapBean (line 59) | public MapBean() {
method MapBean (line 67) | private MapBean(Map<String, Object> map) {
method metaBean (line 72) | @Override
method property (line 77) | @Override
method propertyNames (line 82) | @Override
method propertyDefine (line 87) | @Override
method propertyRemove (line 94) | @Override
method clone (line 99) | @Override
method toString (line 112) | @Override
FILE: src/main/java/org/joda/beans/impl/map/MapBeanBuilder.java
class MapBeanBuilder (line 24) | class MapBeanBuilder implements BeanBuilder<MapBean> {
method MapBeanBuilder (line 36) | MapBeanBuilder(MapBean bean) {
method get (line 41) | @Override
method get (line 47) | @Override
method set (line 55) | @Override
method set (line 61) | @Override
method build (line 68) | @Override
method toString (line 74) | @Override
FILE: src/main/java/org/joda/beans/impl/map/MapBeanMetaProperty.java
class MapBeanMetaProperty (line 30) | final class MapBeanMetaProperty extends BasicMetaProperty<Object> {
method of (line 41) | static MapBeanMetaProperty of(MetaBean metaBean, String propertyName) {
method MapBeanMetaProperty (line 51) | private MapBeanMetaProperty(MetaBean metaBean, String propertyName) {
method metaBean (line 57) | @Override
method declaringType (line 62) | @Override
method propertyType (line 67) | @Override
method propertyGenericType (line 72) | @Override
method style (line 77) | @Override
method annotations (line 82) | @Override
method get (line 88) | @Override
method set (line 93) | @Override
FILE: src/main/java/org/joda/beans/impl/map/MapMetaBean.java
class MapMetaBean (line 32) | class MapMetaBean implements DynamicMetaBean {
method MapMetaBean (line 44) | MapMetaBean(MapBean bean) {
method isBuildable (line 49) | @Override
method builder (line 54) | @Override
method beanType (line 59) | @Override
method metaPropertyCount (line 64) | @Override
method metaPropertyExists (line 69) | @Override
method metaProperty (line 74) | @Override
method metaPropertyIterable (line 80) | @Override
method metaPropertyMap (line 102) | @Override
method metaPropertyDefine (line 113) | @Override
method metaPropertyRemove (line 118) | @Override
method annotations (line 123) | @Override
method toString (line 133) | @Override
FILE: src/main/java/org/joda/beans/impl/reflection/ReflectiveMetaBean.java
class ReflectiveMetaBean (line 42) | public final class ReflectiveMetaBean<T extends Bean> implements TypedMe...
method of (line 59) | public static <B extends Bean> ReflectiveMetaBean<B> of(Class<B> beanC...
method ReflectiveMetaBean (line 69) | private ReflectiveMetaBean(Class<T> beanType, String[] propertyNames) {
method isBuildable (line 81) | @Override
method builder (line 91) | @Override
method beanType (line 101) | @Override
method metaPropertyMap (line 106) | @Override
method equals (line 112) | @Override
method hashCode (line 118) | @Override
method toString (line 128) | @Override
FILE: src/main/java/org/joda/beans/impl/reflection/ReflectiveMetaProperty.java
class ReflectiveMetaProperty (line 44) | final class ReflectiveMetaProperty<P> extends BasicMetaProperty<P> {
method ReflectiveMetaProperty (line 64) | @SuppressWarnings({"unchecked", "null"})
method findGetMethod (line 93) | private static Method findGetMethod(Class<? extends Bean> beanType, St...
method findSetMethod (line 106) | private static Method findSetMethod(Class<? extends Bean> beanType, St...
method setMetaBean (line 133) | void setMetaBean(MetaBean metaBean) {
method metaBean (line 138) | @Override
method declaringType (line 143) | @Override
method propertyType (line 148) | @Override
method propertyGenericType (line 153) | @Override
method style (line 161) | @Override
method annotations (line 167) | @Override
method get (line 176) | @Override
method set (line 194) | @SuppressWarnings("null")
FILE: src/main/java/org/joda/beans/ser/CollectSerIteratorFactory.java
class CollectSerIteratorFactory (line 32) | public class CollectSerIteratorFactory extends GuavaSerIteratorFactory {
method create (line 42) | @Override
method createChild (line 63) | @Override
method createIterable (line 85) | @Override
method createIterable (line 100) | @Override
method grid (line 118) | public static SerIterable grid(Class<?> valueType, List<Class<?>> valu...
method grid (line 185) | @SuppressWarnings("rawtypes")
FILE: src/main/java/org/joda/beans/ser/DefaultDeserializer.java
class DefaultDeserializer (line 27) | public class DefaultDeserializer implements SerDeserializer {
method DefaultDeserializer (line 37) | protected DefaultDeserializer() {
method findMetaBean (line 41) | @Override
method createBuilder (line 46) | @Override
method findMetaProperty (line 51) | @Override
method setValue (line 56) | @Override
method build (line 61) | @Override
method toString (line 67) | @Override
FILE: src/main/java/org/joda/beans/ser/GuavaSerIteratorFactory.java
class GuavaSerIteratorFactory (line 54) | public class GuavaSerIteratorFactory extends SerIteratorFactory {
method create (line 64) | @Override
method createChild (line 107) | @Override
method createIterable (line 153) | @Override
method createIterable (line 172) | @Override
method biMap (line 247) | public static SerIterable biMap(Class<?> keyType, Class<?> valueType, ...
method multiset (line 259) | public static SerIterable multiset(Class<?> valueType, List<Class<?>> ...
method sortedMultiset (line 271) | @SuppressWarnings({"rawtypes", "unchecked"})
method multiset (line 278) | private static SerIterable multiset(Class<?> valueType, List<Class<?>>...
method multiset (line 324) | @SuppressWarnings("rawtypes")
method listMultimap (line 392) | public static SerIterable listMultimap(Class<?> keyType, Class<?> valu...
method setMultimap (line 446) | public static SerIterable setMultimap(Class<?> keyType, Class<?> value...
method multimap (line 502) | @SuppressWarnings("rawtypes")
method table (line 588) | public static SerIterable table(Class<?> rowType, Class<?> colType, Cl...
method table (line 653) | @SuppressWarnings("rawtypes")
method biMap (line 743) | @SuppressWarnings("rawtypes")
method immutableList (line 819) | public static SerIterable immutableList(Class<?> valueType, List<Class...
method immutableSortedSet (line 861) | public static SerIterable immutableSortedSet(Class<?> valueType, List<...
method immutableSet (line 903) | public static SerIterable immutableSet(Class<?> valueType, List<Class<...
method immutableMap (line 938) | static SerIterable immutableMap(Class<?> keyType, Class<?> valueType, ...
method immutableSortedMap (line 984) | static SerIterable immutableSortedMap(Class<?> keyType, Class<?> value...
FILE: src/main/java/org/joda/beans/ser/JodaBeanMimeType.java
class JodaBeanMimeType (line 21) | public final class JodaBeanMimeType {
method JodaBeanMimeType (line 39) | private JodaBeanMimeType() {
FILE: src/main/java/org/joda/beans/ser/JodaBeanSer.java
class JodaBeanSer (line 43) | public final class JodaBeanSer {
method JodaBeanSer (line 107) | private JodaBeanSer(String indent, String newLine, StringConvert conve...
method getIndent (line 132) | public String getIndent() {
method withIndent (line 142) | public JodaBeanSer withIndent(String indent) {
method getNewLine (line 153) | public String getNewLine() {
method withNewLine (line 163) | public JodaBeanSer withNewLine(String newLine) {
method getConverter (line 176) | public StringConvert getConverter() {
method withConverter (line 188) | public JodaBeanSer withConverter(StringConvert converter) {
method getIteratorFactory (line 199) | public SerIteratorFactory getIteratorFactory() {
method withIteratorFactory (line 209) | public JodaBeanSer withIteratorFactory(SerIteratorFactory iteratorFact...
method isShortTypes (line 220) | public boolean isShortTypes() {
method withShortTypes (line 230) | public JodaBeanSer withShortTypes(boolean shortTypes) {
method getDeserializers (line 242) | public SerDeserializers getDeserializers() {
method withDeserializers (line 256) | public JodaBeanSer withDeserializers(SerDeserializers deserializers) {
method isIncludeDerived (line 270) | public boolean isIncludeDerived() {
method withIncludeDerived (line 284) | public JodaBeanSer withIncludeDerived(boolean includeDerived) {
method getBeanValueClasses (line 296) | public Set<Class<? extends ImmutableBean>> getBeanValueClasses() {
method withBeanValueClasses (line 307) | public JodaBeanSer withBeanValueClasses(Set<Class<? extends ImmutableB...
method getJsonNumberFormat (line 320) | public JodaBeanJsonNumberFormat getJsonNumberFormat() {
method withJsonNumberFormat (line 331) | public JodaBeanSer withJsonNumberFormat(JodaBeanJsonNumberFormat jsonN...
method isSerialized (line 344) | public boolean isSerialized(MetaProperty<?> prop) {
method smartReader (line 358) | public JodaBeanSmartReader smartReader() {
method binWriter (line 370) | public JodaBeanBinWriter binWriter() {
method binWriter (line 383) | public JodaBeanBinWriter binWriter(JodaBeanBinFormat format) {
method binWriterReferencing (line 404) | @Deprecated
method binReader (line 416) | public JodaBeanBinReader binReader() {
method xmlWriter (line 428) | public JodaBeanXmlWriter xmlWriter() {
method xmlReader (line 439) | public JodaBeanXmlReader xmlReader() {
method jsonWriter (line 451) | public JodaBeanJsonWriter jsonWriter() {
method jsonReader (line 462) | public JodaBeanJsonReader jsonReader() {
method simpleJsonWriter (line 483) | public JodaBeanSimpleJsonWriter simpleJsonWriter() {
method simpleJsonReader (line 496) | public JodaBeanSimpleJsonReader simpleJsonReader() {
method simpleMapWriter (line 508) | public JodaBeanSimpleMapWriter simpleMapWriter() {
method simpleMapReader (line 519) | public JodaBeanSimpleMapReader simpleMapReader() {
method toString (line 524) | @Override
FILE: src/main/java/org/joda/beans/ser/JodaBeanSerFormat.java
type JodaBeanSerFormat (line 27) | enum JodaBeanSerFormat {
method read (line 55) | <T> T read(InputStream stream, Class<T> rootType, JodaBeanSer settings) {
method read (line 83) | private static void read(InputStream buffered, int count) {
FILE: src/main/java/org/joda/beans/ser/JodaBeanSmartReader.java
class JodaBeanSmartReader (line 32) | public class JodaBeanSmartReader {
method JodaBeanSmartReader (line 44) | JodaBeanSmartReader(JodaBeanSer settings) {
method isKnownFormat (line 60) | public boolean isKnownFormat(byte[] input) {
method isKnownFormat (line 77) | public boolean isKnownFormat(InputStream input) {
method determineFormat (line 83) | private JodaBeanSerFormat determineFormat(byte[] input) {
method isXml (line 109) | private boolean isXml(byte[] bytes, int pos) {
method isJson (line 114) | private boolean isJson(byte[] bytes, int pos) {
method determineFormat (line 127) | private JodaBeanSerFormat determineFormat(InputStream input) {
method read (line 144) | private static int read(InputStream in, byte[] buf, int len) throws IO...
method read (line 167) | public Bean read(byte[] input) {
method read (line 183) | public <T> T read(byte[] input, Class<T> rootType) {
method read (line 199) | public Bean read(InputStream input) {
method read (line 216) | public <T> T read(InputStream input, Class<T> rootType) {
method buffer (line 225) | private BufferedInputStream buffer(InputStream input) {
FILE: src/main/java/org/joda/beans/ser/LenientDeserializer.java
class LenientDeserializer (line 26) | class LenientDeserializer extends DefaultDeserializer {
method LenientDeserializer (line 36) | protected LenientDeserializer() {
method findMetaProperty (line 40) | @Override
FILE: src/main/java/org/joda/beans/ser/LinkedByteArrayOutputStream.java
class LinkedByteArrayOutputStream (line 36) | public class LinkedByteArrayOutputStream extends OutputStream {
class ByteSegment (line 39) | private static final class ByteSegment {
method ByteSegment (line 44) | private ByteSegment(byte[] bytes) {
method LinkedByteArrayOutputStream (line 59) | public LinkedByteArrayOutputStream() {
method write (line 68) | @Override
method write (line 88) | @Override
method write (line 117) | @Override
method writeTo (line 128) | public void writeTo(OutputStream out) throws IOException {
method toByteArray (line 143) | public byte[] toByteArray() {
method size (line 158) | public int size() {
method flush (line 165) | @Override
method close (line 172) | @Override
method toString (line 179) | @Override
FILE: src/main/java/org/joda/beans/ser/SerCategory.java
type SerCategory (line 21) | public enum SerCategory {
FILE: src/main/java/org/joda/beans/ser/SerDeserializer.java
type SerDeserializer (line 89) | public interface SerDeserializer {
method findMetaBean (line 99) | public abstract MetaBean findMetaBean(Class<?> beanType);
method createBuilder (line 110) | public abstract BeanBuilder<?> createBuilder(Class<?> beanType, MetaBe...
method findMetaProperty (line 127) | public abstract MetaProperty<?> findMetaProperty(Class<?> beanType, Me...
method setValue (line 136) | public abstract void setValue(BeanBuilder<?> builder, MetaProperty<?> ...
method build (line 149) | public abstract Object build(Class<?> beanType, BeanBuilder<?> builder);
FILE: src/main/java/org/joda/beans/ser/SerDeserializerProvider.java
type SerDeserializerProvider (line 29) | public interface SerDeserializerProvider {
method findDeserializer (line 40) | public abstract SerDeserializer findDeserializer(Class<?> beanType);
FILE: src/main/java/org/joda/beans/ser/SerDeserializers.java
class SerDeserializers (line 56) | public final class SerDeserializers {
method SerDeserializers (line 97) | public SerDeserializers() {
method SerDeserializers (line 108) | public SerDeserializers(SerDeserializerProvider... providers) {
method SerDeserializers (line 118) | public SerDeserializers(boolean lenient, SerDeserializerProvider... pr...
method register (line 133) | public SerDeserializers register(Class<?> type, SerDeserializer deseri...
method getDeserializers (line 143) | public ConcurrentMap<Class<?>, SerDeserializer> getDeserializers() {
method registerProvider (line 154) | public SerDeserializers registerProvider(SerDeserializerProvider provi...
method findDeserializer (line 168) | public SerDeserializer findDeserializer(Class<?> type) {
method decodeType (line 193) | public Class<?> decodeType(
method loadFromClasspath (line 209) | private static Map<Class<?>, SerDeserializer> loadFromClasspath() {
method loadRenameFile (line 234) | private static List<String> loadRenameFile(URL url) throws IOException {
method parseRenameFile (line 243) | private static void parseRenameFile(List<String> lines, URL url, Map<C...
method registerFromClasspath (line 265) | private static void registerFromClasspath(
method toLenient (line 299) | private static SerDeserializer toLenient(SerDeserializer underlying) {
method toString (line 335) | @Override
FILE: src/main/java/org/joda/beans/ser/SerIterable.java
class SerIterable (line 25) | public abstract class SerIterable {
method iterator (line 32) | public abstract SerIterator iterator();
method dimensions (line 39) | public void dimensions(int[] dimensions) {
method add (line 51) | public abstract void add(Object key, Object column, Object value, int ...
method build (line 58) | public abstract Object build();
method category (line 65) | public SerCategory category() {
method keyType (line 74) | public Class<?> keyType() {
method columnType (line 83) | public Class<?> columnType() {
method valueType (line 92) | public abstract Class<?> valueType();
method valueTypeTypes (line 99) | public abstract List<Class<?>> valueTypeTypes();
FILE: src/main/java/org/joda/beans/ser/SerIterator.java
class SerIterator (line 25) | public abstract class SerIterator {
method metaTypeName (line 32) | public abstract String metaTypeName();
method metaTypeRequired (line 39) | public abstract boolean metaTypeRequired();
method dimensionSize (line 47) | public int dimensionSize(int dimension) {
method size (line 56) | public abstract int size();
method category (line 63) | public SerCategory category() {
method hasNext (line 72) | public abstract boolean hasNext();
method next (line 77) | public abstract void next();
method count (line 84) | public int count() {
method keyType (line 93) | public Class<?> keyType() {
method key (line 102) | public Object key() {
method columnType (line 111) | public Class<?> columnType() {
method column (line 120) | public Object column() {
method valueType (line 129) | public abstract Class<?> valueType();
method valueTypeTypes (line 136) | public abstract List<Class<?>> valueTypeTypes();
method value (line 143) | public abstract Object value();
method value (line 152) | public Object value(int row, int column) {
FILE: src/main/java/org/joda/beans/ser/SerIteratorFactory.java
class SerIteratorFactory (line 45) | public class SerIteratorFactory {
method getInstance (line 52) | private static SerIteratorFactory getInstance() {
method create (line 107) | public SerIterator create(Object value, MetaProperty<?> prop, Class<?>...
method create (line 125) | public SerIterator create(Object value, MetaProperty<?> prop, Class<?>...
method createChild (line 155) | public SerIterator createChild(Object value, SerIterator parent) {
method defaultToObjectClass (line 183) | protected Class<?> defaultToObjectClass(Class<?> type) {
method createIterable (line 196) | public SerIterable createIterable(String metaTypeDescription, JodaBean...
method createIterable (line 244) | public SerIterable createIterable(SerIterable iterable) {
method createIterable (line 293) | public SerIterable createIterable(MetaProperty<?> prop, Class<?> beanC...
method createIterable (line 310) | public SerIterable createIterable(MetaProperty<?> prop, Class<?> beanC...
method list (line 364) | public static SerIterable list(Class<?> valueType, List<Class<?>> valu...
method set (line 406) | public static SerIterable set(Class<?> valueType, List<Class<?>> value...
method sortedSet (line 418) | public static SerIterable sortedSet(Class<?> valueType, List<Class<?>>...
method navigableSet (line 430) | public static SerIterable navigableSet(Class<?> valueType, List<Class<...
method set (line 435) | private static SerIterable set(Class<?> valueType, List<Class<?>> valu...
method collection (line 478) | @SuppressWarnings("rawtypes")
method map (line 548) | public static SerIterable map(Class<?> keyType, Class<?> valueType, Li...
method sortedMap (line 561) | public static SerIterable sortedMap(Class<?> keyType, Class<?> valueTy...
method navigableMap (line 574) | public static SerIterable navigableMap(Class<?> keyType, Class<?> valu...
method map (line 579) | static SerIterable map(Class<?> keyType, Class<?> valueType, List<Clas...
method map (line 631) | @SuppressWarnings("rawtypes")
method array (line 702) | public static SerIterable array(Class<?> valueType) {
method arrayPrimitive (line 750) | static SerIterable arrayPrimitive(Class<?> valueType) {
method array (line 800) | public static SerIterator array(Object[] array, Class<?> declaredType,...
method arrayPrimitive (line 873) | static SerIterator arrayPrimitive(Object array, Class<?> declaredType,...
FILE: src/main/java/org/joda/beans/ser/SerOptional.java
class SerOptional (line 32) | public class SerOptional {
method extractValue (line 65) | public static Object extractValue(MetaProperty<?> metaProp, Bean bean) {
method extractType (line 84) | public static Class<?> extractType(MetaProperty<?> metaProp, Class<?> ...
method extractType (line 97) | private static Class<?> extractType(MetaProperty<?> metaProp, Class<?>...
method wrapValue (line 114) | public static Object wrapValue(MetaProperty<?> metaProp, Class<?> bean...
class GuavaSerOptional (line 131) | private static final class GuavaSerOptional {
method extractValue (line 134) | private static Object extractValue(Object value) {
method wrapValue (line 138) | public static Object wrapValue(Class<?> propType, Object value) {
FILE: src/main/java/org/joda/beans/ser/SerTypeMapper.java
class SerTypeMapper (line 34) | public final class SerTypeMapper {
method SerTypeMapper (line 77) | private SerTypeMapper() {
method encodeType (line 93) | public static String encodeType(Class<?> cls, JodaBeanSer settings, St...
method decodeType (line 158) | public static Class<?> decodeType(
method decodeType (line 182) | public static Class<?> decodeType(
method decodeType0 (line 193) | private static Class<?> decodeType0(
method toString (line 264) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/AbstractBinReader.java
class AbstractBinReader (line 37) | abstract class AbstractBinReader extends MsgPack {
method AbstractBinReader (line 58) | AbstractBinReader(JodaBeanSer settings, DataInputStream input) {
method read (line 65) | <T> T read(Class<T> rootType) {
method parseRemaining (line 79) | <T> T parseRemaining(Class<T> declaredType) throws Exception {
method parseBean (line 85) | Object parseBean(int propertyCount, Class<?> beanType) {
method acceptPropertyName (line 109) | String acceptPropertyName() throws IOException {
method parseObject (line 116) | Object parseObject(Class<?> declaredType, MetaProperty<?> metaProp, Cl...
method parseObjectAsBean (line 155) | private Object parseObjectAsBean(Class<?> declaredType, boolean rootTy...
method parseObjectAsCollectionWithMeta (line 172) | private Object parseObjectAsCollectionWithMeta(int mapSize, int strSiz...
method parseObjectFromInput (line 189) | private Object parseObjectFromInput(
method parseIterable (line 226) | Object parseIterable(int typeByte, SerIterable iterable) throws Except...
method parseIterableMap (line 236) | Object parseIterableMap(int typeByte, SerIterable iterable) throws Exc...
method parseIterableTable (line 246) | Object parseIterableTable(int typeByte, SerIterable iterable) throws E...
method parseIterableGrid (line 260) | Object parseIterableGrid(int typeByte, SerIterable iterable) throws Ex...
method parseIterableCounted (line 288) | Object parseIterableCounted(int typeByte, SerIterable iterable) throws...
method parseIterableArray (line 298) | Object parseIterableArray(int typeByte, SerIterable iterable) throws E...
method parseSimple (line 307) | Object parseSimple(int typeByte, Class<?> type) throws Exception {
method acceptMap (line 365) | int acceptMap(int typeByte) throws IOException {
method acceptArray (line 377) | int acceptArray(int typeByte) throws IOException {
method acceptString (line 389) | String acceptString(int typeByte) throws IOException {
method acceptStringBytes (line 405) | String acceptStringBytes(int size) throws IOException {
method acceptBinary (line 421) | byte[] acceptBinary(int typeByte) throws IOException {
method acceptInteger (line 433) | int acceptInteger(int typeByte) throws IOException {
method acceptLong (line 450) | long acceptLong(int typeByte) throws IOException {
method readPositiveInt (line 467) | private int readPositiveInt(String msg) throws IOException {
method readUnsignedLong (line 475) | private long readUnsignedLong() throws IOException {
method readUnsignedLongAsInt (line 483) | private int readUnsignedLongAsInt() throws IOException {
method readLongAsInt (line 491) | private int readLongAsInt() throws IOException {
method invalidBinaryData (line 499) | private IllegalArgumentException invalidBinaryData(String expected, in...
FILE: src/main/java/org/joda/beans/ser/bin/AbstractBinWriter.java
class AbstractBinWriter (line 36) | abstract class AbstractBinWriter {
method AbstractBinWriter (line 56) | AbstractBinWriter(JodaBeanSer settings, OutputStream output) {
method writeRootBean (line 62) | void writeRootBean(Bean bean, boolean rootTypeFlag) throws IOException {
method writeBean (line 66) | void writeBean(Bean bean, Class<?> declaredType, RootType rootTypeFlag...
method writeMetaPropertyReference (line 114) | void writeMetaPropertyReference(String metaTypeName) throws IOException {
method writeElements (line 118) | void writeElements(SerIterator itemIterator) throws IOException {
method writeArray (line 132) | void writeArray(SerIterator itemIterator) throws IOException {
method writeMap (line 140) | void writeMap(SerIterator itemIterator) throws IOException {
method writeTable (line 149) | void writeTable(SerIterator itemIterator) throws IOException {
method writeGrid (line 160) | void writeGrid(SerIterator itemIterator) throws IOException {
method writeCounted (line 189) | void writeCounted(SerIterator itemIterator) throws IOException {
method writeObject (line 198) | void writeObject(Class<?> declaredType, Object obj, SerIterator parent...
method writeSimple (line 218) | void writeSimple(Class<?> declaredType, Object value) throws IOExcepti...
method getAndSerializeEffectiveTypeIfRequired (line 278) | Class<?> getAndSerializeEffectiveTypeIfRequired(Object value, Class<?>...
method writeObjectAsString (line 303) | void writeObjectAsString(Object value, Class<?> effectiveType) throws ...
type RootType (line 312) | enum RootType {
FILE: src/main/java/org/joda/beans/ser/bin/BeanPack.java
class BeanPack (line 26) | abstract class BeanPack {
method toHex (line 331) | static String toHex(int b) {
FILE: src/main/java/org/joda/beans/ser/bin/BeanPackInput.java
class BeanPackInput (line 33) | abstract class BeanPackInput extends BeanPack {
method BeanPackInput (line 53) | BeanPackInput(byte[] bytes) {
method BeanPackInput (line 62) | BeanPackInput(DataInputStream stream) {
method readAll (line 70) | void readAll() {
method acceptObject (line 83) | private Object acceptObject() throws IOException {
method readObject (line 89) | Object readObject(byte typeByte) throws IOException {
method parseMap (line 157) | private Object parseMap(int size) throws IOException {
method readMapKey (line 167) | Object readMapKey() throws IOException {
method readMapValue (line 171) | Object readMapValue() throws IOException {
method parseArray (line 175) | private Object parseArray(int size) throws IOException {
method readArrayItem (line 184) | Object readArrayItem() throws IOException {
method parseBean (line 188) | private Object parseBean(int size) throws IOException {
method readBeanItem (line 197) | Object readBeanItem() throws IOException {
method readAnnotatedValue (line 201) | private Object readAnnotatedValue() throws IOException {
method parseNull (line 206) | private Object parseNull() throws IOException {
method parseBoolean (line 211) | private Object parseBoolean(boolean value) throws IOException {
method parseUnknown (line 216) | private Object parseUnknown(byte value) throws IOException {
method parseFloat (line 221) | private Object parseFloat(float value) throws IOException {
method parseDouble (line 226) | private Object parseDouble(double value) throws IOException {
method parseChar (line 231) | private Object parseChar(char value) throws IOException {
method parseByte (line 236) | private Object parseByte(byte value) throws IOException {
method parseShort (line 241) | private Object parseShort(short value) throws IOException {
method parseInt (line 246) | private Object parseInt(int value) throws IOException {
method parseLong (line 251) | private Object parseLong(long value) throws IOException {
method parseString (line 256) | private String parseString(int size) throws IOException {
method parseDatePacked (line 270) | private LocalDate parseDatePacked() throws IOException {
method parseDate (line 279) | private LocalDate parseDate() throws IOException {
method parseTime (line 290) | private LocalTime parseTime() throws IOException {
method parseInstant (line 299) | private Instant parseInstant() throws IOException {
method parseDuration (line 307) | private Duration parseDuration() throws IOException {
method parseByteArray (line 316) | private byte[] parseByteArray(int size) throws IOException {
method parseDoubleArray (line 323) | private double[] parseDoubleArray(int size) throws IOException {
method parseTypeName (line 333) | private Object parseTypeName(int size) throws IOException {
method parseTypeReference (line 342) | private Object parseTypeReference(int ref) throws IOException {
method parseValueDefinition (line 363) | private Object parseValueDefinition() throws IOException {
method parseValueReference (line 370) | private Object parseValueReference(int ref) {
method handleObjectStart (line 377) | void handleObjectStart() {
method handleMapHeader (line 380) | void handleMapHeader(int size) {
method handleMapFooter (line 383) | void handleMapFooter() {
method handleArrayHeader (line 386) | void handleArrayHeader(int size) {
method handleArrayFooter (line 389) | void handleArrayFooter() {
method handleString (line 392) | void handleString(String str) {
method handleNull (line 395) | void handleNull() {
method handleBoolean (line 398) | void handleBoolean(boolean bool) {
method handleFloat (line 401) | void handleFloat(float value) {
method handleDouble (line 404) | void handleDouble(double value) {
method handleChar (line 407) | void handleChar(char value) {
method handleByte (line 410) | void handleByte(byte value) {
method handleShort (line 413) | void handleShort(short value) {
method handleInt (line 416) | void handleInt(int value) {
method handleLong (line 419) | void handleLong(long value) {
method handleDate (line 422) | void handleDate(LocalDate date) {
method handleTime (line 425) | void handleTime(LocalTime time) {
method handleInstant (line 428) | void handleInstant(Instant instant) {
method handleDuration (line 431) | void handleDuration(Duration duration) {
method handleBinary (line 434) | void handleBinary(byte[] bytes) {
method handleDoubleArray (line 437) | void handleDoubleArray(double[] values) {
method handleTypeName (line 440) | void handleTypeName(String typeName) throws IOException {
method handleTypeReference (line 443) | void handleTypeReference(int ref, String typeName) throws IOException {
method handleBeanHeader (line 446) | void handleBeanHeader(int propertyCount) throws IOException {
method handleBeanFooter (line 449) | void handleBeanFooter() throws IOException {
method handleValueDefinition (line 452) | void handleValueDefinition() throws IOException {
method handleValueReference (line 455) | void handleValueReference(int ref, Object value) {
method handleUnknown (line 458) | void handleUnknown(byte b) {
FILE: src/main/java/org/joda/beans/ser/bin/BeanPackOutput.java
class BeanPackOutput (line 31) | final class BeanPackOutput extends BeanPack {
method BeanPackOutput (line 48) | BeanPackOutput(OutputStream stream) {
method writeNull (line 58) | void writeNull() throws IOException {
method writeBoolean (line 68) | void writeBoolean(boolean value) throws IOException {
method writeFloat (line 82) | void writeFloat(float value) throws IOException {
method writeDouble (line 93) | void writeDouble(double value) throws IOException {
method writeChar (line 110) | void writeChar(char value) throws IOException {
method writeByte (line 121) | void writeByte(byte value) throws IOException {
method writeShort (line 132) | void writeShort(short value) throws IOException {
method writeInt (line 143) | void writeInt(int value) throws IOException {
method writeLong (line 173) | void writeLong(long value) throws IOException {
method writeDate (line 212) | void writeDate(LocalDate date) throws IOException {
method writeTime (line 235) | void writeTime(LocalTime time) throws IOException {
method writeInstant (line 250) | void writeInstant(Instant instant) throws IOException {
method writeDuration (line 262) | void writeDuration(Duration duration) throws IOException {
method writeBytes (line 275) | void writeBytes(byte[] bytes) throws IOException {
method writeDoubles (line 297) | void writeDoubles(double[] values) throws IOException {
method writeMapHeader (line 322) | void writeMapHeader(int size) throws IOException {
method writeArrayHeader (line 344) | void writeArrayHeader(int size) throws IOException {
method writeString (line 366) | void writeString(String value) throws IOException {
method writeStringHeaderLarge (line 379) | private void writeStringHeaderLarge(int size) throws IOException {
method writeTypeName (line 402) | void writeTypeName(String className) throws IOException {
method writeTypeReference (line 421) | void writeTypeReference(int ref) throws IOException {
method writeBeanDefinitionHeader (line 438) | void writeBeanDefinitionHeader(int propertyCount) throws IOException {
method writeValueDefinitionHeader (line 449) | void writeValueDefinitionHeader() throws IOException {
method writeValueReference (line 459) | void writeValueReference(int ref) throws IOException {
FILE: src/main/java/org/joda/beans/ser/bin/BeanPackVisualizer.java
class BeanPackVisualizer (line 27) | final class BeanPackVisualizer extends BeanPackInput {
method BeanPackVisualizer (line 43) | BeanPackVisualizer(byte[] bytes) {
method visualizeData (line 51) | String visualizeData() {
method readMapKey (line 61) | @Override
method readMapValue (line 69) | @Override
method readArrayItem (line 77) | @Override
method readBeanItem (line 85) | @Override
method handleObjectStart (line 93) | @Override
method handleNull (line 100) | @Override
method handleBoolean (line 105) | @Override
method handleFloat (line 110) | @Override
method handleDouble (line 115) | @Override
method handleChar (line 120) | @Override
method handleByte (line 125) | @Override
method handleShort (line 130) | @Override
method handleInt (line 135) | @Override
method handleLong (line 140) | @Override
method handleDate (line 146) | @Override
method handleTime (line 151) | @Override
method handleInstant (line 156) | @Override
method handleDuration (line 161) | @Override
method handleMapHeader (line 167) | @Override
method handleArrayHeader (line 172) | @Override
method handleString (line 177) | @Override
method handleBinary (line 182) | @Override
method handleDoubleArray (line 191) | @Override
method handleTypeName (line 209) | @Override
method handleTypeReference (line 214) | @Override
method handleBeanHeader (line 220) | @Override
method handleValueDefinition (line 225) | @Override
method handleValueReference (line 230) | @Override
method handleUnknown (line 236) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/BeanReferences.java
class BeanReferences (line 39) | final class BeanReferences {
method find (line 74) | static BeanReferences find(ImmutableBean root, JodaBeanSer settings) {
method BeanReferences (line 81) | private BeanReferences(JodaBeanSer settings) {
method findReferences (line 87) | private void findReferences(ImmutableBean root) {
method findReferencesBean (line 125) | private void findReferencesBean(
method findReferencesIterable (line 184) | private void findReferencesIterable(SerIterator itemIterator, Map<Obje...
method addClassInfo (line 223) | private void addClassInfo(Object value, Class<?> declaredClass) {
method addClassInfoForEffectiveType (line 251) | private void addClassInfoForEffectiveType(Object value) {
method addClassInfoAndIncrementCount (line 258) | private void addClassInfoAndIncrementCount(Class<?> type, ClassInfo cl...
method classInfoFromMetaBean (line 264) | private ClassInfo classInfoFromMetaBean(MetaBean metaBean) {
method incrementOrOne (line 276) | private static int incrementOrOne(@SuppressWarnings("unused") Object k...
method getReferences (line 282) | Map<Object, Ref> getReferences() {
method getClassInfoList (line 286) | List<ClassInfo> getClassInfoList() {
method getClassInfo (line 291) | ClassInfo getClassInfo(Class<?> effectiveType) {
class ClassInfo (line 303) | static final class ClassInfo {
method ClassInfo (line 314) | private ClassInfo(Class<?> type, List<MetaProperty<?>> metaPropertie...
method toString (line 320) | @Override
class Ref (line 332) | static final class Ref {
method Ref (line 336) | private Ref(boolean hasBeenSerialized, int position) {
method sent (line 341) | void sent() {
method toString (line 345) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanBinFormat.java
type JodaBeanBinFormat (line 25) | public enum JodaBeanBinFormat {
method JodaBeanBinFormat (line 108) | private JodaBeanBinFormat(int version) {
method version (line 117) | public int version() {
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanBinReader.java
class JodaBeanBinReader (line 33) | public class JodaBeanBinReader extends MsgPack {
method visualize (line 47) | public static String visualize(byte[] input) {
method JodaBeanBinReader (line 60) | public JodaBeanBinReader(JodaBeanSer settings) {
method read (line 71) | public Bean read(byte[] input) {
method read (line 83) | public <T> T read(byte[] input, Class<T> rootType) {
method read (line 94) | public Bean read(InputStream input) {
method read (line 108) | public <T> T read(InputStream input, Class<T> rootType) {
method parseVersion (line 127) | private <T> T parseVersion(DataInputStream input, Class<T> declaredTyp...
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanBinWriter.java
class JodaBeanBinWriter (line 36) | public class JodaBeanBinWriter {
method JodaBeanBinWriter (line 53) | public JodaBeanBinWriter(JodaBeanSer settings) {
method JodaBeanBinWriter (line 64) | @Deprecated
method JodaBeanBinWriter (line 77) | public JodaBeanBinWriter(JodaBeanSer settings, JodaBeanBinFormat forma...
method write (line 91) | public byte[] write(Bean bean) {
method write (line 102) | public byte[] write(Bean bean, boolean rootType) {
method write (line 121) | public void write(Bean bean, OutputStream output) throws IOException {
method write (line 133) | public void write(Bean bean, boolean includeRootType, OutputStream out...
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanPackedBinReader.java
class JodaBeanPackedBinReader (line 75) | final class JodaBeanPackedBinReader extends BeanPack {
method computeValue (line 90) | @Override
method JodaBeanPackedBinReader (line 143) | JodaBeanPackedBinReader(JodaBeanSer settings, DataInputStream input) {
method read (line 150) | <T> T read(Class<T> rootType) {
method parseRemaining (line 164) | <T> T parseRemaining(Class<T> declaredType) throws Exception {
method parseObject (line 173) | Object parseObject(ResolvedType declaredType) throws IOException {
method parseMap (line 257) | private Object parseMap(int size, ResolvedType declaredType) throws IO...
method parseArray (line 267) | private Object parseArray(int size, ResolvedType declaredType) throws ...
method parseViaHandler (line 277) | private Object parseViaHandler(int size, ResolvedType declaredType) th...
method parseString (line 284) | private Object parseString(int strLen, ResolvedType declaredType) thro...
method interpretString (line 289) | private Object interpretString(String str, ResolvedType declaredType) {
method parseUnknown (line 298) | private Object parseUnknown() {
method parseTypeDefinition (line 304) | private Object parseTypeDefinition(int size) throws IOException {
method decodeTypeName (line 316) | private Class<?> decodeTypeName(String typeName) {
method decodeArrayTypeName (line 329) | private Class<?> decodeArrayTypeName(String typeName) throws ClassNotF...
method parseTypeRef (line 342) | private Object parseTypeRef(int ref, ResolvedType declaredType) throws...
method parseBeanDefinition (line 354) | private Object parseBeanDefinition(int propertyCount, ResolvedType dec...
method parseValueDefinition (line 399) | private Object parseValueDefinition(ResolvedType declaredType) throws ...
method parseValueRef (line 406) | private Object parseValueRef(int ref, ResolvedType declaredType) throw...
method parseMapAsBean (line 419) | private Object parseMapAsBean(int mapSize, Class<?> beanType, boolean ...
method parseArrayAsBean (line 451) | private Object parseArrayAsBean(int arraySize, Class<?> beanType) thro...
method invalidBeanRef (line 484) | private IllegalArgumentException invalidBeanRef(Class<?> beanType) {
method invalidBeanRefSize (line 489) | private IllegalArgumentException invalidBeanRefSize(Class<?> beanType) {
method invalidBean (line 494) | private RuntimeException invalidBean(Class<?> beanType, String propNam...
method parseByte (line 500) | private Object parseByte(byte value, ResolvedType declaredType) {
method parseShort (line 510) | private Object parseShort(short value, ResolvedType declaredType) {
method parseInt (line 520) | private Object parseInt(int value, ResolvedType declaredType) {
method parseLong (line 530) | private Object parseLong(long value, ResolvedType declaredType) {
method parseLongWithConversion (line 540) | private Object parseLongWithConversion(long value, Number defaultValue...
method parseDatePacked (line 569) | private LocalDate parseDatePacked() throws IOException {
method parseDate (line 576) | private LocalDate parseDate() throws IOException {
method parseTime (line 585) | private LocalTime parseTime() throws IOException {
method parseInstant (line 592) | private Instant parseInstant() throws IOException {
method parseDuration (line 598) | private Duration parseDuration() throws IOException {
method parseByteArray (line 605) | private byte[] parseByteArray(int size) throws IOException {
method parseDoubleArray (line 611) | private double[] parseDoubleArray(int size) throws IOException {
method skipObject (line 620) | private void skipObject() throws IOException {
method acceptString (line 635) | private String acceptString() throws IOException {
method acceptStringOrNull (line 639) | private String acceptStringOrNull() throws IOException {
method acceptString (line 644) | private String acceptString(int typeByte) throws IOException {
method acceptStringBytes (line 666) | private String acceptStringBytes(int size) throws IOException {
method acceptInt (line 686) | private int acceptInt() throws IOException {
method acceptMap (line 698) | private int acceptMap() throws IOException {
method acceptArray (line 711) | private int acceptArray() throws IOException {
method invalidBinaryData (line 724) | private IllegalArgumentException invalidBinaryData(String expected, in...
type BinHandler (line 730) | private static interface BinHandler {
method handle (line 731) | public abstract Object handle(
class BaseBinHandlers (line 738) | private static sealed class BaseBinHandlers {
method getInstance (line 743) | private static final BaseBinHandlers getInstance() {
method createHandler (line 757) | BinHandler createHandler(Class<?> type) {
method classForTypeCode (line 782) | Class<?> classForTypeCode(int typeCode) {
method parseCollection (line 795) | private static Collection<?> parseCollection(
method parseMap (line 809) | static Map<?, ?> parseMap(
method parseOptional (line 826) | private static Optional<?> parseOptional(
method parseArray (line 844) | private static Object parseArray(
class GuavaBinHandlers (line 859) | private static sealed class GuavaBinHandlers extends BaseBinHandlers {
method createHandler (line 861) | @Override
method classForTypeCode (line 899) | @Override
method parseMultiset (line 913) | @SuppressWarnings({"rawtypes", "unchecked"})
method parseMultimap (line 930) | private static Multimap<?, ?> parseMultimap(
method parseTable (line 950) | private static Table<?, ?, ?> parseTable(
method parseOptional (line 972) | private static com.google.common.base.Optional<?> parseOptional(
method parseImmutableCollection (line 990) | private static ImmutableCollection<?> parseImmutableCollection(
method parseImmutableMap (line 1005) | private static ImmutableMap<?, ?> parseImmutableMap(
class CollectBinHandlers (line 1023) | private static final class CollectBinHandlers extends GuavaBinHandlers {
method createHandler (line 1025) | @Override
method classForTypeCode (line 1033) | @Override
method parseGrid (line 1042) | private static Grid<?> parseGrid(
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanPackedBinWriter.java
class JodaBeanPackedBinWriter (line 62) | final class JodaBeanPackedBinWriter {
method computeValue (line 70) | @SuppressWarnings("rawtypes") // sneaky use of raw type to allow type...
method JodaBeanPackedBinWriter (line 164) | JodaBeanPackedBinWriter(JodaBeanSer settings, OutputStream out) {
method write (line 177) | void write(Bean bean, boolean includeRootType) throws IOException {
method writeObject (line 203) | private void writeObject(ResolvedType declaredType, String propertyNam...
method writeBeanMaybeSimple (line 214) | private void writeBeanMaybeSimple(ResolvedType declaredType, String pr...
method writeCachedBean (line 227) | private void writeCachedBean(Bean bean) throws IOException {
method writeBean (line 249) | private void writeBean(ResolvedType declaredType, Bean bean, boolean i...
method writeDynamicBean (line 272) | private void writeDynamicBean(Bean bean) throws IOException {
method writeBeanWithDefinition (line 299) | private void writeBeanWithDefinition(Bean bean) throws IOException {
method findSerializedMetaProperties (line 321) | private ArrayList<MetaProperty<?>> findSerializedMetaProperties(Bean b...
method writeBeanValues (line 333) | private void writeBeanValues(Bean bean, List<MetaProperty<?>> metaProp...
method writeString (line 349) | private void writeString(String str) throws IOException {
method writeSimple (line 365) | private void writeSimple(String propertyName, Object value) throws IOE...
method writeJodaConvert (line 380) | private void writeJodaConvert(ResolvedType declaredType, String proper...
method invalidConversionMsg (line 400) | private IllegalArgumentException invalidConversionMsg(String propertyN...
method writeTypeNameOrReference (line 407) | private final void writeTypeNameOrReference(Class<?> type) throws IOEx...
type BinHandler (line 419) | private static interface BinHandler<T> {
method handle (line 420) | public abstract void handle(
class BaseBinHandlers (line 429) | private static sealed class BaseBinHandlers {
method getInstance (line 434) | private static final BaseBinHandlers getInstance() {
method createHandler (line 449) | BinHandler<?> createHandler(Class<?> type) {
method writeOptional (line 480) | private static void writeOptional(
method writeArray (line 501) | private static void writeArray(
method writePrimitiveArray (line 527) | private static void writePrimitiveArray(
method writeArrayTypeDescription (line 550) | private static final void writeArrayTypeDescription(JodaBeanPackedBi...
method metaTypeArrayName (line 562) | private static String metaTypeArrayName(Class<?> valueType) {
method writeIterable (line 576) | private static void writeIterable(
method writeCollection (line 590) | private static void writeCollection(
method writeMap (line 611) | private static void writeMap(
method writeMapEntries (line 626) | static <K, V> void writeMapEntries(
class GuavaBinHandlers (line 643) | private static sealed class GuavaBinHandlers extends BaseBinHandlers {
method createHandler (line 645) | @Override
method writeOptional (line 666) | private static void writeOptional(
method writeMultimap (line 687) | private static void writeMultimap(
method writeMultiset (line 715) | private static void writeMultiset(
method writeTable (line 736) | private static void writeTable(
method writeBiMap (line 763) | private static void writeBiMap(
class CollectBinHandlers (line 785) | private static final class CollectBinHandlers extends GuavaBinHandlers {
method createHandler (line 787) | @Override
method writeGrid (line 796) | private static void writeGrid(
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanReferencingBinReader.java
class JodaBeanReferencingBinReader (line 35) | class JodaBeanReferencingBinReader extends AbstractBinReader {
method JodaBeanReferencingBinReader (line 56) | JodaBeanReferencingBinReader(JodaBeanSer settings, DataInputStream inp...
method read (line 62) | @Override
method parseRemaining (line 79) | @Override
method parseClassDescriptions (line 93) | private void parseClassDescriptions() throws Exception {
method parseClassInfo (line 112) | private ClassInfo parseClassInfo() throws Exception {
method parseBean (line 135) | private Object parseBean(int propertyCount, ClassInfo classInfo) {
method parseObject (line 166) | @Override
method parseObject (line 342) | private Object parseObject(
method lookupClassInfo (line 383) | private ClassInfo lookupClassInfo(Class<?> type) {
method parseBean (line 398) | private Object parseBean(Class<?> declaredType, boolean rootType, Clas...
method isIntExtension (line 412) | private boolean isIntExtension(int typeByte) {
method acceptIntExtension (line 416) | private int acceptIntExtension(int typeByte) throws IOException {
class ClassInfo (line 428) | private static final class ClassInfo {
method ClassInfo (line 436) | private ClassInfo(Class<?> type, MetaProperty<?>[] metaProperties) {
method toString (line 441) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanReferencingBinWriter.java
class JodaBeanReferencingBinWriter (line 31) | class JodaBeanReferencingBinWriter extends AbstractBinWriter {
method JodaBeanReferencingBinWriter (line 36) | JodaBeanReferencingBinWriter(JodaBeanSer settings, OutputStream output) {
method write (line 42) | void write(Bean bean) throws IOException {
method writeClassDescriptions (line 58) | private void writeClassDescriptions(BeanReferences references) throws ...
method writeBean (line 78) | @Override
method writeMetaPropertyReference (line 137) | @Override
method getAndSerializeEffectiveTypeIfRequired (line 154) | @Override
method writeObjectAsString (line 181) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanStandardBinReader.java
class JodaBeanStandardBinReader (line 25) | class JodaBeanStandardBinReader extends AbstractBinReader {
method JodaBeanStandardBinReader (line 28) | JodaBeanStandardBinReader(JodaBeanSer settings, DataInputStream input) {
FILE: src/main/java/org/joda/beans/ser/bin/JodaBeanStandardBinWriter.java
class JodaBeanStandardBinWriter (line 52) | final class JodaBeanStandardBinWriter {
method computeValue (line 58) | @SuppressWarnings("rawtypes") // sneaky use of raw type to allow type...
method JodaBeanStandardBinWriter (line 107) | JodaBeanStandardBinWriter(JodaBeanSer settings, OutputStream out) {
method write (line 120) | void write(Bean bean, boolean includeRootType) throws IOException {
method writeObject (line 130) | private void writeObject(ResolvedType declaredType, String propertyNam...
method writeBeanMaybeSimple (line 141) | private void writeBeanMaybeSimple(ResolvedType declaredType, String pr...
method writeBean (line 151) | private void writeBean(ResolvedType declaredType, String propertyName,...
method writeSimple (line 190) | private void writeSimple(ResolvedType declaredType, String propertyNam...
method getAndSerializeEffectiveTypeIfRequired (line 213) | private Class<?> getAndSerializeEffectiveTypeIfRequired(Object value, ...
method writeJodaConvert (line 237) | private void writeJodaConvert(Class<?> effectiveType, String propertyN...
method invalidNullString (line 249) | private static IllegalArgumentException invalidNullString(String prope...
method invalidConversionMsg (line 254) | private IllegalArgumentException invalidConversionMsg(String propertyN...
method writeMetaType (line 261) | private static final void writeMetaType(JodaBeanStandardBinWriter writ...
method toWeakenedType (line 268) | private static ResolvedType toWeakenedType(ResolvedType base) {
type BinHandler (line 279) | private static interface BinHandler<T> {
method handle (line 280) | public abstract void handle(
method handleProperty (line 286) | public default PropertyHandler handleProperty(
method isCollection (line 298) | public default boolean isCollection(Class<?> type) {
type CollectionBinHandler (line 303) | private static interface CollectionBinHandler<T> extends BinHandler<T> {
method isCollection (line 304) | @Override
type PropertyHandler (line 312) | private static interface PropertyHandler {
method handle (line 313) | public abstract void handle() throws IOException;
class BaseBinHandlers (line 318) | private static sealed class BaseBinHandlers {
method getInstance (line 323) | private static final BaseBinHandlers getInstance() {
method createHandler (line 338) | BinHandler<?> createHandler(Class<?> type) {
method writeArray (line 367) | private static void writeArray(
method writePrimitiveArray (line 389) | private static void writePrimitiveArray(
method metaTypeArrayName (line 411) | private static String metaTypeArrayName(Class<?> valueType) {
method writeIterable (line 425) | private static void writeIterable(
method writeCollection (line 439) | private static void writeCollection(
method writeMap (line 462) | private static void writeMap(
method writeMapEntries (line 477) | static <K, V> void writeMapEntries(
class GuavaBinHandlers (line 494) | private static sealed class GuavaBinHandlers extends BaseBinHandlers {
method createHandler (line 496) | @Override
method writeMultimap (line 517) | private static void writeMultimap(
method writeMultiset (line 536) | private static void writeMultiset(
method writeTable (line 557) | private static void writeTable(
method writeBiMap (line 581) | private static void writeBiMap(
class CollectBinHandlers (line 603) | private static final class CollectBinHandlers extends GuavaBinHandlers {
method createHandler (line 605) | @Override
method writeGrid (line 614) | private static void writeGrid(
class OptionalBinHandler (line 656) | static final class OptionalBinHandler implements BinHandler<Optional<?...
method handle (line 660) | @Override
method handleProperty (line 675) | @Override
class GuavaOptionalBinHandler (line 693) | static final class GuavaOptionalBinHandler implements BinHandler<com.g...
method handle (line 697) | @Override
method handleProperty (line 713) | @Override
FILE: src/main/java/org/joda/beans/ser/bin/MsgPack.java
class MsgPack (line 26) | abstract class MsgPack {
method toHex (line 217) | static String toHex(int b) {
method isMap (line 221) | static boolean isMap(int typeByte) {
method isArray (line 225) | static boolean isArray(int typeByte) {
method isString (line 229) | static boolean isString(int typeByte) {
method isIntegral (line 233) | static boolean isIntegral(int typeByte) {
FILE: src/main/java/org/joda/beans/ser/bin/MsgPackInput.java
class MsgPackInput (line 26) | abstract class MsgPackInput extends MsgPack {
method MsgPackInput (line 38) | MsgPackInput(byte[] bytes) {
method MsgPackInput (line 47) | MsgPackInput(InputStream stream) {
method MsgPackInput (line 56) | MsgPackInput(DataInputStream stream) {
method readAll (line 64) | void readAll() {
method readObject (line 81) | void readObject(int unsigned) throws IOException {
method string (line 141) | private void string(int size) throws IOException {
method array (line 151) | private void array(int size) throws IOException {
method readArrayItem (line 158) | void readArrayItem() throws IOException {
method map (line 163) | private void map(int size) throws IOException {
method readMapKey (line 171) | void readMapKey() throws IOException {
method readMapValue (line 176) | void readMapValue() throws IOException {
method binary (line 181) | private void binary(int size) throws IOException {
method extension (line 190) | private void extension(int size, boolean numeric) throws IOException {
method handleObjectStart (line 200) | void handleObjectStart() {
method handleBoolean (line 203) | void handleBoolean(boolean bool) {
method handleNil (line 206) | void handleNil() {
method handleInt (line 209) | void handleInt(int value) {
method handleUnsignedLong (line 212) | void handleUnsignedLong(long value) {
method handleSignedLong (line 215) | void handleSignedLong(long value) {
method handleFloat (line 218) | void handleFloat(float value) {
method handleDouble (line 221) | void handleDouble(double value) {
method handleUnknown (line 224) | void handleUnknown(byte b) {
method handleString (line 227) | void handleString(String str) {
method handleArrayHeader (line 230) | void handleArrayHeader(int size) {
method handleMapHeader (line 233) | void handleMapHeader(int size) {
method handleBinary (line 236) | void handleBinary(byte[] bytes) {
method handleExtension (line 239) | void handleExtension(int type, boolean numeric, byte[] bytes) {
method skipObject (line 249) | public static void skipObject(DataInputStream input) throws IOException {
class Skipper (line 253) | private static class Skipper extends MsgPackInput {
method Skipper (line 254) | Skipper(DataInputStream input) {
method skip (line 257) | void skip(int typeByte) throws IOException {
FILE: src/main/java/org/joda/beans/ser/bin/MsgPackOutput.java
class MsgPackOutput (line 25) | final class MsgPackOutput extends MsgPack {
method MsgPackOutput (line 37) | MsgPackOutput(OutputStream stream) {
method MsgPackOutput (line 46) | MsgPackOutput(DataOutputStream stream) {
method writeNil (line 56) | void writeNil() throws IOException {
method writeBoolean (line 66) | void writeBoolean(boolean value) throws IOException {
method writeInt (line 80) | void writeInt(int value) throws IOException {
method writeLong (line 117) | void writeLong(long value) throws IOException {
method writeFloat (line 160) | void writeFloat(float value) throws IOException {
method writeDouble (line 171) | void writeDouble(double value) throws IOException {
method writeBytes (line 182) | void writeBytes(byte[] bytes) throws IOException {
method writeString (line 203) | void writeString(String value) throws IOException {
method writeStringHeaderLarge (line 219) | private void writeStringHeaderLarge(int size) throws IOException {
method writeArrayHeader (line 235) | void writeArrayHeader(int size) throws IOException {
method writeMapHeader (line 253) | void writeMapHeader(int size) throws IOException {
method writeExtensionByte (line 272) | void writeExtensionByte(int extensionType, int value) throws IOExcepti...
method writeExtensionString (line 285) | void writeExtensionString(int extensionType, String str) throws IOExce...
method writePositiveExtensionInt (line 303) | void writePositiveExtensionInt(int extensionType, int reference) throw...
FILE: src/main/java/org/joda/beans/ser/bin/MsgPackVisualizer.java
class MsgPackVisualizer (line 25) | final class MsgPackVisualizer extends MsgPackInput {
method MsgPackVisualizer (line 41) | MsgPackVisualizer(byte[] bytes) {
method MsgPackVisualizer (line 50) | MsgPackVisualizer(InputStream stream) {
method MsgPackVisualizer (line 59) | MsgPackVisualizer(DataInputStream stream) {
method visualizeData (line 67) | String visualizeData() {
method readArrayItem (line 73) | @Override
method readMapKey (line 80) | @Override
method readMapValue (line 87) | @Override
method handleObjectStart (line 94) | @Override
method handleBoolean (line 100) | @Override
method handleNil (line 105) | @Override
method handleInt (line 110) | @Override
method handleUnsignedLong (line 115) | @Override
method handleSignedLong (line 120) | @Override
method handleFloat (line 125) | @Override
method handleDouble (line 130) | @Override
method handleUnknown (line 135) | @Override
method handleString (line 140) | @Override
method handleArrayHeader (line 145) | @Override
method handleMapHeader (line 150) | @Override
method handleBinary (line 155) | @Override
method handleExtension (line 164) | @Override
FILE: src/main/java/org/joda/beans/ser/json/AbstractJsonReader.java
class AbstractJsonReader (line 48) | abstract class AbstractJsonReader {
method AbstractJsonReader (line 72) | AbstractJsonReader(final JodaBeanSer settings) {
method parseRoot (line 87) | <T> T parseRoot(JsonInput input, Class<T> declaredType) {
method parseBean (line 100) | private Object parseBean(JsonEvent event, Class<?> beanType) throws IO...
method parseObject (line 131) | private Object parseObject(
method parseUnknownArray (line 194) | SerIterable parseUnknownArray(Class<?> declaredType) {
method parseUnknownObject (line 203) | SerIterable parseUnknownObject(Class<?> declaredType) {
method parseTypedBean (line 207) | private Object parseTypedBean(Class<?> declaredType, boolean rootType)...
method parseTypedSimple (line 227) | private Object parseTypedSimple(Class<?> declaredType) throws IOExcept...
method parseTypedMeta (line 246) | private Object parseTypedMeta() throws IOException, ClassNotFoundExcep...
method parseIterable (line 259) | private Object parseIterable(JsonEvent event, SerIterable iterable) th...
method parseIterableMap (line 273) | private Object parseIterableMap(JsonEvent event, SerIterable iterable)...
method parseIterableTable (line 301) | private Object parseIterableTable(JsonEvent event, SerIterable iterabl...
method parseIterableGrid (line 318) | private Object parseIterableGrid(JsonEvent event, SerIterable iterable...
method parseIterableCounted (line 343) | private Object parseIterableCounted(JsonEvent event, SerIterable itera...
method parseIterableArray (line 358) | private Object parseIterableArray(JsonEvent event, SerIterable iterabl...
method parseSimple (line 369) | private Object parseSimple(JsonEvent event, Class<?> type) throws IOEx...
method parseText (line 444) | private Object parseText(String text, Class<?> type) {
FILE: src/main/java/org/joda/beans/ser/json/JodaBeanJsonNumberFormat.java
type JodaBeanJsonNumberFormat (line 23) | public enum JodaBeanJsonNumberFormat {
FILE: src/main/java/org/joda/beans/ser/json/JodaBeanJsonReader.java
class JodaBeanJsonReader (line 34) | public class JodaBeanJsonReader extends AbstractJsonReader {
method JodaBeanJsonReader (line 41) | public JodaBeanJsonReader(JodaBeanSer settings) {
method read (line 54) | public Bean read(String input) {
method read (line 68) | public <T> T read(String input, Class<T> rootType) {
method read (line 81) | public Bean read(Reader input) {
method read (line 95) | public <T> T read(Reader input, Class<T> rootType) {
FILE: src/main/java/org/joda/beans/ser/json/JodaBeanJsonWriter.java
class JodaBeanJsonWriter (line 79) | public class JodaBeanJsonWriter {
method computeValue (line 102) | @SuppressWarnings("rawtypes") // sneaky use of raw type to allow type...
method JodaBeanJsonWriter (line 158) | public JodaBeanJsonWriter(JodaBeanSer settings) {
method write (line 177) | public String write(Bean bean) {
method write (line 188) | public String write(Bean bean, boolean includeRootType) {
method write (line 207) | public void write(Bean bean, Appendable output) throws IOException {
method write (line 219) | public void write(Bean bean, boolean includeRootType, Appendable outpu...
method writeObject (line 231) | void writeObject(ResolvedType declaredType, String propertyName, Objec...
method writeBeanMaybeSimple (line 242) | private void writeBeanMaybeSimple(ResolvedType declaredType, String pr...
method writeBean (line 252) | private void writeBean(ResolvedType declaredType, Bean bean, boolean i...
method writeBeanType (line 260) | void writeBeanType(ResolvedType declaredType, Bean bean, boolean inclu...
method writeBeanProperties (line 271) | private void writeBeanProperties(ResolvedType declaredType, Bean bean)...
method writeLong (line 285) | void writeLong(ResolvedType declaredType, Long val) throws IOException {
method writeShort (line 297) | void writeShort(ResolvedType declaredType, Short val) throws IOExcepti...
method writeByte (line 309) | void writeByte(ResolvedType declaredType, Byte val) throws IOException {
method writeDouble (line 321) | void writeDouble(ResolvedType declaredType, Double val) throws IOExcep...
method writeFloat (line 333) | void writeFloat(ResolvedType declaredType, Float val) throws IOExcepti...
method writeSimple (line 346) | void writeSimple(ResolvedType declaredType, String propertyName, Objec...
method writeJodaConvert (line 380) | void writeJodaConvert(ResolvedType declaredType, String propertyName, ...
method invalidNullString (line 395) | private static IllegalArgumentException invalidNullString(String prope...
method writeMapEntries (line 401) | <K, V> void writeMapEntries(
method writeMapEntriesSimple (line 416) | private <K, V> void writeMapEntriesSimple(
method writeMapComplex (line 440) | private <K, V> void writeMapComplex(
method invalidNullMapKey (line 464) | static IllegalArgumentException invalidNullMapKey(String propertyName) {
method invalidConvertedNullMapKey (line 469) | static IllegalArgumentException invalidConvertedNullMapKey(String prop...
method toWeakenedType (line 477) | static ResolvedType toWeakenedType(ResolvedType base) {
type MetaTypeHandler (line 489) | static interface MetaTypeHandler {
method handle (line 490) | public abstract String handle() throws IOException;
type ContentHandler (line 494) | static interface ContentHandler {
method handle (line 495) | public abstract void handle() throws IOException;
method writeWithMetaType (line 499) | void writeWithMetaType(ContentHandler contentHandler, MetaTypeHandler ...
method writeWithMetaType (line 513) | void writeWithMetaType(ContentHandler contentHandler, Class<?> cls, Re...
type JsonHandler (line 528) | private static interface JsonHandler<T> {
method handle (line 529) | public abstract void handle(
method handleProperty (line 535) | public default void handleProperty(
method isCollection (line 545) | public default boolean isCollection() {
type CollectionJsonHandler (line 550) | private static interface CollectionJsonHandler<T> extends JsonHandler<...
method isCollection (line 551) | @Override
class BaseJsonHandlers (line 558) | private static sealed class BaseJsonHandlers {
method getInstance (line 562) | private static final BaseJsonHandlers getInstance() {
method computeValue (line 576) | @SuppressWarnings("rawtypes") // sneaky use of raw type to allow ty...
method writeArray (line 603) | private static void writeArray(
method writePrimitiveArray (line 631) | private static void writePrimitiveArray(
method metaTypeArrayName (line 661) | private static String metaTypeArrayName(Class<?> valueType) {
method writeCollection (line 675) | private static void writeCollection(
method writeMap (line 706) | private static void writeMap(
class GuavaJsonHandlers (line 719) | private static sealed class GuavaJsonHandlers extends BaseJsonHandlers {
method computeValue (line 721) | @Override
method writeMultimap (line 743) | private static void writeMultimap(
method writeMultiset (line 766) | private static void writeMultiset(
method writeTable (line 791) | private static void writeTable(
method writeBiMap (line 820) | private static void writeBiMap(
class CollectJsonHandlers (line 844) | private static final class CollectJsonHandlers extends GuavaJsonHandle...
method computeValue (line 846) | @Override
method writeGrid (line 855) | private static void writeGrid(
class OptionalJsonHandler (line 887) | static final class OptionalJsonHandler implements JsonHandler<Optional...
method handle (line 891) | @Override
method handleProperty (line 903) | @Override
class GuavaOptionalJsonHandler (line 920) | static final class GuavaOptionalJsonHandler implements JsonHandler<com...
method handle (line 924) | @Override
method handleProperty (line 936) | @Override
FILE: src/main/java/org/joda/beans/ser/json/JodaBeanSimpleJsonReader.java
class JodaBeanSimpleJsonReader (line 33) | public class JodaBeanSimpleJsonReader extends AbstractJsonReader {
method JodaBeanSimpleJsonReader (line 40) | public JodaBeanSimpleJsonReader(JodaBeanSer settings) {
method read (line 55) | public <T> T read(String input, Class<T> rootType) {
method read (line 70) | public <T> T read(Reader input, Class<T> rootType) {
FILE: src/main/java/org/joda/beans/ser/json/JodaBeanSimpleJsonWriter.java
class JodaBeanSimpleJsonWriter (line 48) | public class JodaBeanSimpleJsonWriter extends JodaBeanJsonWriter {
method JodaBeanSimpleJsonWriter (line 55) | public JodaBeanSimpleJsonWriter(JodaBeanSer settings) {
method adjustSettings (line 59) | private static JodaBeanSer adjustSettings(JodaBeanSer settings) {
method write (line 75) | @Override
method write (line 89) | @Override
method writeBeanType (line 95) | @Override
method writeLong (line 101) | @Override
method writeShort (line 107) | @Override
method writeByte (line 113) | @Override
method writeDouble (line 119) | @Override
method writeFloat (line 125) | @Override
method writeSimple (line 132) | @Override
method writeMapEntries (line 139) | @Override
method writeWithMetaType (line 171) | @Override
method writeWithMetaType (line 177) | @Override
FILE: src/main/java/org/joda/beans/ser/json/JsonEvent.java
type JsonEvent (line 21) | enum JsonEvent {
FILE: src/main/java/org/joda/beans/ser/json/JsonInput.java
class JsonInput (line 24) | final class JsonInput {
method JsonInput (line 74) | JsonInput(Reader input) {
method readEvent (line 84) | JsonEvent readEvent() throws IOException {
method pushBack (line 110) | void pushBack(char ch) {
method pushBackObjectKey (line 115) | void pushBackObjectKey(String objectKey) {
method ensureEvent (line 119) | JsonEvent ensureEvent(JsonEvent event, JsonEvent expected) {
method acceptEvent (line 126) | JsonEvent acceptEvent(JsonEvent expected) throws IOException {
method acceptObjectKey (line 132) | String acceptObjectKey(JsonEvent event) throws IOException {
method parseObjectKey (line 138) | String parseObjectKey() throws IOException {
method acceptString (line 151) | String acceptString() throws IOException {
method parseString (line 157) | String parseString() throws IOException {
method parseEscape (line 171) | private void parseEscape() throws IOException {
method acceptHex (line 210) | private int acceptHex() throws IOException {
method parseNumberIntegral (line 226) | long parseNumberIntegral() {
method parseNumberFloating (line 231) | double parseNumberFloating() {
method acceptNumber (line 235) | private JsonEvent acceptNumber(char first) throws IOException {
method acceptNull (line 271) | private JsonEvent acceptNull() throws IOException {
method acceptTrue (line 278) | private JsonEvent acceptTrue() throws IOException {
method acceptFalse (line 285) | private JsonEvent acceptFalse() throws IOException {
method acceptNaN (line 293) | private JsonEvent acceptNaN() throws IOException {
method acceptInfinity (line 300) | private JsonEvent acceptInfinity() throws IOException {
method acceptChar (line 312) | private void acceptChar(char ch) throws IOException {
method readNext (line 320) | private char readNext() throws IOException {
method skipData (line 333) | void skipData() throws IOException {
method skipData (line 337) | private void skipData(JsonEvent event) throws IOException {
method acceptObjectSeparator (line 373) | JsonEvent acceptObjectSeparator() throws IOException {
method acceptArraySeparator (line 383) | JsonEvent acceptArraySeparator() throws IOException {
FILE: src/main/java/org/joda/beans/ser/json/JsonOutput.java
class JsonOutput (line 24) | final class JsonOutput {
method JsonOutput (line 78) | JsonOutput(Appendable output) {
method JsonOutput (line 90) | JsonOutput(Appendable output, JodaBeanJsonNumberFormat numberFormat, S...
method writeNull (line 103) | void writeNull() throws IOException {
method writeBoolean (line 113) | void writeBoolean(boolean value) throws IOException {
method writeInt (line 128) | void writeInt(int value) throws IOException {
method writeLong (line 138) | void writeLong(long value) throws IOException {
method writeFloat (line 150) | void writeFloat(float value) throws IOException {
method writeDouble (line 176) | void writeDouble(double value) throws IOException {
method writeString (line 201) | void writeString(String value) throws IOException {
method writeArrayStart (line 229) | void writeArrayStart() throws IOException {
method writeArrayItemStart (line 240) | void writeArrayItemStart() throws IOException {
method writeArrayEnd (line 256) | void writeArrayEnd() throws IOException {
method writeObjectStart (line 267) | void writeObjectStart() throws IOException {
method writeObjectKey (line 282) | void writeObjectKey(String key) throws IOException {
method writeObjectKeyValue (line 304) | void writeObjectKeyValue(String key, String value) throws IOException {
method writeObjectEnd (line 314) | void writeObjectEnd() throws IOException {
FILE: src/main/java/org/joda/beans/ser/map/JodaBeanSimpleMapReader.java
class JodaBeanSimpleMapReader (line 37) | public class JodaBeanSimpleMapReader {
method JodaBeanSimpleMapReader (line 49) | public JodaBeanSimpleMapReader(JodaBeanSer settings) {
method read (line 63) | public <T> T read(Map<String, Object> input, Class<T> rootType) {
method parseRoot (line 84) | private <T> T parseRoot(Map<String, Object> input, Class<T> declaredTy...
method parseBean (line 90) | private Object parseBean(Map<String, Object> input, Class<?> beanType) {
method parseProperty (line 116) | private Object parseProperty(
method parseObject (line 136) | private Object parseObject(
method parseObjectAsBean (line 155) | @SuppressWarnings("unchecked")
method parseObjectAsCollection (line 164) | private Object parseObjectAsCollection(Object input, Class<?> declared...
method parseIterable (line 177) | private Object parseIterable(Object input, SerIterable iterable) {
method parseIterableMap (line 187) | @SuppressWarnings("unchecked")
method parseIterableTable (line 213) | private Object parseIterableTable(List<?> input, SerIterable iterable) {
method parseIterableGrid (line 227) | private Object parseIterableGrid(List<?> input, SerIterable iterable) {
method parseIterableCounted (line 247) | private Object parseIterableCounted(List<?> input, SerIterable iterabl...
method parseIterableArray (line 260) | private Object parseIterableArray(List<?> input, SerIterable iterable) {
method parseSimple (line 269) | private Object parseSimple(Object input, Class<?> type) {
method convertNull (line 284) | private Object convertNull(Class<?> type) {
method convertText (line 294) | private Object convertText(String input, Class<?> type) {
method convertLong (line 301) | private Object convertLong(Long inputLong, Class<?> type) {
method convertInteger (line 309) | private Object convertInteger(Integer inputInteger, Class<?> type) {
method convertDouble (line 317) | private Object convertDouble(Double inputDouble, Class<?> type) {
method convertFloat (line 327) | private Object convertFloat(Float inputFloat, Class<?> type) {
method convertInteger (line 338) | private Object convertInteger(long value, Class<?> type) {
FILE: src/main/java/org/joda/beans/ser/map/JodaBeanSimpleMapWriter.java
class JodaBeanSimpleMapWriter (line 51) | public class JodaBeanSimpleMapWriter {
method JodaBeanSimpleMapWriter (line 63) | public JodaBeanSimpleMapWriter(JodaBeanSer settings) {
method write (line 75) | public Map<String, Object> write(Bean bean) {
method writeBean (line 82) | private Map<String, Object> writeBean(Bean bean, Class<?> declaredType) {
method writeElements (line 114) | private Object writeElements(SerIterator itemIterator) {
method writeArray (line 129) | private Object writeArray(SerIterator itemIterator) {
method writeMap (line 139) | private Object writeMap(SerIterator itemIterator) {
method writeMapSimple (line 152) | private Object writeMapSimple(SerIterator itemIterator) {
method writeMapComplex (line 171) | private Object writeMapComplex(SerIterator itemIterator) {
method writeTable (line 189) | private Object writeTable(SerIterator itemIterator) {
method writeGrid (line 202) | private Object writeGrid(SerIterator itemIterator) {
method writeCounted (line 217) | private Object writeCounted(final SerIterator itemIterator) {
method writeObject (line 229) | private Object writeObject(Class<?> declaredType, Object obj, SerItera...
method writeSimple (line 250) | private Object writeSimple(Class<?> declaredType, Object value) {
FILE: src/main/java/org/joda/beans/ser/xml/JodaBeanXml.java
class JodaBeanXml (line 23) | final class JodaBeanXml {
method JodaBeanXml (line 125) | private JodaBeanXml() {
FILE: src/main/java/org/joda/beans/ser/xml/JodaBeanXmlReader.java
class JodaBeanXmlReader (line 60) | public class JodaBeanXmlReader {
method JodaBeanXmlReader (line 98) | public JodaBeanXmlReader(final JodaBeanSer settings) {
method read (line 109) | public Bean read(final String input) {
method read (line 121) | public <T> T read(final String input, Class<T> rootType) {
method read (line 131) | public Bean read(final InputStream input) {
method read (line 143) | public <T> T read(final InputStream input, Class<T> rootType) {
method read (line 166) | public Bean read(final Reader input) {
method read (line 178) | public <T> T read(final Reader input, Class<T> rootType) {
method read (line 203) | private <T> T read(final Class<T> rootType) throws Exception {
method parseBean (line 236) | @SuppressWarnings("null")
method parseIterable (line 323) | private Object parseIterable(final StartElement iterableEvent, final S...
method parseKey (line 414) | private Object parseKey(final SerIterable iterable, StartElement start...
method parseValue (line 426) | private Object parseValue(final SerIterable iterable, StartElement sta...
method parseTypeAttribute (line 466) | private Class<?> parseTypeAttribute(StartElement start, Class<?> defau...
method advanceToStartElement (line 476) | private StartElement advanceToStartElement() throws Exception {
method advanceAndParseText (line 487) | private String advanceAndParseText() throws Exception {
method nextEvent (line 503) | private XMLEvent nextEvent(String location) throws Exception {
FILE: src/main/java/org/joda/beans/ser/xml/JodaBeanXmlWriter.java
class JodaBeanXmlWriter (line 68) | public class JodaBeanXmlWriter {
method JodaBeanXmlWriter (line 100) | public JodaBeanXmlWriter(JodaBeanSer settings) {
method JodaBeanXmlWriter (line 111) | public JodaBeanXmlWriter(JodaBeanSer settings, StringBuilder builder) {
method write (line 125) | public String write(Bean bean) {
method write (line 136) | public String write(Bean bean, boolean rootType) {
method write (line 155) | public void write(Bean bean, Appendable output) throws IOException {
method write (line 167) | public void write(Bean bean, boolean rootType, Appendable output) thro...
method writeHeader (line 183) | private void writeHeader() throws IOException {
method willWriteBean (line 188) | private boolean willWriteBean(Bean bean) {
method writeBean (line 197) | private void writeBean(Bean bean, String currentIndent) throws IOExcep...
method writeBean (line 224) | private void writeBean(String currentIndent, String tagName, StringBui...
method writeElements (line 243) | private void writeElements(String currentIndent, String tagName, Strin...
method writeElements (line 260) | private void writeElements(String currentIndent, SerIterator itemItera...
method convertToString (line 315) | private String convertToString(StringConverter<Object> converter, Obje...
method writeKeyElement (line 326) | private void writeKeyElement(String currentIndent, Object key, SerIter...
method writeValueElement (line 345) | private void writeValueElement(String currentIndent, String tagName, S...
method writeSimple (line 368) | private void writeSimple(String currentIndent, String tagName, StringB...
method appendEncoded (line 399) | private void appendEncoded(String text) throws IOException {
method appendAttribute (line 428) | private void appendAttribute(Appendable buf, String attrName, String e...
method encodeAttribute (line 432) | private String encodeAttribute(String text) {
method appendEncodedAttribute (line 439) | private StringBuilder appendEncodedAttribute(StringBuilder builder, St...
FILE: src/main/java/org/joda/beans/test/BeanAssert.java
class BeanAssert (line 32) | public final class BeanAssert {
method BeanAssert (line 37) | private BeanAssert() {
method assertBeanEquals (line 47) | public static void assertBeanEquals(Bean expected, Bean actual) {
method assertBeanEquals (line 62) | public static void assertBeanEquals(Bean expected, Bean actual, double...
method assertBeanEquals (line 73) | public static void assertBeanEquals(String baseMsg, Bean expected, Bea...
method assertBeanEquals (line 89) | public static void assertBeanEquals(String baseMsg, Bean expected, Bea...
method assertBeanEqualsFullDetail (line 112) | public static void assertBeanEqualsFullDetail(Bean expected, Bean actu...
method assertBeanEqualsFullDetail (line 127) | public static void assertBeanEqualsFullDetail(Bean expected, Bean actu...
method assertBeanEqualsFullDetail (line 139) | public static void assertBeanEqualsFullDetail(String baseMsg, Bean exp...
method assertBeanEqualsFullDetail (line 156) | public static void assertBeanEqualsFullDetail(String baseMsg, Bean exp...
method buildMessage (line 183) | private static String buildMessage(String baseMsg, int maxErrors, Bean...
method buildMessage (line 205) | private static void buildMessage(List<String> diffs, String prefix, Ob...
method buildSummary (line 314) | private static String buildSummary(Object obj, boolean includeType) {
FILE: src/main/java/org/joda/beans/test/BeanComparisonError.java
class BeanComparisonError (line 25) | class BeanComparisonError extends AssertionError {
method BeanComparisonError (line 47) | BeanComparisonError(String message, Bean expected, Bean actual) {
method getExpected (line 58) | public Bean getExpected() {
method getActual (line 66) | public Bean getActual() {
FILE: src/main/java/org/joda/beans/test/JodaBeanTests.java
class JodaBeanTests (line 65) | public final class JodaBeanTests {
method coverMutableBean (line 85) | public static void coverMutableBean(Bean bean) {
method coverImmutableBean (line 97) | public static void coverImmutableBean(ImmutableBean bean) {
method coverBeanEquals (line 112) | @SuppressWarnings("unlikely-arg-type")
method coverBean (line 161) | private static void coverBean(Bean bean) {
method coverProperties (line 168) | private static void coverProperties(Bean bean) {
method coverNonProperties (line 225) | private static void coverNonProperties(Bean bean) {
method coverEquals (line 287) | @SuppressWarnings("unlikely-arg-type")
method sampleValues (line 323) | private static List<?> sampleValues(MetaProperty<?> mp) {
method buildSampleConstants (line 359) | private static List<Object> buildSampleConstants(Class<?> queryType, C...
method assertNotNull (line 448) | private static void assertNotNull(Object obj) {
method assertNotNull (line 454) | private static void assertNotNull(Object obj, String message) {
method assertSame (line 460) | private static void assertSame(Object a, Object b) {
method assertNotSame (line 466) | private static void assertNotSame(Object a, Object b) {
method assertEquals (line 472) | private static void assertEquals(Object actual, Object expected) {
method assertEquals (line 478) | private static void assertEquals(int actual, int expected) {
method assertTrue (line 484) | private static void assertTrue(boolean actual) {
method assertFalse (line 490) | private static void assertFalse(boolean actual) {
method assertThrows (line 497) | private static void assertThrows(AssertRunnable runner, Class<? extend...
method ignoreThrows (line 514) | private static void ignoreThrows(AssertRunnable runner) {
type AssertRunnable (line 523) | @FunctionalInterface
method run (line 531) | void run() throws Throwable;
FILE: src/test/java/org/joda/beans/Examples.java
class Examples (line 25) | public class Examples {
method main (line 27) | public static void main(String[] args) {
method validateNotEmpty (line 103) | private static boolean validateNotEmpty(Property<String> property) {
FILE: src/test/java/org/joda/beans/TestAddress.java
class TestAddress (line 33) | class TestAddress {
method test_bean (line 40) | @Test
method test_bean_invalidPropertyName (line 58) | @Test
method test_builder1 (line 65) | @Test
method test_builder2 (line 86) | @Test
method test_builder_getInvalidPropertyName (line 100) | @Test
method test_builder_setInvalidPropertyName (line 107) | @Test
method test_metaBean (line 115) | @Test
method test_metaBean_invalidPropertyName (line 143) | @Test
method test_namedPropertyMethod (line 151) | @Test
method test_property_String (line 169) | @Test
method test_namedMetaPropertyMethod (line 187) | @Test
method test_metaProperty_String (line 207) | @Test
method test_metaProperty_types (line 227) | @Test
method test_metaProperty_annotations (line 236) | @Test
FILE: src/test/java/org/joda/beans/TestArray.java
class TestArray (line 26) | class TestArray {
method test_bean (line 28) | @Test
FILE: src/test/java/org/joda/beans/TestBasicBean.java
class TestBasicBean (line 29) | class TestBasicBean {
method test_equals (line 31) | @Test
method test_hashCode (line 54) | @Test
method test_toString (line 65) | @Test
method test_property_equals (line 79) | @Test
method test_property_hashCode (line 92) | @Test
method test_property_toString (line 105) | @Test
method test_metaProperty_equals (line 116) | @Test
method test_metaProperty_hashCode (line 124) | @Test
method test_metaProperty_toString (line 132) | @Test
FILE: src/test/java/org/joda/beans/TestBeanCodeGenException.java
class TestBeanCodeGenException (line 28) | class TestBeanCodeGenException {
method testMessage (line 32) | @Test
FILE: src/test/java/org/joda/beans/TestBeanIterator.java
class TestBeanIterator (line 33) | class TestBeanIterator {
method test_iteration_noChildren (line 35) | @Test
method test_iteration_nullChild (line 44) | @Test
method test_iteration_childWithChildren (line 53) | @Test
method test_iteration_childWithChildrenOfChildren (line 73) | @Test
method test_iteration_childWithListOfChildren (line 99) | @Test
method test_iteration_childWithNoChildren_FlexiBean (line 143) | @Test
method test_iteration_childWithOneChild_FlexiBean (line 152) | @Test
FILE: src/test/java/org/joda/beans/TestClone.java
class TestClone (line 33) | class TestClone {
method test_bean (line 35) | @Test
method test_noclone_on_mutable_bean_option (line 62) | @Test
FILE: src/test/java/org/joda/beans/TestCompanyAddress.java
class TestCompanyAddress (line 33) | class TestCompanyAddress {
method test_bean (line 41) | @Test
method test_bean_invalidPropertyName (line 61) | @Test
method test_metaBean (line 69) | @Test
method test_metaBean_invalidPropertyName (line 95) | @Test
method test_namedPropertyMethod_street (line 103) | @Test
method test_namedPropertyMethod_companyName (line 120) | @Test
method test_property_String_street (line 138) | @Test
method test_property_String_companyName (line 155) | @Test
method test_namedMetaPropertyMethod_street (line 173) | @Test
method test_namedMetaPropertyMethod_companyName (line 192) | @Test
method test_metaProperty_String_street (line 212) | @Test
method test_metaProperty_String_companyName (line 231) | @Test
method test_metaProperty_types (line 251) | @Test
method test_metaProperty_annotations (line 260) | @Test
FILE: src/test/java/org/joda/beans/TestFinalFieldBean.java
class TestFinalFieldBean (line 33) | class TestFinalFieldBean {
method setUp (line 38) | @BeforeEach
method test_finalString (line 48) | @Test
method test_nonFinalString (line 66) | @Test
method test_finalList (line 85) | @Test
method test_finalBean (line 109) | @Test
method test_finalPerson (line 133) | @Test
FILE: src/test/java/org/joda/beans/TestFlexiBean.java
class TestFlexiBean (line 35) | class TestFlexiBean {
method test_constructor (line 37) | @Test
method test_constructor_copy (line 43) | @Test
method test_serialization (line 54) | @Test
method test_clone (line 73) | @Test
method test_equalsHashCode (line 83) | @Test
method test_toString (line 107) | @Test
method test_basics (line 115) | @Test
method test_type_string (line 153) | @Test
method test_type_long (line 164) | @Test
method test_type_int (line 176) | @Test
method test_type_double (line 188) | @Test
method test_type_boolean (line 200) | @Test
method test_propertyDefine_propertyRemove (line 211) | @Test
method test_metaBean (line 224) | @Test
method test_putAll (line 245) | @Test
method test_remove (line 267) | @Test
method test_toMap (line 278) | @Test
method test_invalidProperty (line 292) | @Test
method test_append_invalidProperty (line 299) | @Test
method test_set_invalidProperty (line 306) | @Test
method test_put_invalidProperty (line 313) | @Test
method test_putAll_invalidKey (line 320) | @Test
FILE: src/test/java/org/joda/beans/TestImmutable.java
class TestImmutable (line 41) | class TestImmutable {
method test_bean (line 43) | @Test
method test_builder (line 56) | @Test
method test_with (line 75) | @Test
method test_annotations (line 90) | @Test
method test_builder_getInvalidPropertyName (line 108) | @Test
method test_builder_setInvalidPropertyName (line 115) | @Test
method test_builder_subclass (line 123) | @Test
method test_builder_subclass_getInvalidPropertyName (line 142) | @Test
method test_builder_subclass_setInvalidPropertyName (line 149) | @Test
method test_builder_defaultValue (line 157) | @Test
method test_builder_methodTypes (line 169) | @Test
FILE: src/test/java/org/joda/beans/TestJodaBeanUtils.java
class TestJodaBeanUtils (line 48) | class TestJodaBeanUtils {
method test_notNull_ok (line 51) | @Test
method test_notNull_notOk (line 56) | @Test
method test_notBlank_String_ok (line 63) | @Test
method test_notBlank_String_notOk_empty (line 68) | @Test
method test_notBlank_String_notOk_allWhitespace (line 74) | @Test
method test_notBlank_String_notOk_null (line 80) | @Test
method test_notEmpty_String_ok (line 87) | @Test
method test_notEmpty_String_notOk_empty (line 92) | @Test
method test_notEmpty_String_notOk_null (line 98) | @Test
method test_notEmpty_Collection_ok (line 105) | @Test
method test_notEmpty_Collection_notOk_empty (line 110) | @Test
method test_notEmpty_Collection_notOk_null (line 116) | @Test
method test_notEmpty_Map_ok (line 123) | @Test
method test_notEmpty_Map_notOk_empty (line 130) | @Test
method test_notEmpty_Map_notOk_null (line 136) | @Test
method test_propertiesEqual_propertiesHashCode (line 143) | @Test
method test_equal (line 169) | @Test
method test_equal_ObjectArray (line 177) | @Test
method test_equal_IntegerArray (line 189) | @Test
method test_equal_IntegerNumberArray (line 201) | @Test
method test_equal_IntegerIntArray (line 209) | @Test
method test_equal_IntArray (line 217) | @Test
method test_equal_MixedArrays (line 229) | @Test
method test_equal_LongArray (line 249) | @Test
method test_equal_DoubleArray (line 261) | @Test
method test_equal_FloatArray (line 273) | @Test
method test_equal_ShortArray (line 285) | @Test
method test_equal_CharArray (line 297) | @Test
method test_equal_ByteArray (line 309) | @Test
method test_equal_BooleanArray (line 321) | @Test
method test_equal_floats (line 334) | @Test
method test_equalWithTolerance_floats_zeroTolerance (line 340) | @Test
method test_equalWithTolerance_floats_someTolerance (line 365) | @Test
method test_equal_doubles (line 396) | @Test
method test_equalWithTolerance_doubles_zeroTolerance (line 414) | @Test
method test_equalWithTolerance_doubles_someTolerance (line 439) | @Test
method test_hashCode_Object (line 470) | @Test
method test_copy (line 485) | @Test
method test_copyInto (line 498) | @Test
method test_cloneArray_primitive1d (line 511) | @Test
method test_cloneArray_primitive2d (line 522) | @Test
method test_cloneArray_string2d (line 533) | @Test
method test_clone (line 544) | @Test
method test_listType_Person_addressList (line 559) | @Test
method test_listType_Person_addressesList (line 566) | @Test
method test_multisetType_Person_otherAddressMap (line 573) | @Test
method test_integerType_Person_collectionTypeInvalid (line 580) | @Test
method test_collectionTypeTypes_valid (line 588) | @Test
method test_collectionTypeTypes_invalidNoGenerics (line 596) | @Test
method test_collectionTypeTypes_invalidNotCollection (line 604) | @Test
method test_mapType_Person_otherAddressMap (line 613) | @Test
method test_integerType_Person_mapKeyTypeInvalid (line 621) | @Test
method test_collectionType_Person_mapKeyTypeInvalid (line 629) | @Test
method test_mapType_wildcard (line 637) | @Test
method test_mapValueTypeTypes_valid (line 647) | @Test
method test_mapValueTypeTypes_invalidNoGenerics (line 655) | @Test
method test_mapValueTypeTypes_invalidNotMap (line 663) | @Test
method equalIgnoring (line 672) | @Test
method equalIgnoring_same (line 685) | @Test
method equalIgnoring_nullFirst (line 693) | @Test
method equalIgnoring_nullSecond (line 700) | @Test
method equalIgnoring_nullArray (line 707) | @Test
method createBean (line 714) | private static Bean createBean(String first, String second, String nam...
method test_compare_ascending (line 723) | @Test
method test_compare_descending (line 739) | @Test
method test_compare_ascending_null (line 755) | @Test
method test_compare_descending_null (line 761) | @Test
FILE: src/test/java/org/joda/beans/TestLight.java
class TestLight (line 38) | class TestLight {
method test_immutable (line 40) | @Test
method test_immutable_order (line 111) | @Test
method test_mutable (line 140) | @Test
FILE: src/test/java/org/joda/beans/TestMapBean.java
class TestMapBean (line 26) | class TestMapBean {
method test_clone (line 28) | @Test
method test_equalsHashCode (line 48) | @Test
method test_propertyDefine_propertyRemove (line 72) | @Test
method test_metaBean (line 85) | @Test
FILE: src/test/java/org/joda/beans/TestMetaBean.java
class TestMetaBean (line 30) | class TestMetaBean {
method test_registerMetaBean (line 33) | @Test
method test_metaBean (line 43) | @Test
method test_metaBean_FlexiBean (line 50) | @Test
method test_metaBean_MapBean (line 55) | @Test
method test_metaBean_notFound (line 60) | @Test
FILE: src/test/java/org/joda/beans/TestMetaBeanProvider.java
class TestMetaBeanProvider (line 21) | class TestMetaBeanProvider implements MetaBeanProvider {
method findMetaBean (line 23) | @Override
FILE: src/test/java/org/joda/beans/TestMetaBeans.java
class TestMetaBeans (line 28) | class TestMetaBeans {
method test_metaBeanProviderAnnotation (line 30) | @Test
class AnnotatedBean (line 39) | @MetaProvider(TestMetaBeanProvider.class)
method metaBean (line 42) | @Override
method property (line 47) | @Override
method propertyNames (line 52) | @Override
class AnnotatedMetaBean (line 58) | class AnnotatedMetaBean implements MetaBean {
method isBuildable (line 60) | @Override
method builder (line 65) | @Override
method beanType (line 70) | @Override
method metaPropertyMap (line 75) | @Override
FILE: src/test/java/org/joda/beans/TestMetaInvoke.java
class TestMetaInvoke (line 48) | class TestMetaInvoke {
method test_method_call_compiles (line 50) | @Test
FILE: src/test/java/org/joda/beans/TestMinimal.java
class TestMinimal (line 39) | class TestMinimal {
method test_immutable (line 41) | @Test
method test_immutable_order (line 103) | @Test
method test_mutable (line 127) | @Test
method test_mutable_order (line 195) | @Test
FILE: src/test/java/org/joda/beans/TestMutableDerived.java
class TestMutableDerived (line 26) | class TestMutableDerived {
method test_mutableDerivedBean (line 28) | @Test
method test_mutableDerivedBean_builder (line 47) | @Test
FILE: src/test/java/org/joda/beans/TestMutableListBeans.java
class TestMutableListBeans (line 27) | class TestMutableListBeans {
method test_finalBean_noList (line 29) | @Test
method test_finalBean_list (line 35) | @Test
method test_nonFinalBean_noList (line 41) | @Test
method test_nonFinalBean_list (line 47) | @Test
FILE: src/test/java/org/joda/beans/TestOptionalBean.java
class TestOptionalBean (line 29) | class TestOptionalBean {
method test_optional_empty (line 31) | @Test
method test_optional_full (line 51) | @Test
method test_optional_property (line 65) | @Test
FILE: src/test/java/org/joda/beans/TestPair.java
class TestPair (line 27) | class TestPair {
method test_equalsHashCode (line 29) | @Test
method test_toString (line 55) | @Test
FILE: src/test/java/org/joda/beans/TestPerson.java
class TestPerson (line 41) | class TestPerson {
method test_bean (line 48) | @Test
method test_bean_invalidPropertyName (line 66) | @Test
method test_metaBean (line 74) | @Test
method test_metaBean_invalidPropertyName (line 100) | @Test
method test_metaProperty_annotation_notFound (line 107) | @Test
method test_metaBean_abstract (line 115) | @Test
method test_namedPropertyMethod (line 130) | @Test
method test_property_String (line 148) | @Test
method test_namedMetaPropertyMethod (line 166) | @Test
method test_metaProperty_String (line 186) | @Test
method test_metaProperty_types_addressList (line 206) | @Test
method test_BeanUtils_addressList (line 221) | @Test
method test_metaProperty_types_otherAddressMap (line 236) | @Test
method test_metaProperty_annotations_addressList (line 252) | @Test
method test_metaProperty_annotations_extensions (line 261) | @Test
method test_metaBean_annotations (line 274) | @Test
FILE: src/test/java/org/joda/beans/TestPropertyPath.java
class TestPropertyPath (line 34) | class TestPropertyPath {
method test_get (line 37) | @Test
FILE: src/test/java/org/joda/beans/TestPropertyStyle.java
class TestPropertyStyle (line 25) | class TestPropertyStyle {
method test_READ_ONLY (line 27) | @Test
method test_READ_WRITE (line 37) | @Test
method test_WRITE_ONLY (line 47) | @Test
method test_DERIVED (line 57) | @Test
method test_IMMUTABLE (line 67) | @Test
FILE: src/test/java/org/joda/beans/TestRecordBean.java
class TestRecordBean (line 33) | class TestRecordBean {
method test_metaBean_public (line 41) | @Test
method test_metaBean_private (line 95) | @Test
FILE: src/test/java/org/joda/beans/TestReflective.java
class TestReflective (line 28) | class TestReflective {
method test_mutable (line 30) | @Test
FILE: src/test/java/org/joda/beans/TestResolvedType.java
class TestResolvedType (line 63) | class TestResolvedType {
method data_resolvedTypes (line 67) | static Object[][] data_resolvedTypes() {
method test_basics (line 223) | @ParameterizedTest
method test_queries (line 242) | @ParameterizedTest
method test_javaType (line 285) | @ParameterizedTest
method test_jodaConvert (line 299) | @ParameterizedTest
method test_hidden (line 313) | @Test
method data_boxed (line 327) | static Object[][] data_boxed() {
method test_boxed (line 342) | @ParameterizedTest
method data_invalidParse (line 351) | static Object[][] data_invalidParse() {
method test_invalidParse (line 373) | @ParameterizedTest
method test_enumSubclass (line 382) | @Test
method data_dynamicTypes (line 403) | static Object[][] data_dynamicTypes() throws Exception {
method test_dynamicTypes (line 415) | @ParameterizedTest
FILE: src/test/java/org/joda/beans/TestResult.java
class TestResult (line 35) | class TestResult {
method test_bean (line 37) | @Test
method test_bean_invalidPropertyName (line 48) | @Test
method test_metaBean (line 56) | @Test
method test_metaBean_invalidPropertyName (line 68) | @Test
method test_genericType_abstract (line 76) | @Test
method test_genericType_Address (line 84) | @Test
method test_genericType_CompanyAddress (line 93) | @Test
method test_genericType_CompanyAddressMid (line 103) | @Test
FILE: src/test/java/org/joda/beans/TestSubBean.java
class TestSubBean (line 26) | class TestSubBean {
method test_subbean_toBuilder (line 28) | @Test
FILE: src/test/java/org/joda/beans/TestValidateBean.java
class TestValidateBean (line 27) | class TestValidateBean {
method test_notNull_set (line 29) | @Test
method test_notNull_propertySet (line 36) | @Test
method test_notNull_create (line 43) | @Test
method test_notNull_create_notIncluded (line 54) | @Test
method test_notBlank_set_null (line 61) | @Test
method test_notBlank_set_empty (line 68) | @Test
method test_notBlank_propertySet_null (line 75) | @Test
method test_notBlank_propertySet_empty (line 82) | @Test
method test_notEmpty_set_null (line 90) | @Test
method test_notEmpty_set_empty (line 97) | @Test
method test_notEmpty_propertySet_null (line 104) | @Test
method test_notEmpty_propertySet_empty (line 111) | @Test
method test_notEmpty_create_null (line 118) | @Test
method test_notEmpty_create_empty (line 128) | @Test
method test_notEmpty_create_notIncluded (line 139) | @Test
method test_static_set (line 150) | @Test
method test_static_propertySet (line 157) | @Test
method test_static_create (line 164) | @Test
method test_static_create_notIncluded (line 177) | @Test
method test_bean_set (line 184) | @Test
method test_bean_propertySet (line 191) | @Test
method test_bean_create (line 198) | @Test
method test_bean_create_notIncluded (line 210) | @Test
method test_subbean_create_notIncluded (line 217) | @Test
FILE: src/test/java/org/joda/beans/sample/AbstractResult.java
class AbstractResult (line 40) | @BeanDefinition
method getResultType (line 47) | @DerivedProperty
method meta (line 55) | @SuppressWarnings("rawtypes")
method metaAbstractResult (line 66) | @SuppressWarnings("unchecked")
method metaBean (line 75) | @SuppressWarnings("unchecked")
method getDocs (line 86) | public List<T> getDocs() {
method setDocs (line 94) | public void setDocs(List<T> docs) {
method docs (line 102) | public final Property<List<T>> docs() {
method resultType (line 111) | public final Property<String> resultType() {
method clone (line 116) | @Override
method equals (line 121) | @Override
method hashCode (line 133) | @Override
method toString (line 140) | @Override
method toString (line 153) | protected void toString(StringBuilder buf) {
class Meta (line 163) | public static class Meta<T extends Address> extends DirectMetaBean {
method Meta (line 192) | protected Meta() {
method metaPropertyGet (line 195) | @Override
method isBuildable (line 206) | @Override
method builder (line 211) | @Override
method beanType (line 216) | @SuppressWarnings({"unchecked", "rawtypes" })
method metaPropertyMap (line 222) | @Override
method docs (line 232) | public final MetaProperty<List<T>> docs() {
method resultType (line 240) | public final MetaProperty<String> resultType() {
method propertyGet (line 245) | @Override
method propertySet (line 256) | @SuppressWarnings("unchecked")
FILE: src/test/java/org/joda/beans/sample/Address.java
class Address (line 39) | @BeanDefinition
method meta (line 67) | public static Address.Meta meta() {
method metaBean (line 75) | @Override
method getNumber (line 86) | public int getNumber() {
method setNumber (line 95) | public void setNumber(int number) {
method number (line 104) | public final Property<Integer> number() {
method getStreet (line 113) | public String getStreet() {
method setStreet (line 121) | public void setStreet(String street) {
method street (line 129) | public final Property<String> street() {
method getCity (line 138) | public String getCity() {
method setCity (line 146) | public void setCity(String city) {
method city (line 154) | public final Property<String> city() {
method getOwner (line 163) | public Person getOwner() {
method setOwner (line 171) | public void setOwner(Person owner) {
method owner (line 179) | public final Property<Person> owner() {
method clone (line 184) | @Override
method equals (line 189) | @Override
method hashCode (line 204) | @Override
method toString (line 214) | @Override
method toString (line 227) | protected void toString(StringBuilder buf) {
class Meta (line 238) | public static class Meta extends DirectMetaBean {
method Meta (line 277) | protected Meta() {
method metaPropertyGet (line 280) | @Override
method builder (line 295) | @Override
method beanType (line 300) | @Override
method metaPropertyMap (line 305) | @Override
method number (line 315) | public final MetaProperty<Integer> number() {
method street (line 323) | public final MetaProperty<String> street() {
method city (line 331) | public final MetaProperty<String> city() {
method owner (line 339) | public final MetaProperty<Person> owner() {
method propertyGet (line 344) | @Override
method propertySet (line 359) | @Override
FILE: src/test/java/org/joda/beans/sample/AddressResult.java
class AddressResult (line 33) | @BeanDefinition
method getResultType (line 37) | @Override
method meta (line 47) | public static AddressResult.Meta meta() {
method metaBean (line 55) | @Override
method clone (line 61) | @Override
method equals (line 66) | @Override
method hashCode (line 77) | @Override
method toString (line 83) | @Override
method toString (line 96) | @Override
class Meta (line 105) | public static class Meta extends AbstractResult.Meta<Address> {
method Meta (line 120) | protected Meta() {
method builder (line 123) | @Override
method beanType (line 128) | @Override
method metaPropertyMap (line 133) | @Override
FILE: src/test/java/org/joda/beans/sample/ClonePerson.java
class ClonePerson (line 41) | @BeanDefinition
method ClonePerson (line 65) | public ClonePerson() {
method meta (line 73) | public static ClonePerson.Meta meta() {
method metaBean (line 81) | @Override
method getFirstNames (line 91) | public List<String> getFirstNames() {
method setFirstNames (line 99) | public void setFirstNames(List<String> firstNames) {
method firstNames (line 107) | public final Property<List<String>> firstNames() {
method getMiddleNames (line 116) | public String[] getMiddleNames() {
method setMiddleNames (line 124) | public void setMiddleNames(String[] middleNames) {
method middleNames (line 132) | public final Property<String[]> middleNames() {
method getSurname (line 141) | public String getSurname() {
method setSurname (line 149) | public void setSurname(String surname) {
method surname (line 157) | public final Property<String> surname() {
method getDateOfBirth (line 166) | public Date getDateOfBirth() {
method setDateOfBirth (line 174) | public void setDateOfBirth(Date dateOfBirth) {
method dateOfBirth (line 183) | public final Property<Date> dateOfBirth() {
method getDateOfDeath (line 192) | public Date getDateOfDeath() {
method setDateOfDeath (line 200) | public void setDateOfDeath(Date dateOfDeath) {
method dateOfDeath (line 208) | public final Property<Date> dateOfDeath() {
method getAddresses (line 217) | public List<Address> getAddresses() {
method setAddresses (line 225) | public void setAddresses(List<Address> addresses) {
method addresses (line 235) | public final Property<List<Address>> addresses() {
method getCompanies (line 244) | public Company[] getCompanies() {
method setCompanies (line 252) | public void setCompanies(Company[] companies) {
method companies (line 260) | public final Property<Company[]> companies() {
method getAmounts (line 269) | public int[] getAmounts() {
method setAmounts (line 277) | public void setAmounts(int[] amounts) {
method amounts (line 285) | public final Property<int[]> amounts() {
method clone (line 290) | @Override
method equals (line 295) | @Override
method hashCode (line 314) | @Override
method toString (line 328) | @Override
method toString (line 341) | protected void toString(StringBuilder buf) {
class Meta (line 356) | public static class Meta extends DirectMetaBean {
method Meta (line 421) | protected Meta() {
method metaPropertyGet (line 424) | @Override
method builder (line 447) | @Override
method beanType (line 452) | @Override
method metaPropertyMap (line 457) | @Override
method firstNames (line 467) | public final MetaProperty<List<String>> firstNames() {
method middleNames (line 475) | public final MetaProperty<String[]> middleNames() {
method surname (line 483) | public final MetaProperty<String> surname() {
method dateOfBirth (line 491) | public final MetaProperty<Date> dateOfBirth() {
method dateOfDeath (line 499) | public final MetaProperty<Date> dateOfDeath() {
method addresses (line 507) | public final MetaProperty<List<Address>> addresses() {
method companies (line 515) | public final MetaProperty<Company[]> companies() {
method amounts (line 523) | public final MetaProperty<int[]> amounts() {
method propertyGet (line 528) | @Override
method propertySet (line 551) | @SuppressWarnings("unchecked")
method validate (line 583) | @Override
FILE: src/test/java/org/joda/beans/sample/Company.java
class Company (line 38) | @BeanDefinition
method Company (line 49) | public Company() {
method Company (line 57) | public Company(String name) {
method meta (line 66) | public static Company.Meta meta() {
method metaBean (line 74) | @Override
method getCompanyName (line 84) | public String getCompanyName() {
method setCompanyName (line 92) | public void setCompanyName(String companyName) {
method companyName (line 100) | public final Property<String> companyName() {
method clone (line 105) | @Override
method equals (line 110) | @Override
method hashCode (line 122) | @Override
method toString (line 129) | @Override
method toString (line 142) | protected void toString(StringBuilder buf) {
class Meta (line 150) | public static class Meta extends DirectMetaBean {
method Meta (line 171) | protected Meta() {
method metaPropertyGet (line 174) | @Override
method builder (line 183) | @Override
method beanType (line 188) | @Override
method metaPropertyMap (line 193) | @Override
method companyName (line 203) | public final MetaProperty<String> companyName() {
method propertyGet (line 208) | @Override
method propertySet (line 217) | @Override
FILE: src/test/java/org/joda/beans/sample/CompanyAddress.java
class CompanyAddress (line 38) | @BeanDefinition
method meta (line 50) | public static CompanyAddress.Meta meta() {
method metaBean (line 63) | @Override
method getCompanyName (line 73) | public String getCompanyName() {
method setCompanyName (line 81) | public void setCompanyName(String companyName) {
method companyName (line 91) | public fin
Condensed preview — 427 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,953K chars).
[
{
"path": ".coderabbit.yaml",
"chars": 4566,
"preview": "language: en-GB\ntone_instructions: ''\nearly_access: false\nenable_free_tier: true\nreviews:\n profile: chill\n request_cha"
},
{
"path": ".github/FUNDING.yml",
"chars": 244,
"preview": "github: jodastephen\nopen_collective: joda\ntidelift: maven/org.joda:joda-beans\n\n# https://docs.github.com/en/repositories"
},
{
"path": ".github/SECURITY.md",
"chars": 420,
"preview": "# Security Policy\n\n## Supported Versions\n\nIf a security issue occurs, only the latest versions of v3.x and v2.x are guar"
},
{
"path": ".github/dependabot.yml",
"chars": 169,
"preview": "# Dependabot config\n\nversion: 2\nupdates:\n- package-ecosystem: \"maven\"\n directory: \"/\"\n schedule:\n interval: weekly\n"
},
{
"path": ".github/maven-settings.xml",
"chars": 567,
"preview": "<settings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n "
},
{
"path": ".github/workflows/build.yml",
"chars": 1258,
"preview": "name: Build\n\non: \n push:\n branches:\n - '*'\n pull_request:\n branches:\n - 'main'\n schedule:\n - cron:"
},
{
"path": ".github/workflows/release.yml",
"chars": 1912,
"preview": "name: Release\n\non:\n push:\n tags:\n - 'release*'\n\npermissions:\n contents: write\n\njobs:\n build:\n runs-on: ubu"
},
{
"path": ".github/workflows/website.yml",
"chars": 1906,
"preview": "name: Website\n\non: \n push:\n tags:\n - 'website*'\n\npermissions:\n contents: write\n\njobs:\n build:\n runs-on: ub"
},
{
"path": ".gitignore",
"chars": 107,
"preview": "/bin/\n/target/\n*.log\n/tests/\n/test-output/\n.checkstyle\n.classpath\n.project\n/.settings/\n.idea\n*.iml\n*.class\n"
},
{
"path": "LICENSE.txt",
"chars": 11560,
"preview": "\r\n Apache License\r\n Version 2.0, January 2004\r\n "
},
{
"path": "NOTICE.txt",
"chars": 137,
"preview": "Joda Beans\r\nCopyright 2001-present Stephen Colebourne\r\n\r\nThis product includes software developed by\r\nJoda.org (https://"
},
{
"path": "README.md",
"chars": 4861,
"preview": "Joda-Beans\n------------\n\nJoda-Beans provides a small framework that adds properties to Java, greatly enhancing JavaBeans"
},
{
"path": "RELEASE-NOTES.txt",
"chars": 406,
"preview": "\r\nJoda-Beans\r\n================================================\r\nJoda-Beans is a library that provides full bean and prop"
},
{
"path": "pom.xml",
"chars": 31159,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "src/changes/changes.xml",
"chars": 56973,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<document>\n <properties>\n <title>Changes</title>\n <author>Stephen Colebou"
},
{
"path": "src/main/assembly/dist.xml",
"chars": 865,
"preview": "<assembly>\r\n <id>dist</id>\r\n <formats>\r\n <format>tar.gz</format>\r\n <format>zip</format>\r\n </forma"
},
{
"path": "src/main/checkstyle/checkstyle.xml",
"chars": 5662,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE module PUBLIC \"-//Puppy Crawl//DTD Check Configuration 1.3//EN\" \"http:/"
},
{
"path": "src/main/java/module-info.java",
"chars": 1810,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/Bean.java",
"chars": 2543,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/BeanBuilder.java",
"chars": 3057,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/BeanIterator.java",
"chars": 2937,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/DynamicBean.java",
"chars": 2422,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/DynamicMetaBean.java",
"chars": 2790,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ImmutableBean.java",
"chars": 831,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/JodaBeanUtils.java",
"chars": 45063,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/MetaBean.java",
"chars": 9690,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/MetaBeanProvider.java",
"chars": 1043,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/MetaBeans.java",
"chars": 7253,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/MetaProperty.java",
"chars": 13734,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/MetaProvider.java",
"chars": 1313,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/Property.java",
"chars": 4570,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/PropertyPath.java",
"chars": 8786,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/PropertyStyle.java",
"chars": 3680,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ResolvedType.java",
"chars": 34419,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/TypedMetaBean.java",
"chars": 1106,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanCodeGen.java",
"chars": 13680,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/gen/BeanCodeGenException.java",
"chars": 2196,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanData.java",
"chars": 32940,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanDefinition.java",
"chars": 5322,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanGen.java",
"chars": 66099,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanGenConfig.java",
"chars": 12763,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BeanParser.java",
"chars": 27436,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/BuilderGen.java",
"chars": 4667,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/CopyGen.java",
"chars": 5782,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/DerivedProperty.java",
"chars": 1298,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/GetterGen.java",
"chars": 13960,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/gen/ImmutableConstructor.java",
"chars": 1685,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/ImmutableDefaults.java",
"chars": 1724,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/ImmutablePreBuild.java",
"chars": 2174,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/ImmutableValidator.java",
"chars": 1595,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/PropertyData.java",
"chars": 34799,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/PropertyDefinition.java",
"chars": 10811,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/gen/PropertyGen.java",
"chars": 15274,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/gen/PropertyParser.java",
"chars": 19576,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/gen/SetterGen.java",
"chars": 9297,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/gen/package-info.java",
"chars": 1128,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/BasicBean.java",
"chars": 2447,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/BasicBeanBuilder.java",
"chars": 2996,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/BasicImmutableBeanBuilder.java",
"chars": 2437,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/BasicMetaBean.java",
"chars": 1062,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/BasicMetaProperty.java",
"chars": 2155,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/BasicProperty.java",
"chars": 3349,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/BasicPropertyMap.java",
"chars": 3986,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/BufferingBeanBuilder.java",
"chars": 4712,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/RecordBean.java",
"chars": 3755,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/RecordBeanBuilder.java",
"chars": 2110,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/RecordMetaBean.java",
"chars": 5891,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/RecordMetaProperty.java",
"chars": 3699,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/StandaloneMetaProperty.java",
"chars": 4654,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectBean.java",
"chars": 1043,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectBeanBuilder.java",
"chars": 1393,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectFieldsBeanBuilder.java",
"chars": 2253,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectMetaBean.java",
"chars": 4336,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectMetaProperty.java",
"chars": 12014,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectMetaPropertyMap.java",
"chars": 8187,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/DirectPrivateBeanBuilder.java",
"chars": 2255,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/MinimalMetaBean.java",
"chars": 9909,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/MinimalMetaProperty.java",
"chars": 6470,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/direct/package-info.java",
"chars": 928,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/flexi/FlexiBean.java",
"chars": 15658,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/flexi/FlexiBeanBuilder.java",
"chars": 2273,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/flexi/FlexiMetaBean.java",
"chars": 3950,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/flexi/FlexiMetaProperty.java",
"chars": 2749,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/flexi/package-info.java",
"chars": 966,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/LightBeanBuilder.java",
"chars": 3142,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/LightMetaBean.java",
"chars": 18982,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/LightMetaProperty.java",
"chars": 10927,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/PropertyGetter.java",
"chars": 953,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/PropertySetter.java",
"chars": 965,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/light/package-info.java",
"chars": 713,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/map/MapBean.java",
"chars": 3447,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/map/MapBeanBuilder.java",
"chars": 2251,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/map/MapBeanMetaProperty.java",
"chars": 2731,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/map/MapMetaBean.java",
"chars": 3752,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/map/package-info.java",
"chars": 875,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/package-info.java",
"chars": 1015,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/impl/reflection/ReflectiveMetaBean.java",
"chars": 4652,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/reflection/ReflectiveMetaProperty.java",
"chars": 8697,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/impl/reflection/package-info.java",
"chars": 781,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/package-info.java",
"chars": 1352,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/CollectSerIteratorFactory.java",
"chars": 9207,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/DefaultDeserializer.java",
"chars": 2161,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/GuavaSerIteratorFactory.java",
"chars": 36342,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/JodaBeanMimeType.java",
"chars": 1210,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/JodaBeanSer.java",
"chars": 18912,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/JodaBeanSerFormat.java",
"chars": 2992,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/JodaBeanSmartReader.java",
"chars": 8285,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/LenientDeserializer.java",
"chars": 1490,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/LinkedByteArrayOutputStream.java",
"chars": 5904,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerCategory.java",
"chars": 955,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerDeserializer.java",
"chars": 5925,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerDeserializerProvider.java",
"chars": 1703,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerDeserializers.java",
"chars": 12694,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerIterable.java",
"chars": 2711,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerIterator.java",
"chars": 3475,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerIteratorFactory.java",
"chars": 34160,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerOptional.java",
"chars": 5755,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/SerTypeMapper.java",
"chars": 10113,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/AbstractBinReader.java",
"chars": 21349,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/AbstractBinWriter.java",
"chars": 12443,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/BeanPack.java",
"chars": 9514,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/BeanPackInput.java",
"chars": 14432,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/BeanPackOutput.java",
"chars": 13891,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/BeanPackVisualizer.java",
"chars": 6977,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/BeanReferences.java",
"chars": 13711,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanBinFormat.java",
"chars": 5712,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanBinReader.java",
"chars": 5450,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanBinWriter.java",
"chars": 4859,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanPackedBinReader.java",
"chars": 46888,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanPackedBinWriter.java",
"chars": 36938,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanReferencingBinReader.java",
"chars": 19686,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanReferencingBinWriter.java",
"chars": 8219,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanStandardBinReader.java",
"chars": 1021,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/JodaBeanStandardBinWriter.java",
"chars": 31878,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/MsgPack.java",
"chars": 6391,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/MsgPackInput.java",
"chars": 7856,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/MsgPackOutput.java",
"chars": 9635,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/MsgPackVisualizer.java",
"chars": 5417,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/bin/package-info.java",
"chars": 715,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/AbstractJsonReader.java",
"chars": 20173,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JodaBeanJsonNumberFormat.java",
"chars": 1571,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JodaBeanJsonReader.java",
"chars": 3299,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JodaBeanJsonWriter.java",
"chars": 39740,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JodaBeanSimpleJsonReader.java",
"chars": 2567,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JodaBeanSimpleJsonWriter.java",
"chars": 6681,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JsonEvent.java",
"chars": 865,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JsonInput.java",
"chars": 12113,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/JsonOutput.java",
"chars": 9268,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/json/package-info.java",
"chars": 705,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/map/JodaBeanSimpleMapReader.java",
"chars": 15483,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/map/JodaBeanSimpleMapWriter.java",
"chars": 11231,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/map/package-info.java",
"chars": 718,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/package-info.java",
"chars": 925,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/xml/JodaBeanXml.java",
"chars": 3164,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/xml/JodaBeanXmlReader.java",
"chars": 21445,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/xml/JodaBeanXmlWriter.java",
"chars": 20963,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/ser/xml/package-info.java",
"chars": 703,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/test/BeanAssert.java",
"chars": 14169,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/test/BeanComparisonError.java",
"chars": 1853,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/main/java/org/joda/beans/test/JodaBeanTests.java",
"chars": 22588,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/java/org/joda/beans/test/package-info.java",
"chars": 805,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/main/resources/org/joda/beans/gen/guava.ini",
"chars": 6329,
"preview": "# copies requiring Guava library or Joda-Collect\n\n# ImmutableCollection is abstract, thus uses ImmutableList/ArrayList\n#"
},
{
"path": "src/main/resources/org/joda/beans/gen/jdk.ini",
"chars": 2512,
"preview": "#copies using JDK 6 classes only\n\n# how to copy $value to make it immutable\n[immutable.builder.to.immutable]\nCollection "
},
{
"path": "src/site/markdown/enterprise.md",
"chars": 2980,
"preview": "## Joda-Beans for Enterprise\n\n### Available as part of the Tidelift Subscription\n\n**Tidelift** is working with the maint"
},
{
"path": "src/site/markdown/index.md",
"chars": 6923,
"preview": "## <i></i> About\n\n**Joda-Beans** provides a small framework that adds properties to Java, greatly enhancing JavaBeans.\n\n"
},
{
"path": "src/site/markdown/licensecover.md",
"chars": 440,
"preview": "## License information\n\nJoda-Beans source code is released under the business-friendly [Apache 2.0 license](licenses.htm"
},
{
"path": "src/site/markdown/migration.md",
"chars": 1431,
"preview": "## Migration to v2.0\n\nJoda-Beans v2.0 has some incompatible changes.\n\n### BeanQuery\n\nThe `BeanQuery` interface has been "
},
{
"path": "src/site/markdown/related.md",
"chars": 865,
"preview": "## Related projects\n\nHere are links to a number of projects related to **Joda-Beans**.\nThese projects are independent - "
},
{
"path": "src/site/markdown/userguide-codegen.md",
"chars": 22785,
"preview": "## User guide - Code generation\n\nThis part of the user guide provides information on code generation of beans.\nSee the ["
},
{
"path": "src/site/markdown/userguide-serialization.md",
"chars": 4757,
"preview": "## User guide - Serialization\n\nThis part of the user guide provides information on serialization of beans.\nSee the [main"
},
{
"path": "src/site/markdown/userguide.md",
"chars": 7052,
"preview": "## User guide\n\nJoda-Beans is a small library that adds properties to the Java programming language.\nIt consists of these"
},
{
"path": "src/site/resources/css/site.css",
"chars": 1682,
"preview": "/* Fix broken definition that causes hyperlinks to break */\r\nh1[id]:before,\r\nh2[id]:before,\r\nh3[id]:before,\r\nh4[id]:befo"
},
{
"path": "src/site/resources/download.html",
"chars": 153,
"preview": "<head>\n<title>OpenGamma</title>\n<meta http-equiv=\"REFRESH\" content=\"0;url=https://github.com/JodaOrg/joda-beans/releases"
},
{
"path": "src/site/site.xml",
"chars": 3414,
"preview": "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n<project name=\"Joda-Beans\">\r\n <publishDate position=\"bottom\" format=\"yyyy-"
},
{
"path": "src/test/java/org/joda/beans/Examples.java",
"chars": 4092,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestAddress.java",
"chars": 9510,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/test/java/org/joda/beans/TestArray.java",
"chars": 1542,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestBasicBean.java",
"chars": 4164,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/test/java/org/joda/beans/TestBeanCodeGenException.java",
"chars": 1221,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestBeanIterator.java",
"chars": 5942,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestClone.java",
"chars": 2697,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestCompanyAddress.java",
"chars": 10996,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/test/java/org/joda/beans/TestFinalFieldBean.java",
"chars": 7055,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestFlexiBean.java",
"chars": 11364,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestImmutable.java",
"chars": 7770,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestJodaBeanUtils.java",
"chars": 32069,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestLight.java",
"chars": 10766,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMapBean.java",
"chars": 3518,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMetaBean.java",
"chars": 2171,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMetaBeanProvider.java",
"chars": 943,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMetaBeans.java",
"chars": 2241,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMetaInvoke.java",
"chars": 5316,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMinimal.java",
"chars": 10569,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMutableDerived.java",
"chars": 2377,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestMutableListBeans.java",
"chars": 1700,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestOptionalBean.java",
"chars": 3071,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestPair.java",
"chars": 1931,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestPerson.java",
"chars": 12006,
"preview": "/*\r\n * Copyright 2001-present Stephen Colebourne\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "src/test/java/org/joda/beans/TestPropertyPath.java",
"chars": 5405,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "src/test/java/org/joda/beans/TestPropertyStyle.java",
"chars": 3078,
"preview": "/*\n * Copyright 2001-present Stephen Colebourne\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
}
]
// ... and 227 more files (download for full content)
About this extraction
This page contains the full source code of the JodaOrg/joda-beans GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 427 files (3.6 MB), approximately 967.7k tokens, and a symbol index with 7014 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.