├── CONTRIBUTING.md
├── LICENSE
├── basics
├── ant
│ ├── .classpath
│ ├── .project
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── jvnet
│ │ └── jaxb2_commons
│ │ └── xjc
│ │ └── XJC2Task.java
├── basic
│ ├── .classpath
│ ├── .project
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── plugin
│ │ │ │ ├── Customizations.java
│ │ │ │ ├── CustomizedIgnoring.java
│ │ │ │ ├── Ignoring.java
│ │ │ │ ├── autoinheritance
│ │ │ │ └── AutoInheritancePlugin.java
│ │ │ │ ├── copyable
│ │ │ │ ├── CopyablePlugin.java
│ │ │ │ └── Customizations.java
│ │ │ │ ├── elementwrapper
│ │ │ │ ├── Customizations.java
│ │ │ │ ├── ElementWrapperPlugin.java
│ │ │ │ └── ElementWrapperPlugin1.java
│ │ │ │ ├── enumvalue
│ │ │ │ ├── Customizations.java
│ │ │ │ └── EnumValuePlugin.java
│ │ │ │ ├── equals
│ │ │ │ ├── Customizations.java
│ │ │ │ └── EqualsPlugin.java
│ │ │ │ ├── hashcode
│ │ │ │ ├── Customizations.java
│ │ │ │ └── HashCodePlugin.java
│ │ │ │ ├── inheritance
│ │ │ │ ├── Customizations.java
│ │ │ │ ├── ExtendsClass.java
│ │ │ │ ├── ImplementsInterface.java
│ │ │ │ ├── InheritancePlugin.java
│ │ │ │ ├── ObjectFactory.java
│ │ │ │ ├── ObjectFactoryCustomization.java
│ │ │ │ └── util
│ │ │ │ │ ├── JavaTypeParser.java
│ │ │ │ │ └── TypeToJTypeConvertingVisitor.java
│ │ │ │ ├── jaxbindex
│ │ │ │ └── JaxbIndexPlugin.java
│ │ │ │ ├── mergeable
│ │ │ │ ├── Customizations.java
│ │ │ │ └── MergeablePlugin.java
│ │ │ │ ├── model
│ │ │ │ └── AbstractModelPlugin.java
│ │ │ │ ├── setters
│ │ │ │ ├── Customizations.java
│ │ │ │ └── SettersPlugin.java
│ │ │ │ ├── simplify
│ │ │ │ ├── Customizations.java
│ │ │ │ └── SimplifyPlugin.java
│ │ │ │ ├── tostring
│ │ │ │ ├── Customizations.java
│ │ │ │ └── ToStringPlugin.java
│ │ │ │ ├── util
│ │ │ │ ├── ArrayUtils.java
│ │ │ │ ├── FieldOutlineUtils.java
│ │ │ │ ├── Predicate.java
│ │ │ │ └── StrategyClassUtils.java
│ │ │ │ └── wildcard
│ │ │ │ ├── Customizations.java
│ │ │ │ └── WildcardPlugin.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── com.sun.tools.xjc.Plugin
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── plugin
│ │ │ ├── copyable
│ │ │ └── tests
│ │ │ │ └── RunCopyablePlugin.java
│ │ │ ├── equals
│ │ │ └── tests
│ │ │ │ └── RunEqualsPlugin.java
│ │ │ ├── inheritance
│ │ │ └── tests
│ │ │ │ ├── JavaParserTest.java
│ │ │ │ └── JavaTypeParserTest.java
│ │ │ ├── mergeable
│ │ │ └── tests
│ │ │ │ └── RunMergeablePlugin.java
│ │ │ └── tostring
│ │ │ └── tests
│ │ │ └── RunToStringPlugin.java
│ │ └── resources
│ │ └── schema.xsd
├── build-1.6.bat
├── deploy.bat
├── dist
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── assembly
│ │ ├── dist-with-dependencies.xml
│ │ └── dist.xml
├── install-1.6.bat
├── install.bat
├── jaxb
│ ├── pom.xml
│ ├── release.bat
│ └── xjc
│ │ └── pom.xml
├── pom.xml
├── qrelease.bat
├── release.bat
├── runtime
│ ├── .classpath
│ ├── .project
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ ├── i18n
│ │ │ │ └── Reportable.java
│ │ │ │ ├── lang
│ │ │ │ ├── ClassUtils.java
│ │ │ │ ├── ContextUtils.java
│ │ │ │ ├── CopyStrategy.java
│ │ │ │ ├── CopyTo.java
│ │ │ │ ├── DefaultCopyStrategy.java
│ │ │ │ ├── DefaultEqualsStrategy.java
│ │ │ │ ├── DefaultHashCodeStrategy.java
│ │ │ │ ├── DefaultMergeStrategy.java
│ │ │ │ ├── DefaultToStringStrategy.java
│ │ │ │ ├── EnumValue.java
│ │ │ │ ├── Equals.java
│ │ │ │ ├── EqualsStrategy.java
│ │ │ │ ├── HashCode.java
│ │ │ │ ├── HashCodeStrategy.java
│ │ │ │ ├── JAXBCopyStrategy.java
│ │ │ │ ├── JAXBEqualsStrategy.java
│ │ │ │ ├── JAXBHashCodeStrategy.java
│ │ │ │ ├── JAXBMergeCollectionsStrategy.java
│ │ │ │ ├── JAXBMergeStrategy.java
│ │ │ │ ├── JAXBToStringStrategy.java
│ │ │ │ ├── MergeFrom.java
│ │ │ │ ├── MergeStrategy.java
│ │ │ │ ├── StringUtils.java
│ │ │ │ ├── ToString.java
│ │ │ │ ├── ToStringStrategy.java
│ │ │ │ └── Validate.java
│ │ │ │ ├── locator
│ │ │ │ ├── AbstractObjectLocator.java
│ │ │ │ ├── DefaultItemObjectLocator.java
│ │ │ │ ├── DefaultPropertyObjectLocator.java
│ │ │ │ ├── DefaultRootObjectLocator.java
│ │ │ │ ├── ItemObjectLocator.java
│ │ │ │ ├── ObjectLocator.java
│ │ │ │ ├── PropertyObjectLocator.java
│ │ │ │ ├── RootObjectLocator.java
│ │ │ │ └── util
│ │ │ │ │ └── LocatorUtils.java
│ │ │ │ ├── xml
│ │ │ │ └── bind
│ │ │ │ │ ├── AfterMarshallCallback.java
│ │ │ │ │ ├── AfterUnmarshallCallback.java
│ │ │ │ │ ├── BeforeMarshallCallback.java
│ │ │ │ │ ├── BeforeUnmarshallCallback.java
│ │ │ │ │ ├── ContextPathAware.java
│ │ │ │ │ ├── annotation
│ │ │ │ │ └── adapters
│ │ │ │ │ │ └── CommaDelimitedStringAdapter.java
│ │ │ │ │ └── model
│ │ │ │ │ ├── MAnyAttributePropertyInfo.java
│ │ │ │ │ ├── MAnyElementPropertyInfo.java
│ │ │ │ │ ├── MAttributePropertyInfo.java
│ │ │ │ │ ├── MBuiltinLeafInfo.java
│ │ │ │ │ ├── MClassInfo.java
│ │ │ │ │ ├── MClassRef.java
│ │ │ │ │ ├── MClassTypeInfo.java
│ │ │ │ │ ├── MClassTypeInfoVisitor.java
│ │ │ │ │ ├── MContained.java
│ │ │ │ │ ├── MContainer.java
│ │ │ │ │ ├── MCustomizable.java
│ │ │ │ │ ├── MCustomization.java
│ │ │ │ │ ├── MCustomizations.java
│ │ │ │ │ ├── MElementInfo.java
│ │ │ │ │ ├── MElementPropertyInfo.java
│ │ │ │ │ ├── MElementRefPropertyInfo.java
│ │ │ │ │ ├── MElementRefsPropertyInfo.java
│ │ │ │ │ ├── MElementTypeInfo.java
│ │ │ │ │ ├── MElementTypeInfos.java
│ │ │ │ │ ├── MElementsPropertyInfo.java
│ │ │ │ │ ├── MEnumConstantInfo.java
│ │ │ │ │ ├── MEnumLeafInfo.java
│ │ │ │ │ ├── MID.java
│ │ │ │ │ ├── MIDREF.java
│ │ │ │ │ ├── MIDREFS.java
│ │ │ │ │ ├── MList.java
│ │ │ │ │ ├── MMixable.java
│ │ │ │ │ ├── MModelInfo.java
│ │ │ │ │ ├── MPackageInfo.java
│ │ │ │ │ ├── MPackaged.java
│ │ │ │ │ ├── MPackagedTypeInfo.java
│ │ │ │ │ ├── MPackagedTypeInfoVisitor.java
│ │ │ │ │ ├── MPropertyInfo.java
│ │ │ │ │ ├── MPropertyInfoVisitor.java
│ │ │ │ │ ├── MSingleTypePropertyInfo.java
│ │ │ │ │ ├── MSourced.java
│ │ │ │ │ ├── MTargeted.java
│ │ │ │ │ ├── MTransientPropertyInfo.java
│ │ │ │ │ ├── MTypeInfo.java
│ │ │ │ │ ├── MTypeInfoVisitor.java
│ │ │ │ │ ├── MTyped.java
│ │ │ │ │ ├── MValuePropertyInfo.java
│ │ │ │ │ ├── MWildcard.java
│ │ │ │ │ ├── MWildcardTypeInfo.java
│ │ │ │ │ ├── MWrappable.java
│ │ │ │ │ ├── concrete
│ │ │ │ │ ├── CMAnyAttributePropertyInfo.java
│ │ │ │ │ ├── CMAnyElementPropertyInfo.java
│ │ │ │ │ ├── CMAttributePropertyInfo.java
│ │ │ │ │ ├── CMBuiltinLeafInfo.java
│ │ │ │ │ ├── CMClassInfo.java
│ │ │ │ │ ├── CMClassRef.java
│ │ │ │ │ ├── CMCustomization.java
│ │ │ │ │ ├── CMCustomizations.java
│ │ │ │ │ ├── CMElementInfo.java
│ │ │ │ │ ├── CMElementPropertyInfo.java
│ │ │ │ │ ├── CMElementRefPropertyInfo.java
│ │ │ │ │ ├── CMElementRefsPropertyInfo.java
│ │ │ │ │ ├── CMElementTypeInfo.java
│ │ │ │ │ ├── CMElementsPropertyInfo.java
│ │ │ │ │ ├── CMEnumConstantInfo.java
│ │ │ │ │ ├── CMEnumLeafInfo.java
│ │ │ │ │ ├── CMID.java
│ │ │ │ │ ├── CMIDREF.java
│ │ │ │ │ ├── CMIDREFS.java
│ │ │ │ │ ├── CMInfoFactory.java
│ │ │ │ │ ├── CMList.java
│ │ │ │ │ ├── CMModel.java
│ │ │ │ │ ├── CMPackageInfo.java
│ │ │ │ │ ├── CMPropertyInfo.java
│ │ │ │ │ ├── CMSingleTypePropertyInfo.java
│ │ │ │ │ ├── CMValuePropertyInfo.java
│ │ │ │ │ ├── CMWildcardTypeInfo.java
│ │ │ │ │ └── origin
│ │ │ │ │ │ ├── BuiltinLeafInfoOrigin.java
│ │ │ │ │ │ ├── CMAnyAttributePropertyInfoOrigin.java
│ │ │ │ │ │ ├── CMBuiltinLeafInfoOrigin.java
│ │ │ │ │ │ ├── CMClassElementInfoOrigin.java
│ │ │ │ │ │ ├── CMClassInfoOrigin.java
│ │ │ │ │ │ ├── CMElementInfoOrigin.java
│ │ │ │ │ │ ├── CMEnumConstantInfoOrigin.java
│ │ │ │ │ │ ├── CMEnumElementInfoOrigin.java
│ │ │ │ │ │ ├── CMEnumLeafInfoOrigin.java
│ │ │ │ │ │ ├── CMModelInfoOrigin.java
│ │ │ │ │ │ ├── CMPackageInfoOrigin.java
│ │ │ │ │ │ ├── CMPropertyInfoOrigin.java
│ │ │ │ │ │ ├── CMWildcardTypeInfoOrigin.java
│ │ │ │ │ │ ├── ClassInfoOrigin.java
│ │ │ │ │ │ ├── ElementInfoOrigin.java
│ │ │ │ │ │ ├── EnumConstantOrigin.java
│ │ │ │ │ │ ├── EnumLeafInfoOrigin.java
│ │ │ │ │ │ ├── PropertyInfoOrigin.java
│ │ │ │ │ │ ├── TypeInfoSetOrigin.java
│ │ │ │ │ │ └── WildcardTypeInfoOrigin.java
│ │ │ │ │ ├── origin
│ │ │ │ │ ├── MBuiltinLeafInfoOrigin.java
│ │ │ │ │ ├── MClassInfoOrigin.java
│ │ │ │ │ ├── MElementInfoOrigin.java
│ │ │ │ │ ├── MEnumConstantInfoOrigin.java
│ │ │ │ │ ├── MEnumLeafInfoOrigin.java
│ │ │ │ │ ├── MModelInfoOrigin.java
│ │ │ │ │ ├── MOriginated.java
│ │ │ │ │ ├── MPackageInfoOrigin.java
│ │ │ │ │ ├── MPropertyInfoOrigin.java
│ │ │ │ │ └── MWildcardTypeInfoOrigin.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── DefaultPropertyInfoVisitor.java
│ │ │ │ │ ├── DefaultTypeInfoVisitor.java
│ │ │ │ │ ├── PackageInfoQNameAnalyzer.java
│ │ │ │ │ ├── QNameCollectingPropertyInfoVisitor.java
│ │ │ │ │ └── QNameCollector.java
│ │ │ │ └── xmlschema
│ │ │ │ └── XmlSchemaConstants.java
│ │ └── resources
│ │ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── locator
│ │ │ └── messages.properties
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── lang
│ │ │ └── tests
│ │ │ ├── CopyStrategyTest.java
│ │ │ └── CyclicTests.java
│ │ └── resources
│ │ └── org
│ │ └── jvnet
│ │ └── jaxb2_commons
│ │ └── lang
│ │ ├── builder
│ │ └── .gitkeep
│ │ └── tests
│ │ └── Test[0].xml
├── samples
│ ├── basic
│ │ ├── pom.xml
│ │ ├── project-build.xml
│ │ ├── project-pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── assembly
│ │ │ │ └── src.xml
│ │ │ ├── java
│ │ │ │ └── .placeholder
│ │ │ └── resources
│ │ │ │ └── schema.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── one
│ │ │ │ ├── CopyableTest.java
│ │ │ │ ├── EqualsTest.java
│ │ │ │ └── ToStringTest.java
│ │ │ ├── resources
│ │ │ └── log4j.properties
│ │ │ └── samples
│ │ │ └── 1.xml
│ ├── modular-ant
│ │ ├── pom.xml
│ │ ├── project-build.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── assembly
│ │ │ │ └── src.xml
│ │ │ ├── java
│ │ │ │ └── .placeholder
│ │ │ └── resources
│ │ │ │ └── schema.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── one
│ │ │ │ ├── CopyableTest.java
│ │ │ │ ├── EqualsTest.java
│ │ │ │ └── ToStringTest.java
│ │ │ ├── resources
│ │ │ └── log4j.properties
│ │ │ └── samples
│ │ │ └── 1.xml
│ ├── po
│ │ ├── pom.xml
│ │ ├── project-build.xml
│ │ ├── project-pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── .placeholder
│ │ │ └── resources
│ │ │ │ ├── bindings.xjb
│ │ │ │ └── purchaseorder.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── po
│ │ │ │ ├── CopyableTest.java
│ │ │ │ ├── EqualsTest.java
│ │ │ │ └── ToStringTest.java
│ │ │ ├── resources
│ │ │ └── log4j.properties
│ │ │ └── samples
│ │ │ └── po.xml
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── assembly
│ │ ├── ant-src.xml
│ │ └── maven-src.xml
├── testing
│ ├── .classpath
│ ├── .project
│ ├── .settings
│ │ ├── org.eclipse.core.resources.prefs
│ │ └── org.eclipse.jdt.core.prefs
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ ├── lang
│ │ │ └── ExtendedJAXBEqualsStrategy.java
│ │ │ └── test
│ │ │ └── AbstractSamplesTest.java
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── test
│ │ │ └── tests
│ │ │ └── TrivialSamplesTest.java
│ │ └── samples
│ │ ├── 1.xml
│ │ └── 2.xml
├── tests
│ ├── build-1.5.bat
│ ├── build-1.6.bat
│ ├── episodes
│ │ ├── a
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── resources
│ │ │ │ │ ├── a.xsd
│ │ │ │ │ └── binding.xjb
│ │ │ │ └── test
│ │ │ │ ├── java
│ │ │ │ └── .gitkeep
│ │ │ │ ├── resources
│ │ │ │ └── .gitkeep
│ │ │ │ └── samples
│ │ │ │ └── 1.xml
│ │ ├── b
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── resources
│ │ │ │ │ ├── a.xsd
│ │ │ │ │ ├── b.xsd
│ │ │ │ │ └── binding.xjb
│ │ │ │ └── test
│ │ │ │ ├── java
│ │ │ │ └── .gitkeep
│ │ │ │ ├── resources
│ │ │ │ └── .gitkeep
│ │ │ │ └── samples
│ │ │ │ └── 1.xml
│ │ └── pom.xml
│ ├── ignoring
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── resources
│ │ │ └── schema.xsd
│ ├── issues
│ │ ├── .classpath
│ │ ├── .project
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ │ └── jvnet
│ │ │ │ │ └── jaxb2_commons
│ │ │ │ │ └── tests
│ │ │ │ │ └── issues
│ │ │ │ │ ├── IssueJIIB14BaseClass.java
│ │ │ │ │ ├── IssueJIIB14BaseInterfaceFour.java
│ │ │ │ │ ├── IssueJIIB14BaseInterfaceOne.java
│ │ │ │ │ ├── IssueJIIB14BaseInterfaceThree.java
│ │ │ │ │ ├── IssueJIIB14BaseInterfaceTwo.java
│ │ │ │ │ ├── IssueJIIB42EqualsStrategy.java
│ │ │ │ │ ├── IssueJIIB48Interface.java
│ │ │ │ │ └── IssueJIIB53ABaseClass.java
│ │ │ └── resources
│ │ │ │ ├── binding.xjb
│ │ │ │ └── schema.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── issues
│ │ │ │ ├── CopyableTest.java
│ │ │ │ ├── JIIB10Test.java
│ │ │ │ ├── JIIB14Test.java
│ │ │ │ ├── JIIB20Test.java
│ │ │ │ ├── JIIB35Test.java
│ │ │ │ ├── JIIB36Test.java
│ │ │ │ ├── JIIB38Test.java
│ │ │ │ ├── JIIB44Test.java
│ │ │ │ ├── JIIB8Test.java
│ │ │ │ └── RunIssuesPlugin.java
│ │ │ ├── resources
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── issues
│ │ │ │ ├── issueJIIB44_0.xml
│ │ │ │ ├── issueJIIB44_1.xml
│ │ │ │ └── issueJIIB44_2.xml
│ │ │ └── samples
│ │ │ └── issue16[0].xml
│ ├── one
│ │ ├── .classpath
│ │ ├── .project
│ │ ├── .settings
│ │ │ ├── org.eclipse.core.resources.prefs
│ │ │ └── org.eclipse.jdt.core.prefs
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ └── resources
│ │ │ │ ├── binding.xjb
│ │ │ │ └── schema.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── tests
│ │ │ │ └── one
│ │ │ │ ├── CopyableTest.java
│ │ │ │ ├── EqualsTest.java
│ │ │ │ ├── HashCodeTest.java
│ │ │ │ ├── RunOnePlugin.java
│ │ │ │ └── ToStringTest.java
│ │ │ ├── resources
│ │ │ └── log4j.properties
│ │ │ └── samples
│ │ │ ├── 1.xml
│ │ │ └── 2.xml
│ ├── pom.xml
│ ├── wildcard
│ │ ├── .classpath
│ │ ├── .project
│ │ ├── .settings
│ │ │ ├── org.eclipse.core.resources.prefs
│ │ │ └── org.eclipse.jdt.core.prefs
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── .gitkeep
│ │ │ └── resources
│ │ │ │ ├── binding.xjb
│ │ │ │ └── schema.xsd
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── .gitkeep
│ │ │ ├── resources
│ │ │ └── .gitkeep
│ │ │ └── samples
│ │ │ └── .gitkeep
│ └── zj
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ └── resources
│ │ │ └── ObisData.xsd
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── tests
│ │ │ └── zj
│ │ │ └── EqualsTest.java
│ │ ├── resources
│ │ └── log4j.properties
│ │ └── samples
│ │ └── MediaCatalogue.xml
└── tools
│ ├── .classpath
│ ├── .project
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── org
│ └── jvnet
│ └── jaxb2_commons
│ ├── plugin
│ ├── AbstractParameterizablePlugin.java
│ ├── AbstractPlugin.java
│ └── spring
│ │ └── AbstractSpringConfigurablePlugin.java
│ ├── strategy
│ ├── ClassOutlineProcessor.java
│ ├── FieldOutlineProcessor.java
│ ├── OutlineProcessor.java
│ ├── PackageOutlineProcessor.java
│ └── impl
│ │ └── DefaultOutlineProcessor.java
│ ├── util
│ ├── ClassUtils.java
│ ├── CodeModelUtils.java
│ ├── CustomizationUtils.java
│ ├── FieldAccessorFactory.java
│ ├── FieldAccessorUtils.java
│ ├── FieldUtils.java
│ ├── GeneratorContextUtils.java
│ ├── OutlineUtils.java
│ └── PropertyFieldAccessorFactory.java
│ └── xjc
│ ├── generator
│ ├── MClassOutlineGenerator.java
│ ├── MElementOutlineGenerator.java
│ ├── MEnumConstantOutlineGenerator.java
│ ├── MEnumOutlineGenerator.java
│ ├── MModelOutlineGenerator.java
│ ├── MObjectFactoryOutlineGenerator.java
│ ├── MPackageOutlineGenerator.java
│ ├── MPropertyOutlineGenerator.java
│ ├── artificial
│ │ └── WrapperPropertyOutlineGenerator.java
│ ├── concrete
│ │ ├── CMClassOutlineGenerator.java
│ │ ├── CMElementOutlineGenerator.java
│ │ ├── CMEnumConstantOutlineGenerator.java
│ │ ├── CMEnumOutlineGenerator.java
│ │ ├── CMModelOutlineGenerator.java
│ │ ├── CMPackageOutlineGenerator.java
│ │ ├── CMPropertyOutlineGenerator.java
│ │ ├── ClassOutlineGeneratorFactory.java
│ │ ├── ElementOutlineGeneratorFactory.java
│ │ ├── EnumConstantOutlineGeneratorFactory.java
│ │ ├── EnumOutlineGeneratorFactory.java
│ │ ├── ModelOutlineGeneratorFactory.java
│ │ ├── OutlineGeneratorFactory.java
│ │ ├── PackageOutlineGeneratorFactory.java
│ │ └── PropertyOutlineGeneratorFactory.java
│ └── outline
│ │ └── .gitkeep
│ ├── model
│ └── concrete
│ │ ├── XJCCMInfoFactory.java
│ │ └── origin
│ │ ├── DefaultPropertyInfoOrigin.java
│ │ ├── DummyPropertyInfoOrigin.java
│ │ ├── PackageInfoOrigin.java
│ │ ├── XJCCMClassInfoOrigin.java
│ │ ├── XJCCMElementInfoOrigin.java
│ │ ├── XJCCMEnumConstantInfoOrigin.java
│ │ ├── XJCCMEnumLeafInfoOrigin.java
│ │ ├── XJCCMModelInfoOrigin.java
│ │ ├── XJCCMPackageInfoOrigin.java
│ │ └── XJCCMPropertyInfoOrigin.java
│ └── outline
│ ├── FieldAccessorEx.java
│ ├── MChildOutline.java
│ ├── MClassOutline.java
│ ├── MElementOutline.java
│ ├── MEnumConstantOutline.java
│ ├── MEnumOutline.java
│ ├── MModelOutline.java
│ ├── MObjectFactoryOutline.java
│ ├── MPackageOutline.java
│ ├── MPackagedOutline.java
│ ├── MPropertyAccessor.java
│ ├── MPropertyAccessorFactory.java
│ ├── MPropertyOutline.java
│ ├── artificial
│ ├── AbstractPropertyAccessorFactory.java
│ ├── AbstractPropertyOutline.java
│ ├── AbstractSinglePropertyOutline.java
│ ├── AnnotatePropertyVisitor.java
│ ├── AnyAttributePropertyOutline.java
│ ├── ConstantPropertyOutline.java
│ ├── PropertyTypeVisitor.java
│ └── SinglePropertyOutline.java
│ └── concrete
│ ├── CMClassOutline.java
│ ├── CMElementOutline.java
│ ├── CMEnumConstantOutline.java
│ ├── CMEnumOutline.java
│ ├── CMModelOutline.java
│ ├── CMObjectFactoryOutline.java
│ ├── CMPackageOutline.java
│ ├── CMPropertyAccessor.java
│ ├── CMPropertyAccessorFactory.java
│ └── CMPropertyOutline.java
├── commons-lang-plugin
├── .classpath
├── .project
├── .settings
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.jdt.core.prefs
│ └── org.eclipse.m2e.core.prefs
├── LICENSE
├── NOTICE
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── sun
│ │ └── tools
│ │ └── xjc
│ │ └── addon
│ │ └── commons_lang
│ │ └── XjcCommonsLangPlugin.java
│ └── resources
│ └── META-INF
│ └── services
│ └── com.sun.tools.xjc.Plugin
├── default-value-plugin
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jvnet
│ │ │ │ └── jaxb2_commons
│ │ │ │ └── plugin
│ │ │ │ └── defaultvalueplugin
│ │ │ │ └── DefaultValuePlugin.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── com.sun.tools.xjc.Plugin
│ └── test
│ │ ├── java
│ │ └── .gitkeep
│ │ └── resources
│ │ └── .gitkeep
└── tests
│ └── person
│ ├── pom.xml
│ └── src
│ └── main
│ └── resources
│ └── Person.xsd
├── fluent-api
├── LICENSE
├── NOTICE
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── jvnet
│ │ │ └── jaxb2_commons
│ │ │ └── plugin
│ │ │ └── fluent_api
│ │ │ ├── FluentApiPlugin.java
│ │ │ ├── FluentMethodInfo.java
│ │ │ └── FluentMethodType.java
│ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── com.sun.tools.xjc.Plugin
│ └── test
│ └── schema
│ └── test.xsd
├── namespace-prefix
├── LICENSE
├── NOTICE
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── org
│ │ └── jvnet
│ │ └── jaxb2_commons
│ │ └── plugin
│ │ └── namespace_prefix
│ │ └── NamespacePrefixPlugin.java
│ └── resources
│ ├── META-INF
│ └── services
│ │ └── com.sun.tools.xjc.Plugin
│ └── prefix-namespace-schema.xsd
└── value-constructor
├── LICENSE
├── NOTICE
├── pom.xml
└── src
├── main
├── java
│ └── org
│ │ └── jvnet
│ │ └── jaxb2_commons
│ │ └── plugin
│ │ └── value_constructor
│ │ └── ValueConstructorPlugin.java
└── resources
│ └── META-INF
│ └── services
│ └── com.sun.tools.xjc.Plugin
└── test
└── schema
└── test.xsd
/basics/ant/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/basics/ant/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | jaxb2-basics-ant
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/basics/ant/pom.xml:
--------------------------------------------------------------------------------
1 |
4 | 4.0.0
5 | org.jvnet.jaxb2_commons
6 | jaxb2-basics-ant
7 | jar
8 | JAXB2 Basics - Ant Task
9 |
10 | org.jvnet.jaxb2_commons
11 | jaxb2-basics-project
12 | 0.8.3-SNAPSHOT
13 | ../pom.xml
14 |
15 |
16 |
17 | com.sun.xml.bind
18 | jaxb-xjc
19 | provided
20 |
21 |
22 | org.apache.ant
23 | ant
24 | provided
25 |
26 |
27 | org.apache.ant
28 | ant-launcher
29 | test
30 |
31 |
32 |
33 | install
34 |
35 |
--------------------------------------------------------------------------------
/basics/ant/src/main/java/org/jvnet/jaxb2_commons/xjc/XJC2Task.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.xjc;
2 |
3 | import java.io.File;
4 | import java.lang.reflect.Field;
5 |
6 | import org.apache.tools.ant.BuildException;
7 | import org.apache.tools.ant.types.Path;
8 |
9 | public class XJC2Task extends com.sun.tools.xjc.XJC2Task {
10 |
11 | @Override
12 | public void execute() throws BuildException {
13 |
14 | hack();
15 | super.execute();
16 | }
17 |
18 | protected void hack() {
19 | try {
20 | final Field declaredField = getClass().getSuperclass()
21 | .getDeclaredField("classpath");
22 | declaredField.setAccessible(true);
23 | final Path path = (Path) declaredField.get(this);
24 | if (path != null) {
25 | for (String pathElement : path.list()) {
26 | options.classpaths.add(new File(pathElement).toURI()
27 | .toURL());
28 | }
29 | }
30 | } catch (Exception ex) {
31 | throw new BuildException(ex);
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/basics/basic/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/basics/basic/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | jaxb2-basics
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.m2e.core.maven2Nature
22 |
23 |
24 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic";
8 |
9 | public static QName GENERATED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "generated");
11 |
12 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
13 | "ignored");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/Ignoring.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin;
2 |
3 | import com.sun.tools.xjc.model.CClassInfo;
4 | import com.sun.tools.xjc.model.CEnumLeafInfo;
5 | import com.sun.tools.xjc.model.CPropertyInfo;
6 | import com.sun.tools.xjc.outline.ClassOutline;
7 | import com.sun.tools.xjc.outline.EnumOutline;
8 | import com.sun.tools.xjc.outline.FieldOutline;
9 |
10 | public interface Ignoring {
11 |
12 | public boolean isIgnored(ClassOutline classOutline);
13 |
14 | public boolean isIgnored(EnumOutline enumOutline);
15 |
16 | public boolean isIgnored(FieldOutline fieldOutline);
17 |
18 | public boolean isIgnored(CClassInfo classInfo);
19 |
20 | public boolean isIgnored(CEnumLeafInfo enumLeafInfo);
21 |
22 | public boolean isIgnored(CPropertyInfo propertyInfo);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/copyable/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.copyable;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/copyable";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/elementwrapper/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.elementwrapper;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/elementWrapper";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/enumvalue/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.enumvalue;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/enumvalue";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/equals/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.equals;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/equals";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/hashcode/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.hashcode;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/hashCode";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/inheritance/ExtendsClass.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.inheritance;
2 |
3 | import javax.xml.bind.annotation.XmlAccessType;
4 | import javax.xml.bind.annotation.XmlAccessorType;
5 | import javax.xml.bind.annotation.XmlRootElement;
6 | import javax.xml.bind.annotation.XmlValue;
7 | import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
8 | import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
9 |
10 | @XmlRootElement(namespace = "http://jaxb2-commons.dev.java.net/basic/inheritance", name = "extends")
11 | @XmlAccessorType(XmlAccessType.PROPERTY)
12 | public class ExtendsClass {
13 |
14 | private String className;
15 |
16 | @XmlValue
17 | @XmlJavaTypeAdapter(value = CollapsedStringAdapter.class)
18 | String getClassName() {
19 | return className;
20 | }
21 |
22 | public void setClassName(String className) {
23 | this.className = className;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/inheritance/ImplementsInterface.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.inheritance;
2 |
3 | import javax.xml.bind.annotation.XmlAccessType;
4 | import javax.xml.bind.annotation.XmlAccessorType;
5 | import javax.xml.bind.annotation.XmlRootElement;
6 | import javax.xml.bind.annotation.XmlValue;
7 | import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
8 | import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
9 |
10 | @XmlRootElement(namespace = "http://jaxb2-commons.dev.java.net/basic/inheritance", name = "implements")
11 | @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
12 | public class ImplementsInterface {
13 |
14 | private String interfaceName;
15 |
16 | @XmlValue
17 | @XmlJavaTypeAdapter(value = CollapsedStringAdapter.class)
18 | public String getInterfaceName() {
19 | return interfaceName;
20 | }
21 |
22 | public void setInterfaceName(String interfaceName) {
23 | this.interfaceName = interfaceName;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/inheritance/ObjectFactory.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.inheritance;
2 |
3 | import javax.xml.bind.annotation.XmlRegistry;
4 |
5 | @XmlRegistry
6 | public class ObjectFactory {
7 |
8 | public ExtendsClass createExtendsClass() {
9 | return new ExtendsClass();
10 | }
11 |
12 | public ImplementsInterface createImplementsInterface() {
13 | return new ImplementsInterface();
14 | }
15 |
16 | public ObjectFactoryCustomization createObjectFactoryCustomization() {
17 | return new ObjectFactoryCustomization();
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/jaxbindex/JaxbIndexPlugin.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.jaxbindex;
2 |
3 | import org.jvnet.jaxb2_commons.util.CodeModelUtils;
4 | import org.xml.sax.ErrorHandler;
5 |
6 | import com.sun.codemodel.fmt.JTextFile;
7 | import com.sun.tools.xjc.Options;
8 | import com.sun.tools.xjc.outline.ClassOutline;
9 | import com.sun.tools.xjc.outline.Outline;
10 | import com.sun.tools.xjc.outline.PackageOutline;
11 |
12 | public class JaxbIndexPlugin extends com.sun.tools.xjc.Plugin {
13 |
14 | public String getOptionName() {
15 | return "Xjaxbindex";
16 | }
17 |
18 | public String getUsage() {
19 | return "-Xjaxbindex: generate per-package jaxb.index file";
20 | }
21 |
22 | @Override
23 | public boolean run(Outline outline, Options opt, ErrorHandler errorHandler) {
24 |
25 | for (final PackageOutline packageOutline : outline
26 | .getAllPackageContexts()) {
27 | final StringBuilder sb = new StringBuilder();
28 | for (final ClassOutline classOutline : packageOutline.getClasses()) {
29 | sb.append(CodeModelUtils.getLocalClassName(classOutline.ref));
30 | sb.append("\n");
31 | }
32 |
33 | final JTextFile indexFile = new JTextFile("jaxb.index");
34 | indexFile.setContents(sb.toString());
35 | packageOutline._package().addResourceFile(indexFile);
36 | }
37 | return true;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/mergeable/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.mergeable;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/mergeable";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/setters/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.setters;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/collectionsetters";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/simplify/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.simplify;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/simplify";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | public static QName AS_ELEMENT_PROPERTY_ELEMENT_NAME = new QName(
13 | NAMESPACE_URI, "as-element-property");
14 |
15 | public static QName AS_REFERENCE_PROPERTY_ELEMENT_NAME = new QName(
16 | NAMESPACE_URI, "as-reference-property");
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/tostring/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.tostring;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/toString";
8 |
9 | public static QName IGNORED_ELEMENT_NAME = new QName(NAMESPACE_URI,
10 | "ignored");
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/util/ArrayUtils.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.util;
2 |
3 | import java.lang.reflect.Array;
4 | import java.util.LinkedList;
5 | import java.util.List;
6 |
7 | public class ArrayUtils {
8 |
9 | private ArrayUtils() {
10 |
11 | }
12 |
13 | public static T[] filter(T[] array, Predicate predicate,
14 | Class extends T> theClass) {
15 |
16 | if (array == null) {
17 | return null;
18 | } else {
19 | final List list = new LinkedList();
20 | for (T item : array) {
21 | if (predicate.evaluate(item)) {
22 | list.add(item);
23 | }
24 | }
25 | @SuppressWarnings("unchecked")
26 | final T[] newArray = (T[]) Array.newInstance(theClass, list.size());
27 | return list.toArray(newArray);
28 | }
29 |
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/util/FieldOutlineUtils.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.util;
2 |
3 | import org.jvnet.jaxb2_commons.plugin.Ignoring;
4 |
5 | import com.sun.tools.xjc.outline.FieldOutline;
6 |
7 | public class FieldOutlineUtils {
8 |
9 | private FieldOutlineUtils() {
10 |
11 | }
12 |
13 | public static FieldOutline[] filter(final FieldOutline[] fieldOutlines,
14 | final Ignoring ignoring) {
15 | return ArrayUtils.filter(fieldOutlines, new Predicate() {
16 | public boolean evaluate(FieldOutline fieldOutline) {
17 | return !ignoring.isIgnored(fieldOutline);
18 |
19 | }
20 | }, FieldOutline.class);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/util/Predicate.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.util;
2 |
3 | public interface Predicate {
4 |
5 | public boolean evaluate(T object);
6 |
7 | }
--------------------------------------------------------------------------------
/basics/basic/src/main/java/org/jvnet/jaxb2_commons/plugin/wildcard/Customizations.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.wildcard;
2 |
3 | import javax.xml.namespace.QName;
4 |
5 | public class Customizations {
6 |
7 | public static String NAMESPACE_URI = "http://jaxb2-commons.dev.java.net/basic/wildcard";
8 |
9 | public static QName LAX_ELEMENT_NAME = new QName(NAMESPACE_URI, "lax");
10 | public static QName STRICT_ELEMENT_NAME = new QName(NAMESPACE_URI, "strict");
11 | public static QName SKIP_ELEMENT_NAME = new QName(NAMESPACE_URI, "skip");
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/basics/basic/src/main/resources/META-INF/services/com.sun.tools.xjc.Plugin:
--------------------------------------------------------------------------------
1 | org.jvnet.jaxb2_commons.plugin.jaxbindex.JaxbIndexPlugin
2 | org.jvnet.jaxb2_commons.plugin.tostring.ToStringPlugin
3 | org.jvnet.jaxb2_commons.plugin.equals.EqualsPlugin
4 | org.jvnet.jaxb2_commons.plugin.hashcode.HashCodePlugin
5 | org.jvnet.jaxb2_commons.plugin.copyable.CopyablePlugin
6 | org.jvnet.jaxb2_commons.plugin.mergeable.MergeablePlugin
7 | org.jvnet.jaxb2_commons.plugin.inheritance.InheritancePlugin
8 | org.jvnet.jaxb2_commons.plugin.setters.SettersPlugin
9 | org.jvnet.jaxb2_commons.plugin.wildcard.WildcardPlugin
10 | org.jvnet.jaxb2_commons.plugin.autoinheritance.AutoInheritancePlugin
11 | org.jvnet.jaxb2_commons.plugin.elementwrapper.ElementWrapperPlugin
12 | org.jvnet.jaxb2_commons.plugin.simplify.SimplifyPlugin
13 | org.jvnet.jaxb2_commons.plugin.enumvalue.EnumValuePlugin
--------------------------------------------------------------------------------
/basics/basic/src/test/java/org/jvnet/jaxb2_commons/plugin/copyable/tests/RunCopyablePlugin.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.copyable.tests;
2 |
3 | import java.io.File;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.jvnet.jaxb2.maven2.AbstractXJC2Mojo;
8 | import org.jvnet.jaxb2.maven2.test.RunXJC2Mojo;
9 |
10 | public class RunCopyablePlugin extends RunXJC2Mojo {
11 |
12 | @Override
13 | public File getSchemaDirectory() {
14 | return new File(getBaseDir(), "src/test/resources");
15 | }
16 |
17 | @Override
18 | protected void configureMojo(AbstractXJC2Mojo mojo) {
19 | super.configureMojo(mojo);
20 | mojo.setForceRegenerate(true);
21 | }
22 |
23 | @Override
24 | public List getArgs() {
25 | final List args = new ArrayList(super.getArgs());
26 | args.add("-Xcopyable");
27 | return args;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/basics/basic/src/test/java/org/jvnet/jaxb2_commons/plugin/equals/tests/RunEqualsPlugin.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.equals.tests;
2 |
3 | import java.io.File;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.jvnet.jaxb2.maven2.AbstractXJC2Mojo;
8 | import org.jvnet.jaxb2.maven2.test.RunXJC2Mojo;
9 |
10 | public class RunEqualsPlugin extends RunXJC2Mojo {
11 |
12 | @Override
13 | public File getSchemaDirectory() {
14 | return new File(getBaseDir(), "src/test/resources");
15 | }
16 |
17 | @Override
18 | protected void configureMojo(AbstractXJC2Mojo mojo) {
19 | super.configureMojo(mojo);
20 | mojo.setForceRegenerate(true);
21 | }
22 |
23 | @Override
24 | public List getArgs() {
25 | final List args = new ArrayList(super.getArgs());
26 | args.add("-Xequals");
27 | return args;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/basics/basic/src/test/java/org/jvnet/jaxb2_commons/plugin/inheritance/tests/JavaParserTest.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.inheritance.tests;
2 |
3 | import junit.framework.TestCase;
4 |
5 | import org.jvnet.jaxb2_commons.plugin.inheritance.util.JavaTypeParser;
6 |
7 | import com.sun.codemodel.JClass;
8 | import com.sun.codemodel.JCodeModel;
9 |
10 | public class JavaParserTest extends TestCase {
11 |
12 | public void testParse() throws Exception {
13 |
14 | final String text = "public class Dummy implements java.util.Comparator{}";
15 |
16 | final JavaTypeParser javaTypeParser = new JavaTypeParser();
17 | final JCodeModel codeModel = new JCodeModel();
18 | JClass comparator = javaTypeParser.parseClass("java.util.Comparator",
19 | codeModel);
20 | assertNotNull(comparator);
21 | JClass integerComparator = javaTypeParser.parseClass(
22 | "java.util.Comparator", codeModel);
23 | assertNotNull(integerComparator);
24 | JClass wildcardIntegerComparator = javaTypeParser.parseClass(
25 | "java.util.Comparator extends java.lang.Integer>", codeModel);
26 | assertNotNull(wildcardIntegerComparator);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/basics/basic/src/test/java/org/jvnet/jaxb2_commons/plugin/mergeable/tests/RunMergeablePlugin.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.mergeable.tests;
2 |
3 | import java.io.File;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.jvnet.jaxb2.maven2.AbstractXJC2Mojo;
8 | import org.jvnet.jaxb2.maven2.test.RunXJC2Mojo;
9 |
10 | public class RunMergeablePlugin extends RunXJC2Mojo {
11 |
12 | @Override
13 | public File getSchemaDirectory() {
14 | return new File(getBaseDir(), "src/test/resources");
15 | }
16 |
17 | @Override
18 | protected void configureMojo(AbstractXJC2Mojo mojo) {
19 | super.configureMojo(mojo);
20 | mojo.setForceRegenerate(true);
21 | }
22 |
23 | @Override
24 | public List getArgs() {
25 | final List args = new ArrayList(super.getArgs());
26 | args.add("-Xmergeable");
27 | return args;
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/basics/basic/src/test/java/org/jvnet/jaxb2_commons/plugin/tostring/tests/RunToStringPlugin.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.plugin.tostring.tests;
2 |
3 | import java.io.File;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 |
7 | import org.jvnet.jaxb2.maven2.AbstractXJC2Mojo;
8 | import org.jvnet.jaxb2.maven2.test.RunXJC2Mojo;
9 | import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
10 |
11 | public class RunToStringPlugin extends RunXJC2Mojo {
12 |
13 | @Override
14 | public File getSchemaDirectory() {
15 | return new File(getBaseDir(), "src/test/resources");
16 | }
17 |
18 | @Override
19 | protected void configureMojo(AbstractXJC2Mojo mojo) {
20 | super.configureMojo(mojo);
21 | mojo.setForceRegenerate(true);
22 | }
23 |
24 | @Override
25 | public List getArgs() {
26 | final List args = new ArrayList(super.getArgs());
27 | args.add("-XtoString");
28 | args.add("-XtoString-toStringStrategy="
29 | + JAXBToStringStrategy.class.getName());
30 | return args;
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/basics/build-1.6.bat:
--------------------------------------------------------------------------------
1 | setlocal
2 | set JAVA_HOME=%JAVA6_HOME%
3 | call mvn clean install >std 2>err
4 | endlocal
--------------------------------------------------------------------------------
/basics/deploy.bat:
--------------------------------------------------------------------------------
1 | call mvn -DperformRelease -DcontinuousIntegrationDeploy clean deploy >std 2>err
--------------------------------------------------------------------------------
/basics/dist/src/main/assembly/dist-with-dependencies.xml:
--------------------------------------------------------------------------------
1 |
2 | dist-with-dependencies
3 |
4 | zip
5 |
6 |
7 |
8 |
9 | README*
10 | LICENSE*
11 | NOTICE*
12 |
13 |
14 |
15 |
16 |
17 | dist
18 |
19 | false
20 |
21 | org.jvnet.jaxb2_commons:*
22 |
23 |
24 |
25 | lib
26 |
27 | false
28 |
29 | org.jvnet.jaxb2_commons:*
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/basics/dist/src/main/assembly/dist.xml:
--------------------------------------------------------------------------------
1 |
2 | dist
3 |
4 | zip
5 |
6 |
7 |
8 |
9 | README*
10 | LICENSE*
11 | NOTICE*
12 |
13 |
14 |
15 |
16 |
17 | dist
18 |
19 | false
20 |
21 | org.jvnet.jaxb2_commons:*
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/basics/install-1.6.bat:
--------------------------------------------------------------------------------
1 | setlocal
2 | set JAVA_HOME=%JAVA6_HOME%
3 | call mvn -X -DperformRelease -Psamples,tests,dist clean install >std 2>err
4 | endlocal
--------------------------------------------------------------------------------
/basics/install.bat:
--------------------------------------------------------------------------------
1 | call mvn -X -DperformRelease -DcontinuousIntegrationInstall clean install >std 2>err
--------------------------------------------------------------------------------
/basics/jaxb/release.bat:
--------------------------------------------------------------------------------
1 | call mvn clean deploy -DperformRelease=true -Psonatype-oss-release
--------------------------------------------------------------------------------
/basics/runtime/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/basics/runtime/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | jaxb2-basics-runtime
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.m2e.core.maven2Builder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.pde.PluginNature
21 | org.eclipse.jdt.core.javanature
22 | org.eclipse.m2e.core.maven2Nature
23 |
24 |
25 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/i18n/Reportable.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.i18n;
2 |
3 | import java.util.ResourceBundle;
4 |
5 | /**
6 | * Reportable object.
7 | *
8 | * @author Aleksei Valikov
9 | */
10 | public interface Reportable
11 | {
12 | /**
13 | * Returns message code. This code will be used to locate message resource.
14 | *
15 | * @return String code that uniquely identifies this problem. May be used to reference messages.
16 | */
17 | public String getMessageCode();
18 |
19 | /**
20 | * Returns parameters used to format the message.
21 | *
22 | * @return Array of parameters used to format problem message.
23 | */
24 | public abstract Object[] getMessageParameters();
25 |
26 | /**
27 | * Formats the message using given resource bundle.
28 | *
29 | * @param bundle bundle to use resources from.
30 | * @return Formatted message.
31 | */
32 | public String getMessage(final ResourceBundle bundle);
33 |
34 | /**
35 | * Returns the message.
36 | *
37 | * @return The message.
38 | */
39 | public String getMessage();
40 | }
41 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/ContextUtils.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import java.io.StringWriter;
4 |
5 | import javax.xml.bind.JAXBContext;
6 | import javax.xml.bind.JAXBException;
7 | import javax.xml.bind.Marshaller;
8 |
9 | public class ContextUtils {
10 |
11 | public static String getContextPath(Class>... classes) {
12 | if (classes == null) {
13 | throw new IllegalArgumentException("The validated object is null");
14 | }
15 | for (int i = 0; i < classes.length; i++) {
16 | if (classes[i] == null) {
17 | throw new IllegalArgumentException("The validated array contains null element at index: " + i);
18 | }
19 | }
20 |
21 | final StringBuilder contextPath = new StringBuilder();
22 |
23 | for (int index = 0; index < classes.length; index++) {
24 | if (index > 0) {
25 | contextPath.append(':');
26 | }
27 | contextPath.append(classes[index].getPackage().getName());
28 | }
29 | return contextPath.toString();
30 | }
31 |
32 | public static String toString(JAXBContext context, Object object)
33 | throws JAXBException {
34 | final Marshaller marshaller = context.createMarshaller();
35 | marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
36 | final StringWriter sw = new StringWriter();
37 | marshaller.marshal(object, sw);
38 | return sw.toString();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/CopyStrategy.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import org.jvnet.jaxb2_commons.locator.ObjectLocator;
4 |
5 | public interface CopyStrategy {
6 |
7 | public boolean copy(ObjectLocator locator, boolean value);
8 |
9 | public byte copy(ObjectLocator locator, byte value);
10 |
11 | public char copy(ObjectLocator locator, char value);
12 |
13 | public double copy(ObjectLocator locator, double value);
14 |
15 | public float copy(ObjectLocator locator, float value);
16 |
17 | public int copy(ObjectLocator locator, int value);
18 |
19 | public long copy(ObjectLocator locator, long value);
20 |
21 | public short copy(ObjectLocator locator, short value);
22 |
23 | public Object copy(ObjectLocator locator, Object value);
24 |
25 | public boolean[] copy(ObjectLocator locator, boolean[] value);
26 |
27 | public byte[] copy(ObjectLocator locator, byte[] value);
28 |
29 | public char[] copy(ObjectLocator locator, char[] value);
30 |
31 | public double[] copy(ObjectLocator locator, double[] value);
32 |
33 | public float[] copy(ObjectLocator locator, float[] value);
34 |
35 | public int[] copy(ObjectLocator locator, int[] value);
36 |
37 | public long[] copy(ObjectLocator locator, long[] value);
38 |
39 | public short[] copy(ObjectLocator locator, short[] value);
40 |
41 | public Object[] copy(ObjectLocator locator, Object[] value);
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/CopyTo.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import org.jvnet.jaxb2_commons.locator.ObjectLocator;
4 |
5 | public interface CopyTo {
6 |
7 | public Object createNewInstance();
8 |
9 | public Object copyTo(Object target);
10 |
11 | public Object copyTo(ObjectLocator locator, Object target,
12 | CopyStrategy copyStrategy);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/EnumValue.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | public interface EnumValue {
4 |
5 | public T enumValue();
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/Equals.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import org.jvnet.jaxb2_commons.locator.ObjectLocator;
4 |
5 | public interface Equals {
6 |
7 | public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator,
8 | Object that, EqualsStrategy equalsStrategy);
9 | }
10 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/HashCode.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import org.jvnet.jaxb2_commons.locator.ObjectLocator;
4 |
5 | public interface HashCode {
6 |
7 | public int hashCode(ObjectLocator locator, HashCodeStrategy hashCodeStrategy);
8 | }
9 |
--------------------------------------------------------------------------------
/basics/runtime/src/main/java/org/jvnet/jaxb2_commons/lang/JAXBMergeCollectionsStrategy.java:
--------------------------------------------------------------------------------
1 | package org.jvnet.jaxb2_commons.lang;
2 |
3 | import java.util.ArrayList;
4 | import java.util.Collection;
5 | import java.util.HashSet;
6 | import java.util.List;
7 | import java.util.Set;
8 |
9 | import org.jvnet.jaxb2_commons.locator.ObjectLocator;
10 |
11 | public class JAXBMergeCollectionsStrategy extends JAXBMergeStrategy {
12 |
13 | @Override
14 | protected Object mergeInternal(ObjectLocator leftLocator,
15 | ObjectLocator rightLocator, Collection leftCollection,
16 | Collection rightCollection) {
17 |
18 | if (leftCollection instanceof List && rightCollection instanceof List) {
19 | final List