├── .github
├── FUNDING.yml
└── workflows
│ ├── [A] build and test, release if requested.yml
│ ├── [A] compute coverage.yml
│ ├── [A] update documentation.yml
│ ├── [A][S] build and test.yml
│ ├── [A][S][experimental] build and test.yml
│ └── [M] build and test, compute coverage, release.yml
├── .gitignore
├── LICENSE
├── README.md
├── docs
├── _config.yml
├── _layouts
│ └── default.html
├── assets
│ ├── css
│ │ └── style.scss
│ └── fonts
│ │ ├── AldoPro-Black.ttf
│ │ ├── AldoPro-Black.woff
│ │ ├── AldoPro-Black.woff2
│ │ ├── AldoPro-Bold.ttf
│ │ ├── AldoPro-Bold.woff
│ │ ├── AldoPro-Bold.woff2
│ │ ├── AldoPro-Book.ttf
│ │ ├── AldoPro-Book.woff
│ │ ├── AldoPro-Book.woff2
│ │ ├── AldoPro-Hairline.ttf
│ │ ├── AldoPro-Hairline.woff
│ │ ├── AldoPro-Hairline.woff2
│ │ ├── AldoPro-Light.ttf
│ │ ├── AldoPro-Light.woff
│ │ ├── AldoPro-Light.woff2
│ │ ├── AldoPro-Medium.ttf
│ │ ├── AldoPro-Medium.woff
│ │ ├── AldoPro-Medium.woff2
│ │ ├── AldoPro-Regular.ttf
│ │ ├── AldoPro-Regular.woff
│ │ ├── AldoPro-Regular.woff2
│ │ ├── AldoPro-Thin.ttf
│ │ ├── AldoPro-Thin.woff
│ │ └── AldoPro-Thin.woff2
└── index.md
├── launcher
└── eclipse
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 11 (Semeru).launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 11.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 14.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 15.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 16 (Semeru).launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 17.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 18.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 19.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 20.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 24.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 8 (Semeru).launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 8.launch
│ ├── Burningwave Core - AllExceptHeavyTestsSuite - JDK 9.launch
│ ├── Burningwave Core - AllTestsSuite.launch
│ ├── Burningwave Core - Debug attacher.launch
│ ├── Burningwave Core - build and test with REMOTE DEBUG.launch
│ ├── Burningwave Core - clean package install.launch
│ └── Burningwave Core - clean package test.launch
├── pom.xml
└── src
├── main
├── java
│ ├── module-info.java
│ └── org
│ │ └── burningwave
│ │ └── core
│ │ ├── Cache.java
│ │ ├── Cleanable.java
│ │ ├── Closeable.java
│ │ ├── Component.java
│ │ ├── Context.java
│ │ ├── Criteria.java
│ │ ├── Executable.java
│ │ ├── Identifiable.java
│ │ ├── LoggingLevel.java
│ │ ├── ManagedLogger.java
│ │ ├── Memorizer.java
│ │ ├── Objects.java
│ │ ├── SLF4JManagedLoggerRepository.java
│ │ ├── SimpleManagedLoggerRepository.java
│ │ ├── Strings.java
│ │ ├── SystemProperties.java
│ │ ├── Virtual.java
│ │ ├── assembler
│ │ ├── ComponentContainer.java
│ │ ├── ComponentSupplier.java
│ │ └── StaticComponentContainer.java
│ │ ├── classes
│ │ ├── AnnotationSourceGenerator.java
│ │ ├── BodySourceGenerator.java
│ │ ├── ByteCodeHunter.java
│ │ ├── ByteCodeHunterImpl.java
│ │ ├── ClassCriteria.java
│ │ ├── ClassFactory.java
│ │ ├── ClassFactoryImpl.java
│ │ ├── ClassHunter.java
│ │ ├── ClassHunterImpl.java
│ │ ├── ClassLoaderManager.java
│ │ ├── ClassPathHelper.java
│ │ ├── ClassPathHelperImpl.java
│ │ ├── ClassPathHunter.java
│ │ ├── ClassPathHunterImpl.java
│ │ ├── ClassPathScanner.java
│ │ ├── ClassSourceGenerator.java
│ │ ├── Classes.java
│ │ ├── CodeExecutor.java
│ │ ├── CodeExecutorImpl.java
│ │ ├── ConstructorCriteria.java
│ │ ├── Constructors.java
│ │ ├── CriteriaWithClassElementsSupplyingSupport.java
│ │ ├── ExecutableMemberCriteria.java
│ │ ├── ExecuteConfig.java
│ │ ├── FieldAccessor.java
│ │ ├── FieldCriteria.java
│ │ ├── Fields.java
│ │ ├── FunctionSourceGenerator.java
│ │ ├── FunctionalInterfaceFactory.java
│ │ ├── FunctionalInterfaceFactoryImpl.java
│ │ ├── FunctionalInterfaceSourceGenerator.java
│ │ ├── GenericSourceGenerator.java
│ │ ├── JavaClass.java
│ │ ├── JavaMemoryCompiler.java
│ │ ├── JavaMemoryCompilerImpl.java
│ │ ├── LoadOrBuildAndDefineConfig.java
│ │ ├── LoadOrBuildAndDefineConfigAbst.java
│ │ ├── MemberCriteria.java
│ │ ├── Members.java
│ │ ├── MembersRetriever.java
│ │ ├── MemoryClassLoader.java
│ │ ├── MethodCriteria.java
│ │ ├── Methods.java
│ │ ├── Modules.java
│ │ ├── PathScannerClassLoader.java
│ │ ├── PojoSourceGenerator.java
│ │ ├── SearchConfig.java
│ │ ├── SearchContext.java
│ │ ├── SearchResult.java
│ │ ├── SourceCodeHandler.java
│ │ ├── SourceGenerator.java
│ │ ├── TypeDeclarationSourceGenerator.java
│ │ ├── UnitSourceGenerator.java
│ │ └── VariableSourceGenerator.java
│ │ ├── concurrent
│ │ ├── NullExecutableException.java
│ │ ├── QueuedTaskExecutor.java
│ │ ├── Synchronizer.java
│ │ ├── TaskStateException.java
│ │ ├── TasksMonitorer.java
│ │ └── Thread.java
│ │ ├── function
│ │ ├── Executor.java
│ │ ├── MultiParamsConsumer.java
│ │ ├── MultiParamsFunction.java
│ │ ├── MultiParamsPredicate.java
│ │ ├── PentaConsumer.java
│ │ ├── PentaFunction.java
│ │ ├── PentaPredicate.java
│ │ ├── QuadConsumer.java
│ │ ├── QuadPredicate.java
│ │ ├── Runnable.java
│ │ ├── ThrowingBiConsumer.java
│ │ ├── ThrowingBiFunction.java
│ │ ├── ThrowingBiPredicate.java
│ │ ├── ThrowingConsumer.java
│ │ ├── ThrowingFunction.java
│ │ ├── ThrowingPredicate.java
│ │ ├── ThrowingQuadFunction.java
│ │ ├── ThrowingRunnable.java
│ │ ├── ThrowingSupplier.java
│ │ ├── ThrowingTriFunction.java
│ │ ├── ThrowingTriPredicate.java
│ │ ├── TriConsumer.java
│ │ ├── TriFunction.java
│ │ └── TriPredicate.java
│ │ ├── io
│ │ ├── ByteBufferInputStream.java
│ │ ├── ByteBufferOutputStream.java
│ │ ├── FileCriteria.java
│ │ ├── FileInputStream.java
│ │ ├── FileOutputStream.java
│ │ ├── FileSystemHelper.java
│ │ ├── FileSystemItem.java
│ │ ├── FileSystemItemNotFoundException.java
│ │ ├── IterableZipContainer.java
│ │ ├── PathHelper.java
│ │ ├── PathHelperImpl.java
│ │ ├── Resources.java
│ │ ├── Streams.java
│ │ ├── StreamsImpl.java
│ │ ├── ZipContainerEntryCriteria.java
│ │ ├── ZipFile.java
│ │ └── ZipInputStream.java
│ │ ├── iterable
│ │ ├── IterableObjectHelper.java
│ │ ├── IterableObjectHelperImpl.java
│ │ ├── Properties.java
│ │ ├── TaskBasedIterator.java
│ │ └── ThreadBasedIterator.java
│ │ └── jvm
│ │ └── BufferHandler.java
└── resources
│ └── org
│ └── burningwave
│ └── banner.bwb
└── test
├── external-resources
├── commons-lang
│ └── org
│ │ └── apache
│ │ └── commons
│ │ └── lang
│ │ ├── ArrayUtils.class
│ │ ├── BitField.class
│ │ ├── BooleanUtils.class
│ │ ├── CharEncoding.class
│ │ ├── CharRange$1.class
│ │ ├── CharRange$CharacterIterator.class
│ │ ├── CharRange.class
│ │ ├── CharSet.class
│ │ ├── CharSetUtils.class
│ │ ├── CharUtils.class
│ │ ├── ClassUtils.class
│ │ ├── Entities$ArrayEntityMap.class
│ │ ├── Entities$BinaryEntityMap.class
│ │ ├── Entities$EntityMap.class
│ │ ├── Entities$HashEntityMap.class
│ │ ├── Entities$LookupEntityMap.class
│ │ ├── Entities$MapIntMap.class
│ │ ├── Entities$PrimitiveEntityMap.class
│ │ ├── Entities$TreeEntityMap.class
│ │ ├── Entities.class
│ │ ├── IllegalClassException.class
│ │ ├── IncompleteArgumentException.class
│ │ ├── IntHashMap$Entry.class
│ │ ├── IntHashMap.class
│ │ ├── LocaleUtils.class
│ │ ├── NotImplementedException.class
│ │ ├── NullArgumentException.class
│ │ ├── NumberRange.class
│ │ ├── NumberUtils.class
│ │ ├── ObjectUtils$Null.class
│ │ ├── ObjectUtils.class
│ │ ├── RandomStringUtils.class
│ │ ├── SerializationException.class
│ │ ├── SerializationUtils.class
│ │ ├── StringEscapeUtils.class
│ │ ├── StringUtils.class
│ │ ├── SystemUtils.class
│ │ ├── UnhandledException.class
│ │ ├── Validate.class
│ │ ├── WordUtils.class
│ │ ├── builder
│ │ ├── CompareToBuilder.class
│ │ ├── EqualsBuilder.class
│ │ ├── HashCodeBuilder.class
│ │ ├── IDKey.class
│ │ ├── ReflectionToStringBuilder.class
│ │ ├── StandardToStringStyle.class
│ │ ├── ToStringBuilder.class
│ │ ├── ToStringStyle$DefaultToStringStyle.class
│ │ ├── ToStringStyle$MultiLineToStringStyle.class
│ │ ├── ToStringStyle$NoFieldNameToStringStyle.class
│ │ ├── ToStringStyle$ShortPrefixToStringStyle.class
│ │ ├── ToStringStyle$SimpleToStringStyle.class
│ │ └── ToStringStyle.class
│ │ ├── enum
│ │ ├── Enum$Entry.class
│ │ ├── Enum.class
│ │ ├── EnumUtils.class
│ │ └── ValuedEnum.class
│ │ ├── enums
│ │ ├── Enum$Entry.class
│ │ ├── Enum.class
│ │ ├── EnumUtils.class
│ │ └── ValuedEnum.class
│ │ ├── exception
│ │ ├── CloneFailedException.class
│ │ ├── ExceptionUtils.class
│ │ ├── Nestable.class
│ │ ├── NestableDelegate.class
│ │ ├── NestableError.class
│ │ ├── NestableException.class
│ │ └── NestableRuntimeException.class
│ │ ├── math
│ │ ├── DoubleRange.class
│ │ ├── FloatRange.class
│ │ ├── Fraction.class
│ │ ├── IEEE754rUtils.class
│ │ ├── IntRange.class
│ │ ├── JVMRandom.class
│ │ ├── LongRange.class
│ │ ├── NumberRange.class
│ │ ├── NumberUtils.class
│ │ ├── RandomUtils.class
│ │ └── Range.class
│ │ ├── mutable
│ │ ├── Mutable.class
│ │ ├── MutableBoolean.class
│ │ ├── MutableByte.class
│ │ ├── MutableDouble.class
│ │ ├── MutableFloat.class
│ │ ├── MutableInt.class
│ │ ├── MutableLong.class
│ │ ├── MutableObject.class
│ │ └── MutableShort.class
│ │ ├── reflect
│ │ ├── ConstructorUtils.class
│ │ ├── FieldUtils.class
│ │ ├── MemberUtils.class
│ │ └── MethodUtils.class
│ │ ├── text
│ │ ├── CompositeFormat.class
│ │ ├── ExtendedMessageFormat.class
│ │ ├── FormatFactory.class
│ │ ├── StrBuilder$StrBuilderReader.class
│ │ ├── StrBuilder$StrBuilderTokenizer.class
│ │ ├── StrBuilder$StrBuilderWriter.class
│ │ ├── StrBuilder.class
│ │ ├── StrLookup$MapStrLookup.class
│ │ ├── StrLookup.class
│ │ ├── StrMatcher$CharMatcher.class
│ │ ├── StrMatcher$CharSetMatcher.class
│ │ ├── StrMatcher$NoMatcher.class
│ │ ├── StrMatcher$StringMatcher.class
│ │ ├── StrMatcher$TrimMatcher.class
│ │ ├── StrMatcher.class
│ │ ├── StrSubstitutor.class
│ │ └── StrTokenizer.class
│ │ └── time
│ │ ├── DateFormatUtils.class
│ │ ├── DateUtils$DateIterator.class
│ │ ├── DateUtils.class
│ │ ├── DurationFormatUtils$Token.class
│ │ ├── DurationFormatUtils.class
│ │ ├── FastDateFormat$CharacterLiteral.class
│ │ ├── FastDateFormat$NumberRule.class
│ │ ├── FastDateFormat$PaddedNumberField.class
│ │ ├── FastDateFormat$Pair.class
│ │ ├── FastDateFormat$Rule.class
│ │ ├── FastDateFormat$StringLiteral.class
│ │ ├── FastDateFormat$TextField.class
│ │ ├── FastDateFormat$TimeZoneDisplayKey.class
│ │ ├── FastDateFormat$TimeZoneNameRule.class
│ │ ├── FastDateFormat$TimeZoneNumberRule.class
│ │ ├── FastDateFormat$TwelveHourField.class
│ │ ├── FastDateFormat$TwentyFourHourField.class
│ │ ├── FastDateFormat$TwoDigitMonthField.class
│ │ ├── FastDateFormat$TwoDigitNumberField.class
│ │ ├── FastDateFormat$TwoDigitYearField.class
│ │ ├── FastDateFormat$UnpaddedMonthField.class
│ │ ├── FastDateFormat$UnpaddedNumberField.class
│ │ ├── FastDateFormat.class
│ │ └── StopWatch.class
├── libs-for-test.zip
└── spring-core-4.3.4.RELEASE.jar
├── java
└── org
│ └── burningwave
│ └── core
│ ├── AllExceptHeavyTestsSuite.java
│ ├── AllTestsReducedSuite.java
│ ├── AllTestsSuite.java
│ ├── BackgroundExecutorTest.java
│ ├── BaseTest.java
│ ├── ByteBufferHandlerTest.java
│ ├── ByteCodeHunterTest.java
│ ├── ClassFactoryTest.java
│ ├── ClassHunterTest.java
│ ├── ClassLoadersTest.java
│ ├── ClassPathHunterTest.java
│ ├── ClassesTest.java
│ ├── CodeExecutorTest.java
│ ├── ComponentContainerTest.java
│ ├── ConstructorsTest.java
│ ├── FieldAccessorTest.java
│ ├── FieldsTest.java
│ ├── FileSystemHelperTest.java
│ ├── FileSystemItemTest.java
│ ├── FunctionalInterfaceFactoryTest.java
│ ├── IterableObjectHelperTest.java
│ ├── IterableZipContainerTest.java
│ ├── ManagedLoggerRepositoryTest.java
│ ├── MembersTest.java
│ ├── MemoryClassLoaderTest.java
│ ├── MethodsTest.java
│ ├── ModulesTest.java
│ ├── PathHelperTest.java
│ ├── PathScannerClassLoaderTest.java
│ ├── PropertiesTest.java
│ ├── RepeatedClassFactoryTest.java
│ ├── RepeatedComponentContainerTest.java
│ ├── SourceCodeHandlerTest.java
│ ├── StringsTest.java
│ ├── ThreadSupplierTest.java
│ ├── UnitSourceGeneratorTest.java
│ ├── bean
│ ├── Complex.java
│ └── PojoInterface.java
│ ├── examples
│ ├── backgroundexecutor
│ │ └── TaskLauncher.java
│ ├── classfactory
│ │ ├── ExternalClassRuntimeExtender.java
│ │ ├── FunctionalInterfaceBuilder.java
│ │ ├── RuntimeClassExtender.java
│ │ ├── RuntimeClassExtenderTwo.java
│ │ └── UseFunctionalInterface.java
│ ├── classhunter
│ │ ├── AllAnnotatedClassFinder.java
│ │ ├── ClassForPackageAndAnnotationFinder.java
│ │ ├── ClassForPackageAndAnnotationFinderByConsideringClassHierarchy.java
│ │ ├── ClassForPackageFinder.java
│ │ ├── ClassHunterMixedExample.java
│ │ └── FieldAnnotatedClassOfPackageFinder.java
│ ├── codeexecutor
│ │ └── SourceCodeExecutor.java
│ ├── componentcontainer
│ │ └── RetrievingDynamicComponentContainerAndComponents.java
│ ├── filesystemitem
│ │ └── ResourceReacher.java
│ ├── functionalinterfacefactory
│ │ ├── Binder.java
│ │ └── Service.java
│ ├── iterableobjecthelper
│ │ ├── CollectionAndArrayIterator.java
│ │ └── ItemFromMapRetriever.java
│ ├── member
│ │ ├── ConstructorsHandler.java
│ │ ├── FieldsHandler.java
│ │ └── MethodsHandler.java
│ ├── propertyaccessor
│ │ └── GetAndSetPropertiesThroughPath.java
│ ├── usecase001
│ │ └── Finder.java
│ ├── usecase002
│ │ └── Finder.java
│ ├── usecase003
│ │ └── Finder.java
│ ├── usecase005
│ │ └── Finder.java
│ ├── usecase006
│ │ └── Finder.java
│ ├── usecase008
│ │ └── Finder.java
│ ├── usecase009
│ │ └── Finder.java
│ └── usecase010
│ │ └── Finder.java
│ └── service
│ ├── ExtendedService.java
│ ├── Service.java
│ └── ServiceInterface.java
└── resources
├── burningwave.properties
├── burningwave.static.properties
├── custom-folder
└── code.properties
├── junit-platform.properties
├── logback-test.xml
└── logging.properties
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: https://www.paypal.com/donate/?cmd=_donations&business=EY4TMTW8SWDAC&item_name=Support+maintenance+and+improvement+of+Burningwave+Core¤cy_code=EUR&source=url
2 |
--------------------------------------------------------------------------------
/.github/workflows/[A] build and test, release if requested.yml:
--------------------------------------------------------------------------------
1 | name: Build and test -> Release if requested
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | paths:
8 | - "src/main/**.java"
9 | - "src/test/**.java"
10 | # - ".github/workflows/**"
11 | - "**.properties"
12 | - "**.xml"
13 |
14 | jobs:
15 |
16 | build-and-test-with-Java-8-and-later:
17 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }})
18 | strategy:
19 | fail-fast: true
20 | max-parallel: 15
21 | matrix:
22 | architecture: [x64]
23 | os: [windows-latest, macOS-latest, ubuntu-latest]
24 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
25 | exclude:
26 | - os: ubuntu-latest
27 | java: 10
28 | runs-on: ${{ matrix.os }}
29 | steps:
30 | - uses: actions/checkout@v3
31 | - name: Set up JDK ${{ matrix.java }}
32 | uses: actions/setup-java@v3
33 | with:
34 | java-version: ${{ matrix.java }}
35 | distribution: 'zulu'
36 | architecture: ${{ matrix.architecture }}
37 | - name: Build and test
38 | run: mvn -B clean test -DskipTests=false --file pom.xml
39 |
40 |
41 | release:
42 | name: Release if requested
43 | needs: [build-and-test-with-Java-8-and-later]
44 | runs-on: ubuntu-latest
45 | if: github.event_name == 'push' && endsWith(github.event.head_commit.message, 'Releasing new version')
46 | steps:
47 | - uses: actions/checkout@v3
48 | - name: Set up JDK 24
49 | uses: actions/setup-java@v3
50 | with:
51 | java-version: 24
52 | distribution: 'zulu'
53 | server-id: ossrh
54 | server-username: MAVEN_USERNAME
55 | server-password: MAVEN_PASSWORD
56 | - name: Publish to the Maven Central repository
57 | run: |
58 | export GPG_TTY=$(tty)
59 | echo "${{ secrets.gpg_private_key }}" | gpg --batch --import
60 | git config user.name "${{ github.event.head_commit.committer.name }}"
61 | git config user.email "${{ github.event.head_commit.committer.email }}"
62 | mvn -B release:prepare release:perform -DskipTests=true -Dgpg.passphrase=${{ secrets.gpg_passphrase }} -Dgpg.keyname=${{ secrets.gpg_key_id }} -Drepository.url=https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git
63 | env:
64 | MAVEN_USERNAME: ${{ secrets.nexus_username }}
65 | MAVEN_PASSWORD: ${{ secrets.nexus_password }}
66 |
--------------------------------------------------------------------------------
/.github/workflows/[A] compute coverage.yml:
--------------------------------------------------------------------------------
1 | name: Compute coverage
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | paths:
8 | - "src/main/**.java"
9 | - "src/test/**.java"
10 | # - ".github/workflows/**"
11 | - "**.properties"
12 | - "**.xml"
13 |
14 | jobs:
15 | compute-coverage:
16 | name: Compute coverage
17 | runs-on: ubuntu-latest
18 | steps:
19 | - uses: actions/checkout@v3
20 | - uses: actions/setup-java@v3
21 | with:
22 | java-version: 8
23 | distribution: 'zulu'
24 | architecture: x64
25 | - name: Build and test
26 | run: mvn clean test -DskipTests=false -Dproject.test.testSuite=AllTestsSuite -P run-coveralls jacoco:report coveralls:report -DrepoToken=${{ secrets.coveralls_repo_token }}
27 |
28 |
--------------------------------------------------------------------------------
/.github/workflows/[A] update documentation.yml:
--------------------------------------------------------------------------------
1 | name: Update index page
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | paths:
8 | - "**README.md"
9 |
10 | jobs:
11 | update-index-page:
12 | runs-on: ubuntu-latest
13 | name: Update index page
14 | steps:
15 | - uses: actions/checkout@master
16 | - name: Overwrite the index.md
17 | run: |
18 | git config user.name "${{ github.event.head_commit.committer.name }}"
19 | git config user.email "${{ github.event.head_commit.committer.email }}"
20 | git pull origin ${{github.ref}}
21 | cp "./README.md" "./docs/index.md"
22 | git add .
23 | git commit -am "Update" --allow-empty
24 | git push
25 |
--------------------------------------------------------------------------------
/.github/workflows/[A][S] build and test.yml:
--------------------------------------------------------------------------------
1 | name: Build and test
2 |
3 | on:
4 | schedule:
5 | # - cron: "0 3-23/6 * * *"
6 | - cron: "0 15 * * 5"
7 | # - cron: "0 10,22 30 9 *"
8 |
9 | jobs:
10 |
11 | build-and-test-with-Java-8-and-later:
12 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }})
13 | strategy:
14 | fail-fast: true
15 | max-parallel: 15
16 | matrix:
17 | architecture: [x64]
18 | os: [windows-latest, macOS-latest, ubuntu-latest]
19 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
20 | exclude:
21 | - os: ubuntu-latest
22 | java: 10
23 | runs-on: ${{ matrix.os }}
24 | steps:
25 | - uses: actions/checkout@v3
26 | - name: Set up JDK ${{ matrix.java }}
27 | uses: actions/setup-java@v3
28 | with:
29 | java-version: ${{ matrix.java }}
30 | distribution: 'zulu'
31 | architecture: ${{ matrix.architecture }}
32 | - name: Build and test
33 | run: mvn -B clean test -DskipTests=false --file pom.xml
34 |
--------------------------------------------------------------------------------
/.github/workflows/[A][S][experimental] build and test.yml:
--------------------------------------------------------------------------------
1 | name: Build and test (experimental branch)
2 |
3 | on:
4 | schedule:
5 | # - cron: "0 0-23/6 * * *"
6 | - cron: "0 17 * * 5"
7 | # - cron: "0 4,16 30 9 *"
8 |
9 | jobs:
10 |
11 | build-and-test-with-Java-8-and-later:
12 | name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.os }})
13 | strategy:
14 | fail-fast: true
15 | max-parallel: 15
16 | matrix:
17 | architecture: [x64]
18 | os: [windows-latest, macOS-latest, ubuntu-latest]
19 | java: [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
20 | exclude:
21 | - os: ubuntu-latest
22 | java: 10
23 | runs-on: ${{ matrix.os }}
24 | steps:
25 | - uses: actions/checkout@v3
26 | with:
27 | ref: experimental
28 | - name: Set up JDK ${{ matrix.java }}
29 | uses: actions/setup-java@v3
30 | with:
31 | java-version: ${{ matrix.java }}
32 | distribution: 'zulu'
33 | architecture: ${{ matrix.architecture }}
34 | - name: Build and test
35 | run: mvn -B clean test -DskipTests=false --file pom.xml
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Log file
2 | *.log
3 |
4 | # BlueJ files
5 | *.ctxt
6 |
7 | # Mobile Tools for Java (J2ME)
8 | .mtj.tmp/
9 |
10 | # Package Files #
11 | *.jar
12 | *.war
13 | *.nar
14 | *.ear
15 | *.tar.gz
16 | *.rar
17 |
18 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
19 | hs_err_pid*
20 |
21 | /target/
22 | /.project
23 | /.settings
24 | /.classpath
25 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Roberto Gentili
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
2 | title: Burningwave Core
3 | google_analytics: UA-154852845-4
4 | show_downloads: false
5 |
--------------------------------------------------------------------------------
/docs/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {% if site.google_analytics %}
6 |
7 |
13 | {% endif %}
14 |
15 |
16 | {% seo %}
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
37 |
38 |
39 | {{ content }}
40 |
41 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Black.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Black.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Black.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Bold.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Book.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Book.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Book.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Book.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Hairline.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Hairline.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Hairline.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Hairline.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Light.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Medium.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Regular.woff2
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.ttf
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.woff
--------------------------------------------------------------------------------
/docs/assets/fonts/AldoPro-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/docs/assets/fonts/AldoPro-Thin.woff2
--------------------------------------------------------------------------------
/launcher/eclipse/Burningwave Core - AllTestsSuite.launch:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/launcher/eclipse/Burningwave Core - Debug attacher.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/launcher/eclipse/Burningwave Core - build and test with REMOTE DEBUG.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/launcher/eclipse/Burningwave Core - clean package install.launch:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/launcher/eclipse/Burningwave Core - clean package test.launch:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/src/main/java/module-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | module org.burningwave.core {
30 |
31 | requires java.base;
32 | requires java.compiler;
33 | requires jdk.unsupported;
34 | requires transitive io.github.toolfactory.jvm;
35 | requires transitive org.burningwave.jvm;
36 | requires static org.slf4j;
37 |
38 | exports org.burningwave.core;
39 | exports org.burningwave.core.assembler;
40 | exports org.burningwave.core.classes;
41 | exports org.burningwave.core.concurrent;
42 | exports org.burningwave.core.function;
43 | exports org.burningwave.core.io;
44 | exports org.burningwave.core.iterable;
45 | exports org.burningwave.core.jvm;
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Cleanable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings;
32 |
33 | import org.burningwave.core.concurrent.QueuedTaskExecutor;
34 |
35 | public interface Cleanable {
36 |
37 | public default void clear() {
38 | throw new UnsupportedOperationException(Strings.compile("Method is not defined by class {} and its super classes", getClass().getName()));
39 | }
40 |
41 | public default QueuedTaskExecutor.Task clearInBackground() {
42 | throw new UnsupportedOperationException(Strings.compile("Method is not defined by class {} and its super classes", getClass().getName()));
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Component.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import org.burningwave.core.iterable.Properties;
32 |
33 | public interface Component extends Closeable, Cleanable, Properties.Listener, Memorizer {
34 |
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Context.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import java.util.Map;
32 | import java.util.concurrent.ConcurrentHashMap;
33 |
34 | @SuppressWarnings("unchecked")
35 | public class Context implements Closeable {
36 | protected Map, Object> context;
37 |
38 | protected Context() {
39 | context = new ConcurrentHashMap<>();
40 | }
41 |
42 | public static Context create() {
43 | return new Context();
44 | }
45 |
46 | public Context put(Enum> name, Object parameter) {
47 | if (parameter != null) {
48 | context.put(name, parameter);
49 | } else {
50 | context.remove(name);
51 | }
52 | return this;
53 | }
54 |
55 | public T get(Enum> name) {
56 | return ((T)context.get(name));
57 | }
58 |
59 | @Override
60 | public void close() {
61 | context.clear();
62 | context = null;
63 | }
64 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Executable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | @SuppressWarnings("unchecked")
32 | @FunctionalInterface
33 | public interface Executable {
34 |
35 |
36 | public default T executeAndCast(Object... parameters) throws Throwable {
37 | return (T)execute(parameters);
38 | }
39 |
40 | public Object execute(Object... parameters) throws Throwable;
41 |
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Identifiable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import static org.burningwave.core.assembler.StaticComponentContainer.Objects;
32 |
33 | public interface Identifiable {
34 |
35 | default public String getId() {
36 | return Objects.getId(this);
37 | }
38 |
39 | default public String getOperationId(String operation) {
40 | return Objects.getId(this) + "_" + operation;
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Memorizer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import static org.burningwave.core.assembler.StaticComponentContainer.FileSystemHelper;
32 |
33 | import java.io.File;
34 |
35 | public interface Memorizer {
36 |
37 | default public String getTemporaryFolderPrefix() {
38 | return getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(this));
39 | }
40 |
41 | default public File getOrCreateTemporaryFolder() {
42 | //Register main temporary folder for deleting on FileSystemHelper closing
43 | return FileSystemHelper.getOrCreateTemporaryFolder(getTemporaryFolderPrefix());
44 | }
45 |
46 | default public File getOrCreateTemporaryFolder(String folderName) {
47 | return FileSystemHelper.getOrCreateTemporaryFolder(getOrCreateTemporaryFolder().getName() + "/" + folderName);
48 | }
49 |
50 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/Virtual.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core;
30 |
31 | import static org.burningwave.core.assembler.StaticComponentContainer.Fields;
32 | import static org.burningwave.core.assembler.StaticComponentContainer.Methods;
33 |
34 | import java.lang.reflect.Field;
35 | import java.util.Map;
36 |
37 | public interface Virtual {
38 |
39 | default T getValueOf(String fieldName) {
40 | return Fields.get(this, fieldName);
41 | }
42 |
43 | default T getDirectValueOf(String fieldName) {
44 | return Fields.getDirect(this, fieldName);
45 | }
46 |
47 | default T invoke(String methodName, Object... parameters) {
48 | return Methods.invoke(this, methodName, parameters);
49 | }
50 |
51 | default T invokeDirect(String methodName, Object... parameters) {
52 | return Methods.invokeDirect(this, methodName, parameters);
53 | }
54 |
55 | default Map getAllValues() {
56 | return Fields.getAll(this);
57 | }
58 |
59 | default Map getAllDirectValues() {
60 | return Fields.getAllDirect(this);
61 | }
62 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/concurrent/NullExecutableException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.concurrent;
30 |
31 | public class NullExecutableException extends RuntimeException {
32 |
33 | private static final long serialVersionUID = 3011104623285664660L;
34 |
35 | public NullExecutableException(String message) {
36 | super(message);
37 | }
38 |
39 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/concurrent/TaskStateException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.concurrent;
30 |
31 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings;
32 |
33 | public class TaskStateException extends IllegalStateException {
34 |
35 | private static final long serialVersionUID = -6504561450589871045L;
36 |
37 | public TaskStateException(QueuedTaskExecutor.TaskAbst, ?> task, String message, Throwable exception) {
38 | super(
39 | Strings.compile(
40 | "{} {} and was created at:{}\nException stacktrace:",
41 | task,
42 | message,
43 | Strings.from(task.getCreatorInfos(), 1)
44 | ),
45 | exception
46 | );
47 | }
48 |
49 | public TaskStateException(QueuedTaskExecutor.TaskAbst, ?> task, String message) {
50 | super(
51 | Strings.compile(
52 | "{} {} and was created at:{}\nException stacktrace:",
53 | task,
54 | message,
55 | Strings.from(task.getCreatorInfos(), 1)
56 | )
57 | );
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/MultiParamsConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 | import java.util.function.Consumer;
33 |
34 | public interface MultiParamsConsumer {
35 |
36 | void accept(Object... objects);
37 |
38 | default Consumer andThen(Consumer after) {
39 | Objects.requireNonNull(after);
40 | return (objects) -> {
41 | accept(objects);
42 | after.accept(objects);
43 | };
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/MultiParamsFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 | import java.util.function.Function;
33 |
34 | public interface MultiParamsFunction {
35 |
36 | public R apply(Object... objects);
37 |
38 | default Function andThen(Function super R, ? extends V> after) {
39 | Objects.requireNonNull(after);
40 | return (objects) -> after.apply(apply(objects));
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/MultiParamsPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 | import java.util.function.Predicate;
33 |
34 | public interface MultiParamsPredicate {
35 |
36 | public boolean test(Object... objects);
37 |
38 | default Predicate and(Predicate other) {
39 | Objects.requireNonNull(other);
40 | return objects -> test(objects) && other.test(objects);
41 | }
42 |
43 | default Predicate negate() {
44 | return (objects) -> !test(objects);
45 | }
46 |
47 | default Predicate or(Predicate other) {
48 | Objects.requireNonNull(other);
49 | return objects -> test(objects) || other.test(objects);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/PentaConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface PentaConsumer {
35 |
36 | public abstract void accept(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4);
37 |
38 | default PentaConsumer andThen(PentaConsumer super P0, ? super P1, ? super P2, ? super P3, ? super P4> after) {
39 | Objects.requireNonNull(after);
40 | return (p0, p1, p2, p3, p4) -> {
41 | accept(p0, p1, p2, p3, p4);
42 | after.accept(p0, p1, p2, p3, p4);
43 | };
44 | }
45 |
46 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/PentaFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 | import java.util.function.Function;
33 |
34 | @FunctionalInterface
35 | public interface PentaFunction {
36 |
37 | R apply(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4);
38 |
39 | default PentaFunction andThen(Function super R, ? extends V> after) {
40 | Objects.requireNonNull(after);
41 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> after.apply(apply(p0, p1, p2, p3, p4));
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/PentaPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface PentaPredicate {
37 |
38 | boolean test(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4);
39 |
40 | default PentaPredicate and(PentaPredicate super P0, ? super P1, ? super P2, ? super P3, ? super P4> other) {
41 | Objects.requireNonNull(other);
42 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> test(p0, p1, p2, p3, p4) && other.test(p0, p1, p2, p3, p4);
43 | }
44 |
45 | default PentaPredicate negate() {
46 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> !test(p0, p1, p2, p3, p4);
47 | }
48 |
49 | default PentaPredicate or(PentaPredicate super P0, ? super P1, ? super P2, ? super P3, ? super P4> other) {
50 | Objects.requireNonNull(other);
51 | return (P0 p0, P1 p1, P2 p2, P3 p3, P4 p4) -> test(p0, p1, p2, p3, p4) || other.test(p0, p1, p2, p3, p4);
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/QuadConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface QuadConsumer {
35 |
36 | void accept(P0 p0, P1 p1, P2 p2, P3 p3);
37 |
38 | default QuadConsumer andThen(QuadConsumer super P0, ? super P1, ? super P2, ? super P3> after) {
39 | Objects.requireNonNull(after);
40 | return (p0, p1, p2, p3) -> {
41 | accept(p0, p1, p2, p3);
42 | after.accept(p0, p1, p2, p3);
43 | };
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/QuadPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface QuadPredicate {
37 |
38 | boolean test(P0 p0, P1 p1, P2 p2, P3 p3);
39 |
40 | default QuadPredicate and(QuadPredicate super P0, ? super P1, ? super P2, ? super P3> other) {
41 | Objects.requireNonNull(other);
42 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> test(p0, p1, p2, p3) && other.test(p0, p1, p2, p3);
43 | }
44 |
45 | default QuadPredicate negate() {
46 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> !test(p0, p1, p2, p3);
47 | }
48 |
49 | default QuadPredicate or(QuadPredicate super P0, ? super P1, ? super P2, ? super P3> other) {
50 | Objects.requireNonNull(other);
51 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> test(p0, p1, p2, p3) || other.test(p0, p1, p2, p3);
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/Runnable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface Runnable extends java.lang.Runnable {
37 |
38 |
39 | default Runnable andThen(java.lang.Runnable after) {
40 | Objects.requireNonNull(after);
41 | return () -> {
42 | run();
43 | after.run();
44 | };
45 | }
46 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingBiConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingBiConsumer {
35 |
36 | void accept(P0 p0, P1 p1) throws E;
37 |
38 | default ThrowingBiConsumer andThen(ThrowingBiConsumer super P0, ? super P1, ? extends E> after) {
39 | Objects.requireNonNull(after);
40 | return (p0, p1) -> {
41 | accept(p0, p1);
42 | after.accept(p0, p1);
43 | };
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingBiFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingBiFunction {
35 |
36 | R apply(P0 p0, P1 p1) throws E;
37 |
38 | default ThrowingBiFunction andThen(ThrowingFunction super R, ? extends V, ? extends E> after) {
39 | Objects.requireNonNull(after);
40 | return (P0 p0, P1 p1) -> after.apply(apply(p0, p1));
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingBiPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingBiPredicate {
35 |
36 |
37 | boolean test(T t, U u) throws E;
38 |
39 | default ThrowingBiPredicate and(ThrowingBiPredicate super T, ? super U, ? extends E> other) {
40 | Objects.requireNonNull(other);
41 | return (T t, U u) -> test(t, u) && other.test(t, u);
42 | }
43 |
44 | default ThrowingBiPredicate negate() {
45 | return (T t, U u) -> !test(t, u);
46 | }
47 |
48 | default ThrowingBiPredicate or(ThrowingBiPredicate super T, ? super U, ? extends E> other) {
49 | Objects.requireNonNull(other);
50 | return (T t, U u) -> test(t, u) || other.test(t, u);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingConsumer {
35 |
36 | void accept(T t) throws E;
37 |
38 | default ThrowingConsumer andThen(ThrowingConsumer super T, ? extends E> after) {
39 | Objects.requireNonNull(after);
40 | return (T t) -> { accept(t); after.accept(t); };
41 | }
42 |
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface ThrowingFunction {
37 |
38 |
39 | R apply(T t) throws E;
40 |
41 |
42 | default ThrowingFunction compose(ThrowingFunction super V, ? extends T, ? extends E> before) {
43 | Objects.requireNonNull(before);
44 | return (V v) -> apply(before.apply(v));
45 | }
46 |
47 |
48 | default ThrowingFunction andThen(ThrowingFunction super R, ? extends V, ? extends E> after) {
49 | Objects.requireNonNull(after);
50 | return (T t) -> after.apply(apply(t));
51 | }
52 |
53 |
54 | static ThrowingFunction identity() {
55 | return t -> t;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingPredicate {
35 |
36 | boolean test(T t) throws E;
37 |
38 | default ThrowingPredicate and(ThrowingPredicate super T, ? extends E> other) {
39 | Objects.requireNonNull(other);
40 | return (t) -> test(t) && other.test(t);
41 | }
42 |
43 | default ThrowingPredicate negate() {
44 | return (t) -> !test(t);
45 | }
46 |
47 | default ThrowingPredicate or(ThrowingPredicate super T, ? extends E> other) {
48 | Objects.requireNonNull(other);
49 | return (t) -> test(t) || other.test(t);
50 | }
51 |
52 | static ThrowingPredicate isEqual(Object targetRef) {
53 | return (null == targetRef)
54 | ? Objects::isNull
55 | : object -> targetRef.equals(object);
56 | }
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingQuadFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingQuadFunction {
35 |
36 | R apply(P0 p0, P1 p1, P2 p2, P3 p3) throws E;
37 |
38 | default ThrowingQuadFunction andThen(ThrowingFunction super R, ? extends V, ? extends E> after) {
39 | Objects.requireNonNull(after);
40 | return (P0 p0, P1 p1, P2 p2, P3 p3) -> after.apply(apply(p0, p1, p2, p3));
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingRunnable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingRunnable {
35 |
36 | public abstract void run() throws E;
37 |
38 | default ThrowingRunnable andThen(ThrowingRunnable after) {
39 | Objects.requireNonNull(after);
40 | return () -> {
41 | run();
42 | after.run();
43 | };
44 | }
45 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | @FunctionalInterface
32 | public interface ThrowingSupplier {
33 |
34 | T get() throws E;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingTriFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface ThrowingTriFunction {
35 |
36 | R apply(P0 p0, P1 p1, P2 p2) throws E;
37 |
38 | default ThrowingTriFunction andThen(ThrowingFunction super R, ? extends V, ? extends E> after) {
39 | Objects.requireNonNull(after);
40 | return (P0 p0, P1 p1, P2 p2) -> after.apply(apply(p0, p1, p2));
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/ThrowingTriPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface ThrowingTriPredicate {
37 |
38 | boolean test(P0 p0, P1 p1, P2 p2) throws Throwable;
39 |
40 | default ThrowingTriPredicate and(ThrowingTriPredicate super P0, ? super P1, ? super P2, ? extends E> other) {
41 | Objects.requireNonNull(other);
42 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) && other.test(p0, p1, p2);
43 | }
44 |
45 | default ThrowingTriPredicate negate() {
46 | return (P0 p0, P1 p1, P2 p2) -> !test(p0, p1, p2);
47 | }
48 |
49 | default ThrowingTriPredicate or(ThrowingTriPredicate super P0, ? super P1, ? super P2, ? extends E> other) {
50 | Objects.requireNonNull(other);
51 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) || other.test(p0, p1, p2);
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/TriConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 |
33 | @FunctionalInterface
34 | public interface TriConsumer {
35 |
36 | void accept(P0 p0, P1 p1, P2 p2);
37 |
38 | default TriConsumer andThen(TriConsumer super P0, ? super P1, ? super P2> after) {
39 | Objects.requireNonNull(after);
40 | return (p0, p1, p2) -> {
41 | accept(p0, p1, p2);
42 | after.accept(p0, p1, p2);
43 | };
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/TriFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 | import java.util.Objects;
32 | import java.util.function.Function;
33 |
34 | @FunctionalInterface
35 | public interface TriFunction {
36 |
37 | R apply(P0 p0, P1 p1, P2 p2);
38 |
39 | default TriFunction andThen(Function super R, ? extends V> after) {
40 | Objects.requireNonNull(after);
41 | return (P0 p0, P1 p1, P2 p2) -> after.apply(apply(p0, p1, p2));
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/function/TriPredicate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.function;
30 |
31 |
32 | import java.util.Objects;
33 |
34 |
35 | @FunctionalInterface
36 | public interface TriPredicate {
37 |
38 | boolean test(P0 p0, P1 p1, P2 p2);
39 |
40 | default TriPredicate and(TriPredicate super P0, ? super P1, ? super P2> other) {
41 | Objects.requireNonNull(other);
42 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) && other.test(p0, p1, p2);
43 | }
44 |
45 | default TriPredicate negate() {
46 | return (P0 p0, P1 p1, P2 p2) -> !test(p0, p1, p2);
47 | }
48 |
49 | default TriPredicate or(TriPredicate super P0, ? super P1, ? super P2> other) {
50 | Objects.requireNonNull(other);
51 | return (P0 p0, P1 p1, P2 p2) -> test(p0, p1, p2) || other.test(p0, p1, p2);
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/io/FileCriteria.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.io;
30 |
31 | import java.io.File;
32 | import java.util.function.Predicate;
33 |
34 | import org.burningwave.core.Criteria;
35 |
36 | public class FileCriteria extends Criteria.Simple {
37 |
38 | private FileCriteria() {}
39 |
40 | public static FileCriteria create() {
41 | return new FileCriteria();
42 | }
43 |
44 | public FileCriteria absolutePath(Predicate predicate) {
45 | this.predicate = concat(
46 | this.predicate,
47 | (file) -> predicate.test(file.getAbsolutePath())
48 | );
49 | return this;
50 | }
51 |
52 |
53 | public FileCriteria name(Predicate predicate) {
54 | this.predicate = concat(
55 | this.predicate,
56 | (file) -> predicate.test(file.getName())
57 | );
58 | return this;
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/io/FileSystemItemNotFoundException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.io;
30 |
31 |
32 | public class FileSystemItemNotFoundException extends RuntimeException {
33 |
34 | private static final long serialVersionUID = 7265824022880218451L;
35 |
36 | public FileSystemItemNotFoundException(String message, Throwable cause) {
37 | super(message, cause);
38 | }
39 |
40 | public FileSystemItemNotFoundException(java.io.FileNotFoundException exc) {
41 | super(exc);
42 | }
43 |
44 | public FileSystemItemNotFoundException(String message) {
45 | super(message);
46 | }
47 | }
--------------------------------------------------------------------------------
/src/main/java/org/burningwave/core/io/ZipContainerEntryCriteria.java:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of Burningwave Core.
3 | *
4 | * Author: Roberto Gentili
5 | *
6 | * Hosted at: https://github.com/burningwave/core
7 | *
8 | * --
9 | *
10 | * The MIT License (MIT)
11 | *
12 | * Copyright (c) 2019 Roberto Gentili
13 | *
14 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
15 | * documentation files (the "Software"), to deal in the Software without restriction, including without
16 | * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
17 | * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
18 | * conditions:
19 | *
20 | * The above copyright notice and this permission notice shall be included in all copies or substantial
21 | * portions of the Software.
22 | *
23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
25 | * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26 | * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
27 | * OR OTHER DEALINGS IN THE SOFTWARE.
28 | */
29 | package org.burningwave.core.io;
30 |
31 | import java.util.function.Predicate;
32 |
33 | import org.burningwave.core.Criteria;
34 |
35 | public class ZipContainerEntryCriteria extends Criteria>{
36 |
37 | private ZipContainerEntryCriteria() {}
38 |
39 | public static ZipContainerEntryCriteria create() {
40 | return new ZipContainerEntryCriteria();
41 | }
42 |
43 | public ZipContainerEntryCriteria absolutePath(final Predicate predicate) {
44 | this.predicate = concat(
45 | this.predicate,
46 | (context, zipEntry) -> predicate.test(zipEntry.getAbsolutePath())
47 | );
48 | return this;
49 | }
50 |
51 |
52 | public ZipContainerEntryCriteria name(final Predicate predicate) {
53 | this.predicate = concat(
54 | this.predicate,
55 | (context, zipEntry) -> predicate.test(zipEntry.getName())
56 | );
57 | return this;
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/ArrayUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ArrayUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/BitField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/BitField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/BooleanUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/BooleanUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharEncoding.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharEncoding.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$1.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$CharacterIterator.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange$CharacterIterator.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSet.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSet.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSetUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharSetUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/CharUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/CharUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/ClassUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ClassUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$ArrayEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$ArrayEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$BinaryEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$BinaryEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$EntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$EntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$HashEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$HashEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$LookupEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$LookupEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$MapIntMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$MapIntMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$PrimitiveEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$PrimitiveEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$TreeEntityMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities$TreeEntityMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Entities.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/IllegalClassException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IllegalClassException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/IncompleteArgumentException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IncompleteArgumentException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap$Entry.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap$Entry.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/IntHashMap.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/LocaleUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/LocaleUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/NotImplementedException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NotImplementedException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/NullArgumentException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NullArgumentException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/NumberUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils$Null.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils$Null.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/ObjectUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/RandomStringUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/RandomStringUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SerializationUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/StringEscapeUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/StringEscapeUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/StringUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/StringUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/SystemUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/SystemUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/UnhandledException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/UnhandledException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/Validate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/Validate.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/WordUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/WordUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/CompareToBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/CompareToBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/EqualsBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/EqualsBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/HashCodeBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/HashCodeBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/IDKey.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/IDKey.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ReflectionToStringBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ReflectionToStringBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/StandardToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/StandardToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$DefaultToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$DefaultToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$MultiLineToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$MultiLineToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$NoFieldNameToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$NoFieldNameToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$ShortPrefixToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$ShortPrefixToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$SimpleToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle$SimpleToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/builder/ToStringStyle.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum$Entry.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum$Entry.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/Enum.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/EnumUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/EnumUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/ValuedEnum.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enum/ValuedEnum.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum$Entry.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum$Entry.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/Enum.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/EnumUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/EnumUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/ValuedEnum.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/enums/ValuedEnum.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/CloneFailedException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/CloneFailedException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/ExceptionUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/ExceptionUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/Nestable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/Nestable.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableDelegate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableDelegate.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableError.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableError.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/exception/NestableRuntimeException.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/DoubleRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/DoubleRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/FloatRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/FloatRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Fraction.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Fraction.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IEEE754rUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IEEE754rUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IntRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/IntRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/JVMRandom.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/JVMRandom.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/LongRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/LongRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberRange.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberRange.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/NumberUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/RandomUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/RandomUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Range.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/math/Range.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/Mutable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/Mutable.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableBoolean.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableBoolean.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableByte.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableByte.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableDouble.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableDouble.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableFloat.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableFloat.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableInt.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableInt.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableLong.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableLong.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableObject.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableObject.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableShort.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/mutable/MutableShort.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/ConstructorUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/ConstructorUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/FieldUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/FieldUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MemberUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MemberUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MethodUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/reflect/MethodUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/CompositeFormat.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/CompositeFormat.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/ExtendedMessageFormat.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/ExtendedMessageFormat.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/FormatFactory.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/FormatFactory.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderReader.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderReader.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderTokenizer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderTokenizer.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderWriter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder$StrBuilderWriter.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrBuilder.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup$MapStrLookup.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup$MapStrLookup.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrLookup.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharSetMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$CharSetMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$NoMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$NoMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$StringMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$StringMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$TrimMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher$TrimMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrMatcher.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrSubstitutor.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrSubstitutor.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrTokenizer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/text/StrTokenizer.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateFormatUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateFormatUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils$DateIterator.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils$DateIterator.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DateUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils$Token.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils$Token.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/DurationFormatUtils.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$CharacterLiteral.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$CharacterLiteral.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$NumberRule.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$NumberRule.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$PaddedNumberField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$PaddedNumberField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Pair.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Pair.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Rule.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$Rule.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$StringLiteral.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$StringLiteral.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TextField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TextField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneDisplayKey.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneDisplayKey.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNameRule.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNameRule.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNumberRule.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TimeZoneNumberRule.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwelveHourField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwelveHourField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwentyFourHourField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwentyFourHourField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitMonthField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitMonthField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitNumberField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitNumberField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitYearField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$TwoDigitYearField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedMonthField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedMonthField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedNumberField.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat$UnpaddedNumberField.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/FastDateFormat.class
--------------------------------------------------------------------------------
/src/test/external-resources/commons-lang/org/apache/commons/lang/time/StopWatch.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/commons-lang/org/apache/commons/lang/time/StopWatch.class
--------------------------------------------------------------------------------
/src/test/external-resources/libs-for-test.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/libs-for-test.zip
--------------------------------------------------------------------------------
/src/test/external-resources/spring-core-4.3.4.RELEASE.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/burningwave/core/1356d4884ef4f7ed8f88f697f9f70e3c9a67b1b4/src/test/external-resources/spring-core-4.3.4.RELEASE.jar
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/AllExceptHeavyTestsSuite.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import org.junit.platform.runner.JUnitPlatform;
4 | import org.junit.platform.suite.api.ExcludeTags;
5 | import org.junit.platform.suite.api.SelectClasses;
6 | import org.junit.runner.RunWith;
7 |
8 | @SuppressWarnings("unused")
9 | @RunWith(JUnitPlatform.class)
10 | //@SelectPackages("org.burningwave.core")
11 | @SelectClasses({
12 | ModulesTest.class,
13 | BackgroundExecutorTest.class,
14 | ByteBufferHandlerTest.class,
15 | ByteCodeHunterTest.class,
16 | ClassesTest.class,
17 | ClassFactoryTest.class,
18 | ComponentContainerTest.class,
19 | ClassHunterTest.class,
20 | ClassLoadersTest.class,
21 | ClassPathHunterTest.class,
22 | CodeExecutorTest.class,
23 | ConstructorsTest.class,
24 | FieldsTest.class,
25 | FileSystemHelperTest.class,
26 | FileSystemItemTest.class,
27 | FunctionalInterfaceFactoryTest.class,
28 | IterableObjectHelperTest.class,
29 | IterableZipContainerTest.class,
30 | ManagedLoggerRepositoryTest.class,
31 | MembersTest.class,
32 | MemoryClassLoaderTest.class,
33 | MethodsTest.class,
34 | PathHelperTest.class,
35 | PathScannerClassLoaderTest.class,
36 | FieldAccessorTest.class,
37 | PropertiesTest.class,
38 | SourceCodeHandlerTest.class,
39 | StringsTest.class,
40 | ThreadSupplierTest.class,
41 | UnitSourceGeneratorTest.class,
42 | RepeatedClassFactoryTest.class,
43 | RepeatedComponentContainerTest.class
44 | })
45 | @ExcludeTags("Heavy")
46 | public class AllExceptHeavyTestsSuite {
47 |
48 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/AllTestsReducedSuite.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import org.junit.platform.runner.JUnitPlatform;
4 | import org.junit.platform.suite.api.SelectClasses;
5 | import org.junit.runner.RunWith;
6 |
7 | @SuppressWarnings("unused")
8 | @RunWith(JUnitPlatform.class)
9 | //@SelectPackages("org.burningwave.core")
10 | @SelectClasses({
11 | // ByteBufferHandlerTest.class,
12 | ByteCodeHunterTest.class,
13 | // ClassesTest.class,
14 | // ClassFactoryTest.class,
15 | // ClassHunterTest.class,
16 | // ClassLoadersTest.class,
17 | // ClassPathHunterTest.class,
18 | // CodeExecutorTest.class,
19 | // ConstructorsTest.class,
20 | // FieldsTest.class,
21 | // FileSystemHelperTest.class,
22 | // FileSystemItemTest.class,
23 | // FunctionalInterfaceFactoryTest.class,
24 | // IterableObjectHelperTest.class,
25 | // IterableZipContainerTest.class,
26 | // LowLevelObjectsHandlerTest.class,
27 | ManagedLoggerRepositoryTest.class,
28 | // MembersTest.class,
29 | // MemoryClassLoaderTest.class,
30 | // MethodsTest.class,
31 | // PathHelperTest.class,
32 | // PathScannerClassLoaderTest.class,
33 | // PropertyAccessorTest.class,
34 | // PropertiesTest.class,
35 | // SourceCodeHandlerTest.class,
36 | // StringsTest.class,
37 | // UnitSourceGeneratorTest.class,
38 | RepeatedClassFactoryTest.class,
39 | ComponentContainerTest.class,
40 | // RepeatedComponentContainerTest.class
41 | })
42 | //@ExcludeTags("Heavy")
43 | public class AllTestsReducedSuite {
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/AllTestsSuite.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import org.junit.platform.runner.JUnitPlatform;
4 | import org.junit.platform.suite.api.SelectPackages;
5 | import org.junit.runner.RunWith;
6 |
7 | @RunWith(JUnitPlatform.class)
8 | @SelectPackages("org.burningwave.core")
9 | public class AllTestsSuite {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ByteBufferHandlerTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.BufferHandler;
4 |
5 | import org.burningwave.core.jvm.BufferHandler.Deallocator;
6 |
7 | public class ByteBufferHandlerTest extends BaseTest {
8 |
9 |
10 | //@Test
11 | public void getAddressTest() {
12 | testNotNull(() -> {
13 | Long.valueOf(BufferHandler.getAddress(BufferHandler.allocateDirect(1)));
14 | return Long.valueOf(BufferHandler.getAddress(BufferHandler.allocateDirect(1)));
15 | });
16 | }
17 |
18 | //@Test
19 | public void getDeallocatorTest() {
20 | testDoesNotThrow(() -> {
21 | Deallocator deallocator = BufferHandler.getDeallocator(BufferHandler.allocateDirect(1).duplicate(), true);
22 | deallocator.freeMemory();
23 | deallocator.freeMemory();
24 | BufferHandler.getDeallocator(BufferHandler.allocateDirect(1), false).freeMemory();
25 | });
26 | }
27 |
28 | //@Test
29 | public void destroyTest() {
30 | testDoesNotThrow(() -> {
31 | BufferHandler.destroy(BufferHandler.allocateDirect(1).duplicate(), true);
32 | });
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ClassesTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Classes;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 |
8 | public class ClassesTest extends BaseTest {
9 |
10 | @Test
11 | public void getDeclaredMethodTestOne() {
12 | testNotNull(() ->
13 | Classes.getDeclaredMethod(Classes.getClass(), method -> method.getName().equals("retrieveNames"))
14 | );
15 | }
16 |
17 | @Test
18 | public void getDeclaredConstructorTestOne() {
19 | testNotNull(() ->
20 | Classes.getDeclaredConstructor(Classes.getClass(), ctor -> ctor.getParameterCount() == 0)
21 | );
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ConstructorsTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Constructors;
4 |
5 | import org.burningwave.core.assembler.ComponentSupplier;
6 | import org.burningwave.core.classes.MemoryClassLoader;
7 | import org.burningwave.core.classes.SearchConfig;
8 | import org.burningwave.core.service.ExtendedService;
9 | import org.junit.jupiter.api.Test;
10 |
11 | @SuppressWarnings("all")
12 | public class ConstructorsTest extends BaseTest {
13 |
14 | @Test
15 | public void newInstanceOfTestOne() {
16 | testNotNull(() -> Constructors.newInstanceDirectOf(ExtendedService.class));
17 | }
18 |
19 | @Test
20 | public void newInstanceOfTestTwo() {
21 | ComponentSupplier componentSupplier = getComponentSupplier();
22 | testNotNull(() -> Constructors.newInstanceDirectOf(
23 | Class.forName("org.burningwave.core.classes.FunctionalInterfaceFactoryImpl"),
24 | componentSupplier.getClassFactory()
25 | )
26 | );
27 | }
28 |
29 | @Test
30 | public void convertToMethodHandleTestOne() {
31 | testNotNull(() ->
32 | Constructors.findDirectHandle(
33 | Constructors.findOneAndMakeItAccessible(ExtendedService.class)
34 | ).invokeWithArguments()
35 | );
36 | }
37 |
38 | @Test
39 | public void newInstanceOfDirectTestOne() {
40 | testNotNull(() -> {
41 | try (MemoryClassLoader classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, Thread.currentThread().getContextClassLoader())) {
42 | return classLoader;
43 | }
44 | });
45 | }
46 |
47 | @Test
48 | public void newInstanceOfDirectTestTwo() {
49 | testNotNull(() -> {
50 | try (MemoryClassLoader classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, null)) {
51 | return classLoader;
52 | }
53 | });
54 | }
55 |
56 | @Test
57 | public void newInstanceOfDirectTestThree() {
58 | testNotNull(() ->
59 | Constructors.newInstanceDirectOf(SearchConfig.class)
60 | );
61 | }
62 |
63 | @Test
64 | public void newInstanceOfTestThree() {
65 | testNotNull(() ->
66 | Constructors.newInstanceOf(SearchConfig.class)
67 | );
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/FileSystemHelperTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.FileSystemHelper;
4 | import static org.junit.Assert.assertTrue;
5 |
6 | import org.burningwave.core.io.FileSystemItem;
7 | import org.junit.jupiter.api.Test;
8 |
9 | public class FileSystemHelperTest extends BaseTest {
10 |
11 | @Test
12 | public void createFolderTest() {
13 | assertTrue(FileSystemItem.of(FileSystemHelper.createTemporaryFolder("FolderForTest")).exists());
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/IterableZipContainerTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import org.burningwave.core.assembler.ComponentSupplier;
4 | import org.burningwave.core.io.FileSystemItem;
5 | import org.burningwave.core.io.IterableZipContainer;
6 | import org.junit.jupiter.api.Test;
7 |
8 |
9 | public class IterableZipContainerTest extends BaseTest {
10 |
11 | @Test
12 | public void getConventionedAbsolutePathTestOne() {
13 | testNotNull(() ->{
14 | ComponentSupplier componentSupplier = getComponentSupplier();
15 | FileSystemItem fIS = componentSupplier.getPathHelper().getResource(
16 | "/../../src/test/external-resources/libs-for-test.zip/java.desktop.jmod"
17 | );
18 | fIS.reset();
19 | IterableZipContainer zip = IterableZipContainer.create(fIS.getAbsolutePath());
20 | return zip.getConventionedAbsolutePath();
21 | });
22 | }
23 |
24 | @Test
25 | public void getConventionedAbsolutePathTestTwo() {
26 | testNotNull(() ->{
27 | ComponentSupplier componentSupplier = getComponentSupplier();
28 | FileSystemItem fIS = componentSupplier.getPathHelper().getResource(
29 | "/../../src/test/external-resources/libs-for-test.zip/ESC-Lib.ear/APP-INF/lib/bcel-5.1.jar"
30 | );
31 | fIS.reset();
32 | IterableZipContainer zip = IterableZipContainer.create(fIS.getAbsolutePath());
33 | return zip.getConventionedAbsolutePath();
34 | });
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ManagedLoggerRepositoryTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties;
4 |
5 | import org.burningwave.core.iterable.Properties;
6 | import org.junit.jupiter.api.Test;
7 |
8 |
9 | public class ManagedLoggerRepositoryTest extends BaseTest {
10 |
11 | @Test
12 | public void placeHolderedLogInfoTest() {
13 | testDoesNotThrow(() -> {
14 | Properties config = new Properties();
15 | config.putAll(GlobalProperties);
16 | config.put(ManagedLogger.Repository.Configuration.Key.TYPE, SimpleManagedLoggerRepository.class.getName());
17 | ManagedLogger.Repository managedLoggerRepository = ManagedLogger.Repository.create(config);
18 | managedLoggerRepository.logInfo(() -> ManagedLoggerRepositoryTest.class.getName(), "{}{}{}{}", "Hello", " ", "world", "!");
19 | });
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ModulesTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.JVMInfo;
4 | import static org.burningwave.core.assembler.StaticComponentContainer.Modules;
5 | import static org.burningwave.core.assembler.StaticComponentContainer.Resources;
6 |
7 | import java.lang.reflect.Constructor;
8 | import java.lang.reflect.Method;
9 | import java.net.URL;
10 | import java.net.URLClassLoader;
11 |
12 | import org.burningwave.core.classes.MemoryClassLoader;
13 | import org.junit.jupiter.api.MethodOrderer;
14 | import org.junit.jupiter.api.Order;
15 | import org.junit.jupiter.api.Test;
16 | import org.junit.jupiter.api.TestMethodOrder;
17 |
18 | @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
19 | @SuppressWarnings("unchecked")
20 | public class ModulesTest extends BaseTest {
21 |
22 | @Test
23 | @Order(1)
24 | public void exportPackageToAllUnnamedTest() {
25 | MemoryClassLoader.DebugSupport.enable();
26 | testDoesNotThrow(() -> {
27 | if (JVMInfo.getVersion() > 8) {
28 | Modules.exportPackageToAll("java.base", "java.net");
29 | Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
30 | method.setAccessible(true);
31 | ClassLoader classLoader = new URLClassLoader(new URL[] {}, null);
32 | method.invoke(
33 | classLoader,
34 | Resources.getClassPath(ModulesTest.class).getURL()
35 | );
36 | method.invoke(
37 | classLoader,
38 | Resources.getClassPath(Modules.getClass()).getURL()
39 | );
40 | classLoader.loadClass(ModulesTest.class.getName());
41 | }
42 | });
43 | }
44 |
45 |
46 | @Test
47 | @Order(10)
48 | public void exportAllToAllTest() {
49 | testDoesNotThrow(() -> {
50 | if (JVMInfo.getVersion() > 8) {
51 | Modules.exportAllToAll();
52 | Class> bootClassLoaderClass = Class.forName("jdk.internal.loader.ClassLoaders$BootClassLoader");
53 | Constructor extends ClassLoader> constructor = (Constructor extends ClassLoader>)
54 | Class.forName("jdk.internal.loader.ClassLoaders$PlatformClassLoader").getDeclaredConstructor(bootClassLoaderClass);
55 | constructor.setAccessible(true);
56 | Class> classLoadersClass = Class.forName("jdk.internal.loader.ClassLoaders");
57 | Method bootClassLoaderRetriever = classLoadersClass.getDeclaredMethod("bootLoader");
58 | bootClassLoaderRetriever.setAccessible(true);
59 | ClassLoader newBuiltinclassLoader = constructor.newInstance(bootClassLoaderRetriever.invoke(classLoadersClass));
60 | System.out.println(newBuiltinclassLoader + " instantiated");
61 | }
62 | });
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/PropertiesTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties;
4 |
5 | import org.junit.jupiter.api.Test;
6 |
7 | public class PropertiesTest extends BaseTest {
8 |
9 | @Test
10 | public void changeManagedLoggerRepository() {
11 | GlobalProperties.put(
12 | ManagedLogger.Repository.Configuration.Key.TYPE, SimpleManagedLoggerRepository.class.getName()
13 | );
14 |
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/RepeatedClassFactoryTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | public class RepeatedClassFactoryTest extends ClassFactoryTest {
4 |
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/RepeatedComponentContainerTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | public class RepeatedComponentContainerTest extends ComponentContainerTest {
4 |
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/SourceCodeHandlerTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | public class SourceCodeHandlerTest extends BaseTest {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/StringsTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Paths;
4 | import static org.burningwave.core.assembler.StaticComponentContainer.Strings;
5 | import static org.junit.Assert.assertTrue;
6 |
7 | import java.util.HashMap;
8 | import java.util.Map;
9 | import java.util.regex.Pattern;
10 |
11 | import org.junit.jupiter.api.Test;
12 |
13 | public class StringsTest extends BaseTest {
14 |
15 | @Test
16 | public void extractTestOne() {
17 | testNotNull(() ->
18 | Strings.extractAllGroups(Pattern.compile("\\$\\{([\\w\\d\\.]*)\\}([\\w]*)"), "${${ciao.Asdf.1}prova${ciao}}").get(1).get(0)
19 | );
20 | }
21 |
22 | @Test
23 | public void convertURLTestOne() {
24 | testNotNull(() ->
25 | Paths.convertURLPathToAbsolutePath(this.getClass().getClassLoader().getResource(java.util.regex.Pattern.class
26 | .getName().replace(".", "/")+ ".class").toString())
27 | );
28 | }
29 |
30 |
31 | @Test
32 | public void stripTest() {
33 | assertTrue(!Strings.contains(Strings.strip(" Hello! ", " "), ' '));
34 | }
35 |
36 |
37 | @Test
38 | public void replaceTest() {
39 | Map parameters = new HashMap<>();
40 | parameters.put("${firstParameter}", "firstParameter");
41 | parameters.put("${secondParameter}", "secondParameter");
42 | assertTrue(!Strings.contains(Strings.replace("${firstParameter},${secondParameter}", parameters), '$'));
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/ThreadSupplierTest.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository;
4 | import static org.burningwave.core.assembler.StaticComponentContainer.ThreadSupplier;
5 | import static org.junit.jupiter.api.Assertions.assertEquals;
6 |
7 | import java.util.concurrent.atomic.AtomicInteger;
8 |
9 | import org.burningwave.core.concurrent.Thread;
10 | import org.junit.jupiter.api.Test;
11 |
12 | public class ThreadSupplierTest extends BaseTest {
13 |
14 |
15 | @Test
16 | public void setNullExecutableTestOne() {
17 | testThrow(() -> {
18 | ThreadSupplier.getOrCreateThread().setExecutable(null).start();
19 | });
20 | }
21 |
22 | @Test
23 | public void getPoolableThreadsTest() {
24 | AtomicInteger operationCount = new AtomicInteger(0);
25 | testDoesNotThrow(() -> {
26 | int iterationsCount = 100000;
27 | Thread.Supplier threadSupplier = Thread.Supplier.create(
28 | "ThreadSupplier for test",
29 | org.burningwave.core.assembler.StaticComponentContainer.GlobalProperties,
30 | false
31 | );
32 | for (int i = 0; i < iterationsCount; i++) {
33 | Thread thread = threadSupplier.getOrCreatePoolableThread().setExecutable(thr -> {
34 | int currentOperationCount = operationCount.incrementAndGet();
35 | if (currentOperationCount % (iterationsCount / 5) == 0 && currentOperationCount != iterationsCount) {
36 | synchronized(thr) {
37 | long waitTime = 7500;
38 | ManagedLoggerRepository.logInfo(getClass()::getName, "Operation count: {} - Waiting for {}", currentOperationCount, waitTime);
39 | thr.wait(waitTime);
40 | }
41 | } else if (currentOperationCount % 10000 == 0) {
42 | ManagedLoggerRepository.logInfo(getClass()::getName, "Operation count: {}", currentOperationCount);
43 | }
44 | });
45 | thread.start();
46 | }
47 | threadSupplier.joinAllRunningThreads()
48 | .shutDownAllThreads(true);
49 | assertEquals(100000, operationCount.get());
50 | });
51 | }
52 |
53 | //@Test
54 | public void stressTest() {
55 | testDoesNotThrow(() -> {
56 | int remainedRequestCount = 100_000_000;
57 | while (remainedRequestCount-- > 0) {
58 | final int remainedRequestCountTemp = remainedRequestCount;
59 | ThreadSupplier.getOrCreateThread().setExecutable(thread -> {
60 | if (remainedRequestCountTemp % 100_000 == 0) {
61 | ManagedLoggerRepository.logInfo(getClass()::getName, "{} thread - Remained iterations: {}", thread.getClass().getSimpleName(), remainedRequestCountTemp);
62 | }
63 | }).start();
64 | }
65 | });
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/bean/Complex.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.bean;
2 |
3 | import java.util.LinkedHashMap;
4 | import java.util.List;
5 | import java.util.Map;
6 |
7 | public class Complex {
8 | private Complex.Data data;
9 |
10 | public Complex() {
11 | setData(new Data());
12 | }
13 |
14 |
15 | public Complex.Data getData() {
16 | return data;
17 | }
18 |
19 | public void setData(Complex.Data data) {
20 | this.data = data;
21 | }
22 |
23 |
24 | public static class Data {
25 | private Data.Item[][] items;
26 | private List itemsList;
27 | private Map itemsMap;
28 |
29 | public Data() {
30 | items = new Data.Item[][] {
31 | new Data.Item[] {
32 | new Item("Hello"),
33 | new Item("World!"),
34 | new Item("How do you do?")
35 | },
36 | new Data.Item[] {
37 | new Item("How do you do?"),
38 | new Item("Hello"),
39 | new Item("Bye")
40 | }
41 | };
42 | itemsMap = new LinkedHashMap<>();
43 | itemsMap.put("items", items);
44 | }
45 |
46 | public Data.Item[][] getItems() {
47 | return items;
48 | }
49 | public void setItems(Data.Item[][] items) {
50 | this.items = items;
51 | }
52 |
53 | public List getItemsList() {
54 | return itemsList;
55 | }
56 | public void setItemsList(List itemsList) {
57 | this.itemsList = itemsList;
58 | }
59 |
60 | public Map getItemsMap() {
61 | return itemsMap;
62 | }
63 | public void setItemsMap(Map itemsMap) {
64 | this.itemsMap = itemsMap;
65 | }
66 |
67 | public static class Item {
68 | private String name;
69 |
70 | public Item(String name) {
71 | this.name = name;
72 | }
73 |
74 | public String getName() {
75 | return name;
76 | }
77 |
78 | public void setName(String name) {
79 | this.name = name;
80 | }
81 | }
82 | }
83 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/bean/PojoInterface.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.bean;
2 |
3 | import java.util.List;
4 |
5 | public interface PojoInterface {
6 |
7 | public List getList();
8 |
9 | public void setList(List value);
10 |
11 | public boolean isValid();
12 |
13 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/backgroundexecutor/TaskLauncher.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.backgroundexecutor;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.BackgroundExecutor;
4 |
5 | import org.burningwave.core.ManagedLogger;
6 | import org.burningwave.core.concurrent.QueuedTaskExecutor.ProducerTask;
7 | import org.burningwave.core.concurrent.QueuedTaskExecutor.Task;
8 |
9 |
10 | public class TaskLauncher implements ManagedLogger {
11 |
12 | public void launch() {
13 | ProducerTask taskOne = BackgroundExecutor.createProducerTask(task -> {
14 | Long startTime = System.currentTimeMillis();
15 | logInfo("task one started");
16 | synchronized (this) {
17 | wait(5000);
18 | }
19 | Task internalTask = BackgroundExecutor.createTask(tsk -> {
20 | logInfo("internal task started");
21 | synchronized (this) {
22 | wait(5000);
23 | }
24 | logInfo("internal task finished");
25 | }, Thread.MAX_PRIORITY).submit();
26 | internalTask.waitForFinish();
27 | logInfo("task one finished");
28 | return startTime;
29 | }, Thread.MAX_PRIORITY);
30 | taskOne.submit();
31 | Task taskTwo = BackgroundExecutor.createTask(task -> {
32 | logInfo("task two started and wait for task one finishing");
33 | taskOne.waitForFinish();
34 | logInfo("task two finished");
35 | }, Thread.NORM_PRIORITY);
36 | taskTwo.submit();
37 | ProducerTask taskThree = BackgroundExecutor.createProducerTask(task -> {
38 | logInfo("task three started and wait for task two finishing");
39 | taskTwo.waitForFinish();
40 | logInfo("task two finished");
41 | return System.currentTimeMillis();
42 | }, Thread.MIN_PRIORITY);
43 | taskThree.submit();
44 | taskThree.waitForFinish();
45 | logInfo("Elapsed time: {}ms", taskThree.join() - taskOne.join());
46 | }
47 |
48 | public static void main(String[] args) {
49 | new TaskLauncher().launch();
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/classfactory/FunctionalInterfaceBuilder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.classfactory;
2 |
3 | import java.lang.reflect.Modifier;
4 | import java.util.function.Function;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.assembler.StaticComponentContainer;
9 | import org.burningwave.core.classes.AnnotationSourceGenerator;
10 | import org.burningwave.core.classes.ClassFactory;
11 | import org.burningwave.core.classes.ClassSourceGenerator;
12 | import org.burningwave.core.classes.FunctionSourceGenerator;
13 | import org.burningwave.core.classes.TypeDeclarationSourceGenerator;
14 | import org.burningwave.core.classes.UnitSourceGenerator;
15 | import org.burningwave.core.classes.VariableSourceGenerator;
16 |
17 | public class FunctionalInterfaceBuilder {
18 |
19 | @SuppressWarnings("resource")
20 | public static void execute() throws Throwable {
21 | UnitSourceGenerator unitSG = UnitSourceGenerator.create("packagename").addClass(
22 | ClassSourceGenerator.createInterface(
23 | TypeDeclarationSourceGenerator.create("MyFunctionalInterface")
24 | ).addModifier(
25 | Modifier.PUBLIC
26 | //generating new method that override MyInterface.convert(LocalDateTime)
27 | ).addMethod(
28 | FunctionSourceGenerator.create("convert")
29 | .setReturnType(TypeDeclarationSourceGenerator.create(Integer.class))
30 | .addParameter(VariableSourceGenerator.create(String.class, "number"))
31 | .addModifier(Modifier.ABSTRACT)
32 | .useType(Function.class)
33 | ).addAnnotation(AnnotationSourceGenerator.create(FunctionalInterface.class))
34 | );
35 | System.out.println("\nGenerated code:\n" + unitSG.make());
36 | //With this we store the generated source to a path
37 | unitSG.storeToClassPath(StaticComponentContainer.SystemProperties.get("user.home") + "/Desktop/bw-tests");
38 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
39 | ClassFactory classFactory = componentSupplier.getClassFactory();
40 | @SuppressWarnings("unused")
41 | Class> generatedClass = classFactory.loadOrBuildAndDefine(
42 | unitSG
43 | ).get(
44 | "packagename.MyFunctionalInterface"
45 | );
46 | }
47 |
48 | public static void main(String[] args) throws Throwable {
49 | execute();
50 | }
51 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/classhunter/AllAnnotatedClassFinder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.classhunter;
2 |
3 | import java.util.Collection;
4 |
5 | import org.burningwave.core.assembler.ComponentContainer;
6 | import org.burningwave.core.assembler.ComponentSupplier;
7 | import org.burningwave.core.classes.ClassCriteria;
8 | import org.burningwave.core.classes.ClassHunter;
9 | import org.burningwave.core.classes.ClassHunter.SearchResult;
10 | import org.burningwave.core.classes.ConstructorCriteria;
11 | import org.burningwave.core.classes.FieldCriteria;
12 | import org.burningwave.core.classes.MethodCriteria;
13 | import org.burningwave.core.classes.SearchConfig;
14 | import org.burningwave.core.io.PathHelper;
15 |
16 | public class AllAnnotatedClassFinder {
17 |
18 | public Collection> find() {
19 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
20 | PathHelper pathHelper = componentSupplier.getPathHelper();
21 | ClassHunter classHunter = componentSupplier.getClassHunter();
22 |
23 | SearchConfig searchConfig = SearchConfig.forPaths(
24 | //Here you can add all absolute path you want:
25 | //both folders, zip and jar will be recursively scanned.
26 | //For example you can add: "C:\\Users\\user\\.m2"
27 | //With the row below the search will be executed on runtime Classpaths
28 | pathHelper.getMainClassPaths()
29 | ).by(
30 | ClassCriteria.create().allThoseThatMatch((cls) -> {
31 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0;
32 | }).or().byMembers(
33 | MethodCriteria.withoutConsideringParentClasses().allThoseThatMatch((method) -> {
34 | return method.getAnnotations() != null && method.getAnnotations().length > 0;
35 | })
36 | ).or().byMembers(
37 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> {
38 | return field.getAnnotations() != null && field.getAnnotations().length > 0;
39 | })
40 | ).or().byMembers(
41 | ConstructorCriteria.withoutConsideringParentClasses().allThoseThatMatch((ctor) -> {
42 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0;
43 | })
44 | )
45 | );
46 |
47 | try (SearchResult searchResult = classHunter.findBy(searchConfig)) {
48 |
49 | //If you need all annotaded methods unconment this
50 | //searchResult.getMembersFlatMap().values();
51 |
52 | return searchResult.getClasses();
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/classhunter/ClassForPackageAndAnnotationFinder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.classhunter;
2 |
3 | import java.util.Collection;
4 |
5 | import org.burningwave.core.assembler.ComponentContainer;
6 | import org.burningwave.core.assembler.ComponentSupplier;
7 | import org.burningwave.core.classes.ClassCriteria;
8 | import org.burningwave.core.classes.ClassHunter;
9 | import org.burningwave.core.classes.ClassHunter.SearchResult;
10 | import org.burningwave.core.classes.ConstructorCriteria;
11 | import org.burningwave.core.classes.FieldCriteria;
12 | import org.burningwave.core.classes.MethodCriteria;
13 | import org.burningwave.core.classes.SearchConfig;
14 |
15 | public class ClassForPackageAndAnnotationFinder {
16 |
17 | public Collection> find() {
18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
19 | ClassHunter classHunter = componentSupplier.getClassHunter();
20 |
21 | try (
22 | SearchResult result = classHunter.findBy(
23 | //Highly optimized scanning by filtering resources before loading from ClassLoader
24 | SearchConfig.forResources(
25 | "org/springframework"
26 | ).by(
27 | ClassCriteria.create().allThoseThatMatch((cls) -> {
28 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0;
29 | }).or().byMembers(
30 | MethodCriteria.withoutConsideringParentClasses().allThoseThatMatch((method) -> {
31 | return method.getAnnotations() != null && method.getAnnotations().length > 0;
32 | })
33 | ).or().byMembers(
34 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> {
35 | return field.getAnnotations() != null && field.getAnnotations().length > 0;
36 | })
37 | ).or().byMembers(
38 | ConstructorCriteria.withoutConsideringParentClasses().allThoseThatMatch((ctor) -> {
39 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0;
40 | })
41 | )
42 | )
43 | )
44 | ) {
45 | return result.getClasses();
46 | }
47 | }
48 |
49 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/classhunter/ClassForPackageAndAnnotationFinderByConsideringClassHierarchy.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.classhunter;
2 |
3 | import java.util.Collection;
4 |
5 | import org.burningwave.core.assembler.ComponentContainer;
6 | import org.burningwave.core.assembler.ComponentSupplier;
7 | import org.burningwave.core.classes.ClassCriteria;
8 | import org.burningwave.core.classes.ClassHunter;
9 | import org.burningwave.core.classes.ClassHunter.SearchResult;
10 | import org.burningwave.core.classes.ConstructorCriteria;
11 | import org.burningwave.core.classes.FieldCriteria;
12 | import org.burningwave.core.classes.MethodCriteria;
13 | import org.burningwave.core.classes.SearchConfig;
14 |
15 | public class ClassForPackageAndAnnotationFinderByConsideringClassHierarchy {
16 |
17 | public Collection> find() {
18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
19 | ClassHunter classHunter = componentSupplier.getClassHunter();
20 |
21 | try (
22 | SearchResult result = classHunter.findBy(
23 | //Highly optimized scanning by filtering resources before loading from ClassLoader
24 | SearchConfig.forResources(
25 | "org/springframework"
26 | ).by(
27 | ClassCriteria.create().allThoseThatHaveAMatchInHierarchy((cls) -> {
28 | return cls.getAnnotations() != null && cls.getAnnotations().length > 0;
29 | }).or().byMembers(
30 | MethodCriteria.forEntireClassHierarchy().allThoseThatMatch((method) -> {
31 | return method.getAnnotations() != null && method.getAnnotations().length > 0;
32 | })
33 | ).or().byMembers(
34 | FieldCriteria.forEntireClassHierarchy().allThoseThatMatch((field) -> {
35 | return field.getAnnotations() != null && field.getAnnotations().length > 0;
36 | })
37 | ).or().byMembers(
38 | ConstructorCriteria.forEntireClassHierarchy().allThoseThatMatch((ctor) -> {
39 | return ctor.getAnnotations() != null && ctor.getAnnotations().length > 0;
40 | })
41 | )
42 | )
43 | )
44 | ) {
45 | return result.getClasses();
46 | }
47 | }
48 |
49 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/classhunter/FieldAnnotatedClassOfPackageFinder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.classhunter;
2 | import java.util.Collection;
3 |
4 | import javax.validation.constraints.NotNull;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.classes.ClassCriteria;
9 | import org.burningwave.core.classes.ClassHunter;
10 | import org.burningwave.core.classes.ClassHunter.SearchResult;
11 | import org.burningwave.core.classes.FieldCriteria;
12 | import org.burningwave.core.classes.SearchConfig;
13 |
14 | public class FieldAnnotatedClassOfPackageFinder {
15 |
16 | public Collection> find() {
17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
18 | ClassHunter classHunter = componentSupplier.getClassHunter();
19 |
20 | try (
21 | SearchResult result = classHunter.findBy(
22 | //Highly optimized scanning by filtering resources before loading from ClassLoader
23 | SearchConfig.forResources(
24 | "org/springframework"
25 | ).by(
26 | ClassCriteria.create().byMembers(
27 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> {
28 | return field.getAnnotation(NotNull.class) != null;
29 | })
30 | )
31 | )
32 | )
33 | ) {
34 | return result.getClasses();
35 | }
36 | }
37 |
38 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/codeexecutor/SourceCodeExecutor.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.codeexecutor;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.classes.BodySourceGenerator;
9 | import org.burningwave.core.classes.ExecuteConfig;
10 |
11 | public class SourceCodeExecutor {
12 |
13 | public static Integer execute() {
14 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
15 | return componentSupplier.getCodeExecutor().execute(
16 | ExecuteConfig.forBodySourceGenerator(
17 | BodySourceGenerator.createSimple().useType(ArrayList.class, List.class)
18 | .addCodeLine("System.out.println(\"number to add: \" + parameter[0]);")
19 | .addCodeLine("List numbers = new ArrayList<>();")
20 | .addCodeLine("numbers.add((Integer)parameter[0]);")
21 | .addCodeLine("System.out.println(\"number list size: \" + numbers.size());")
22 | .addCodeLine("System.out.println(\"number in the list: \" + numbers.get(0));")
23 | .addCodeLine("Integer inputNumber = (Integer)parameter[0];")
24 | .addCodeLine("return Integer.valueOf(inputNumber + (Integer)parameter[1]);")
25 | ).withParameter(Integer.valueOf(5), Integer.valueOf(3))
26 | );
27 |
28 | }
29 |
30 | public static void main(String[] args) {
31 | System.out.println("Total is: " + execute());
32 | }
33 |
34 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/componentcontainer/RetrievingDynamicComponentContainerAndComponents.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.componentcontainer;
2 |
3 | import org.burningwave.core.assembler.ComponentContainer;
4 | import org.burningwave.core.assembler.ComponentSupplier;
5 | import org.burningwave.core.classes.ClassFactory;
6 | import org.burningwave.core.classes.ClassHunter;
7 | import org.burningwave.core.io.PathHelper;
8 | import org.burningwave.core.iterable.Properties;
9 |
10 | @SuppressWarnings("unused")
11 | public class RetrievingDynamicComponentContainerAndComponents {
12 |
13 | public static void execute() throws Throwable {
14 | //In this case we are retrieving the singleton component container instance
15 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
16 |
17 | //In this case we are creating a component container by using a custom configuration file
18 | ComponentSupplier customComponentSupplier = ComponentContainer.create("your-custom-properties-file.properties");
19 |
20 | //In this case we are creating a component container programmatically by using a custom properties object
21 | Properties configProps = new Properties();
22 | configProps.put(ClassFactory.Configuration.Key.DEFAULT_CLASS_LOADER, Thread.currentThread().getContextClassLoader());
23 | configProps.put(ClassHunter.Configuration.Key.DEFAULT_PATH_SCANNER_CLASS_LOADER, componentSupplier.getPathScannerClassLoader());
24 | ComponentSupplier customComponentSupplier2 = ComponentContainer.create(configProps);
25 |
26 | PathHelper pathHelper = componentSupplier.getPathHelper();
27 | ClassFactory classFactory = customComponentSupplier.getClassFactory();
28 | ClassHunter classHunter = customComponentSupplier2.getClassHunter();
29 |
30 | }
31 |
32 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/iterableobjecthelper/ItemFromMapRetriever.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.iterableobjecthelper;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.IterableObjectHelper;
4 |
5 | import java.io.IOException;
6 | import java.util.Collection;
7 | import java.util.HashMap;
8 | import java.util.Map;
9 | import java.util.Properties;
10 |
11 | import org.burningwave.core.assembler.ComponentContainer;
12 | import org.burningwave.core.assembler.ComponentSupplier;
13 | import org.burningwave.core.io.PathHelper;
14 | import org.burningwave.core.iterable.IterableObjectHelper.ResolveConfig;
15 |
16 | @SuppressWarnings("unused")
17 | public class ItemFromMapRetriever {
18 |
19 | public void execute() throws IOException {
20 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
21 | PathHelper pathHelper = componentSupplier.getPathHelper();
22 | Properties properties = new Properties();
23 | properties.load(pathHelper.getResourceAsStream("burningwave.properties"));
24 | String code = IterableObjectHelper.resolveStringValue(
25 | ResolveConfig.forNamedKey("code-block-1")
26 | .on(properties)
27 | );
28 |
29 | Map map = new HashMap<>();
30 | map.put("class-loader-01", "${class-loader-02}");
31 | map.put("class-loader-02", "${class-loader-03}");
32 | map.put("class-loader-03", Thread.currentThread().getContextClassLoader().getParent());
33 | ClassLoader parentClassLoader = IterableObjectHelper.resolveValue(
34 | ResolveConfig.forNamedKey("class-loader-01")
35 | .on(map)
36 | );
37 |
38 | map.clear();
39 | map.put("class-loaders", "${class-loader-02};${class-loader-03};");
40 | map.put("class-loader-02", Thread.currentThread().getContextClassLoader());
41 | map.put("class-loader-03", Thread.currentThread().getContextClassLoader().getParent());
42 | Collection classLoaders = IterableObjectHelper.resolveValues(
43 | ResolveConfig.forNamedKey("class-loaders")
44 | .on(map)
45 | .withValuesSeparator(";")
46 | );
47 | }
48 |
49 | public static void main(String[] args) throws IOException {
50 | new ItemFromMapRetriever().execute();
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/member/ConstructorsHandler.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.member;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Constructors;
4 |
5 | import org.burningwave.core.classes.MemoryClassLoader;
6 |
7 |
8 | public class ConstructorsHandler {
9 |
10 | public static void execute() {
11 | //Invoking constructor by using reflection
12 | MemoryClassLoader classLoader = Constructors.newInstanceOf(MemoryClassLoader.class, Thread.currentThread().getContextClassLoader());
13 |
14 | //Invoking constructor with a null parameter value by using MethodHandle
15 | classLoader = Constructors.newInstanceDirectOf(MemoryClassLoader.class, new Object[] {null});
16 | System.out.println(classLoader);
17 | }
18 |
19 | public static void main(String[] args) {
20 | execute();
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/member/FieldsHandler.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.member;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Fields;
4 |
5 | import java.lang.reflect.Field;
6 | import java.util.Collection;
7 | import java.util.List;
8 | import java.util.Map;
9 |
10 | import org.burningwave.core.classes.FieldCriteria;
11 |
12 |
13 | @SuppressWarnings("unused")
14 | public class FieldsHandler {
15 |
16 | public static void execute() {
17 | ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
18 | //Fast access by memory address
19 | Collection> loadedClasses = Fields.getDirect(classLoader, "classes");
20 | //Access by Reflection
21 | loadedClasses = Fields.get(classLoader, "classes");
22 |
23 | //Get all field values of an object through memory address access
24 | Map values = Fields.getAllDirect(classLoader);
25 | //Get all field values of an object through reflection access
26 | values = Fields.getAll(classLoader);
27 |
28 | Object obj = new Object() {
29 | volatile List objectValue;
30 | volatile int intValue = 1;
31 | volatile long longValue = 2l;
32 | volatile float floatValue = 3f;
33 | volatile double doubleValue = 4.1d;
34 | volatile boolean booleanValue = true;
35 | volatile byte byteValue = (byte)5;
36 | volatile char charValue = 'c';
37 | };
38 |
39 | //Get all filtered field values of an object through memory address access
40 | Fields.getAllDirect(
41 | FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch(field -> {
42 | return field.getType().isPrimitive();
43 | }),
44 | obj
45 | ).values();
46 | }
47 |
48 | public static void main(String[] args) {
49 | execute();
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/member/MethodsHandler.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.member;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.Classes;
4 | import static org.burningwave.core.assembler.StaticComponentContainer.Methods;
5 |
6 | import java.lang.invoke.MethodHandle;
7 | import java.lang.reflect.Method;
8 | import java.nio.ByteBuffer;
9 | import java.security.ProtectionDomain;
10 | import java.util.Collection;
11 |
12 | import org.burningwave.core.classes.MethodCriteria;
13 |
14 |
15 | @SuppressWarnings("unused")
16 | public class MethodsHandler {
17 |
18 | public static void execute() {
19 | //Invoking method by using reflection
20 | Methods.invoke(System.out, "println", "Hello World");
21 |
22 | //Invoking static method by using MethodHandle
23 | Integer number = Methods.invokeStaticDirect(Integer.class, "valueOf", 1);
24 |
25 | //Invoking method by using MethodHandle
26 | Methods.invokeDirect(System.out, "println", number);
27 |
28 | //Filtering and obtaining a MethodHandle reference
29 | MethodHandle methodHandle = Methods.findFirstDirectHandle(
30 | MethodCriteria.byScanUpTo((cls) ->
31 | //We only analyze the ClassLoader class and not all of its hierarchy (default behavior)
32 | cls.getName().equals(ClassLoader.class.getName())
33 | ).name(
34 | "defineClass"::equals
35 | ).and().parameterTypes(params ->
36 | params.length == 3
37 | ).and().parameterTypesAreAssignableFrom(
38 | String.class, ByteBuffer.class, ProtectionDomain.class
39 | ).and().returnType((cls) ->
40 | cls.getName().equals(Class.class.getName())
41 | ), ClassLoader.class
42 | );
43 |
44 | //Filtering and obtaining all methods of ClassLoader class that have at least
45 | //one input parameter of Class type
46 | Collection methods = Methods.findAll(
47 | MethodCriteria.byScanUpTo((cls) ->
48 | //We only analyze the ClassLoader class and not all of its hierarchy (default behavior)
49 | cls.getName().equals(ClassLoader.class.getName())
50 | ).parameter((params, idx) -> {
51 | return Classes.isAssignableFrom(params[idx].getType(), Class.class);
52 | }), ClassLoader.class
53 | );
54 | }
55 |
56 | public static void main(String[] args) {
57 | execute();
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/propertyaccessor/GetAndSetPropertiesThroughPath.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.propertyaccessor;
2 | import static org.burningwave.core.assembler.StaticComponentContainer.ByFieldOrByMethodPropertyAccessor;
3 | import static org.burningwave.core.assembler.StaticComponentContainer.ByMethodOrByFieldPropertyAccessor;
4 |
5 | import org.burningwave.core.bean.Complex;
6 |
7 | public class GetAndSetPropertiesThroughPath{
8 |
9 | public void execute() {
10 | Complex complex = new Complex();
11 | //This type of property accessor try to access by field introspection: if no field was found
12 | //it will search getter method and invokes it
13 | String nameFromObjectInArray = ByFieldOrByMethodPropertyAccessor.get(complex, "data.items[1][0].name");
14 | String nameFromObjectMap = ByFieldOrByMethodPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name");
15 | System.out.println(nameFromObjectInArray);
16 | System.out.println(nameFromObjectMap);
17 | //This type of property accessor looks for getter method and invokes it: if no getter method was found
18 | //it will search for field and try to retrieve it
19 | nameFromObjectInArray = ByMethodOrByFieldPropertyAccessor.get(complex, "data.items[1][2].name");
20 | nameFromObjectMap = ByMethodOrByFieldPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name");
21 | System.out.println(nameFromObjectInArray);
22 | System.out.println(nameFromObjectMap);
23 | ByMethodOrByFieldPropertyAccessor.set(complex, "data.itemsMap[items][1][1].name", "Good evening!");
24 | nameFromObjectInArray = ByMethodOrByFieldPropertyAccessor.get(complex, "data.itemsMap[items][1][1].name");
25 | System.out.println(nameFromObjectInArray);
26 | }
27 |
28 | public static void main(String[] args) {
29 | new GetAndSetPropertiesThroughPath().execute();
30 | }
31 |
32 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase001/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase001;
2 |
3 | import java.io.Closeable;
4 | import java.io.Serializable;
5 | import java.util.Collection;
6 |
7 | import org.burningwave.core.assembler.ComponentContainer;
8 | import org.burningwave.core.assembler.ComponentSupplier;
9 | import org.burningwave.core.classes.ClassCriteria;
10 | import org.burningwave.core.classes.ClassHunter;
11 | import org.burningwave.core.classes.ClassHunter.SearchResult;
12 | import org.burningwave.core.classes.SearchConfig;
13 | import org.burningwave.core.io.PathHelper;
14 |
15 | public class Finder {
16 |
17 | public Collection> find() {
18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
19 | PathHelper pathHelper = componentSupplier.getPathHelper();
20 | ClassHunter classHunter = componentSupplier.getClassHunter();
21 |
22 | SearchConfig searchConfig = SearchConfig.forPaths(
23 | //Here you can add all absolute path you want:
24 | //both folders, zip and jar will be recursively scanned.
25 | //For example you can add: "C:\\Users\\user\\.m2"
26 | //With the row below the search will be executed on runtime Classpaths
27 | pathHelper.getMainClassPaths()
28 | ).by(
29 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) ->
30 | //[1]here you recall the uploaded class by "useClasses" method.
31 | //In this case we're looking for all classes that implement java.io.Closeable or java.io.Serializable
32 | uploadedClasses.get(Closeable.class).isAssignableFrom(currentScannedClass) ||
33 | uploadedClasses.get(Serializable.class).isAssignableFrom(currentScannedClass)
34 | ).useClasses(
35 | //With this directive we ask the library to load one or more classes to be used for comparisons:
36 | //it serves to eliminate the problem that a class, loaded by different class loaders,
37 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method).
38 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1]
39 | Closeable.class,
40 | Serializable.class
41 | )
42 | );
43 |
44 | SearchResult searchResult = classHunter.findBy(searchConfig);
45 |
46 | return searchResult.getClasses();
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase002/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase002;
2 |
3 | import java.util.Collection;
4 | import java.util.Date;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.classes.ClassCriteria;
9 | import org.burningwave.core.classes.ClassHunter;
10 | import org.burningwave.core.classes.ClassHunter.SearchResult;
11 | import org.burningwave.core.classes.MethodCriteria;
12 | import org.burningwave.core.classes.SearchConfig;
13 | import org.burningwave.core.io.PathHelper;
14 |
15 | public class Finder {
16 |
17 | public Collection> find() {
18 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
19 | PathHelper pathHelper = componentSupplier.getPathHelper();
20 | ClassHunter classHunter = componentSupplier.getClassHunter();
21 |
22 | MethodCriteria methodCriteria = MethodCriteria.forEntireClassHierarchy().name(methodName ->
23 | methodName.startsWith("set")
24 | ).and().parameterType(
25 | (uploadedClasses, array, idx) ->
26 | idx == 0 && array[idx].equals(uploadedClasses.get(Date.class))
27 | ).skip((classes, initialClass, examinedClass) ->
28 | classes.get(Object.class) == examinedClass
29 | );
30 |
31 | SearchConfig searchConfig = SearchConfig.forPaths(
32 | //Here you can add all absolute path you want:
33 | //both folders, zip and jar will be recursively scanned.
34 | //For example you can add: "C:\\Users\\user\\.m2"
35 | //With the row below the search will be executed on runtime Classpaths
36 | pathHelper.getMainClassPaths()
37 | ).by(
38 | ClassCriteria.create().byMembers(
39 | methodCriteria
40 | ).useClasses(
41 | Date.class,
42 | Object.class
43 | )
44 | );
45 |
46 | SearchResult searchResult = classHunter.findBy(searchConfig);
47 |
48 | //If you need all found methods unconment this
49 | //searchResult.getMembersFlatMap().values();
50 |
51 | return searchResult.getClasses();
52 | }
53 |
54 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase003/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase003;
2 |
3 | import java.util.Collection;
4 |
5 | import org.burningwave.core.assembler.ComponentContainer;
6 | import org.burningwave.core.assembler.ComponentSupplier;
7 | import org.burningwave.core.classes.ClassCriteria;
8 | import org.burningwave.core.classes.ClassPathHunter;
9 | import org.burningwave.core.classes.ClassPathHunter.SearchResult;
10 | import org.burningwave.core.classes.SearchConfig;
11 | import org.burningwave.core.io.FileSystemItem;
12 | import org.burningwave.core.io.PathHelper;
13 |
14 | public class Finder {
15 |
16 | public Collection find() {
17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
18 | PathHelper pathHelper = componentSupplier.getPathHelper();
19 | ClassPathHunter classPathHunter = componentSupplier.getClassPathHunter();
20 |
21 | SearchConfig searchConfig = SearchConfig.forPaths(
22 | //Here you can add all absolute path you want:
23 | //both folders, zip and jar will be recursively scanned.
24 | //For example you can add: "C:\\Users\\user\\.m2"
25 | //With the row below the search will be executed on runtime Classpaths
26 | pathHelper.getMainClassPaths()
27 | ).by(
28 | ClassCriteria.create().allThoseThatMatch(cls ->
29 | cls.getName().equals("Finder")
30 | )
31 | );
32 |
33 | SearchResult searchResult = classPathHunter.findBy(searchConfig);
34 | return searchResult.getClassPaths();
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase005/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase005;
2 |
3 | import java.util.AbstractList;
4 | import java.util.Collection;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.classes.ClassCriteria;
9 | import org.burningwave.core.classes.ClassHunter;
10 | import org.burningwave.core.classes.ClassHunter.SearchResult;
11 | import org.burningwave.core.classes.SearchConfig;
12 | import org.burningwave.core.io.PathHelper;
13 |
14 | public class Finder {
15 |
16 | public Collection> find() {
17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
18 | PathHelper pathHelper = componentSupplier.getPathHelper();
19 | ClassHunter classHunter = componentSupplier.getClassHunter();
20 |
21 | SearchConfig searchConfig = SearchConfig.forPaths(
22 | //Here you can add all absolute path you want:
23 | //both folders, zip and jar will be recursively scanned.
24 | //For example you can add: "C:\\Users\\user\\.m2"
25 | //With the row below the search will be executed on runtime Classpaths
26 | pathHelper.getMainClassPaths()
27 | ).by(
28 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) ->
29 | //[1]here you recall the uploaded class by "useClasses" method. In this case we find all class who extends java.util.AbstractList
30 | uploadedClasses.get(AbstractList.class).isAssignableFrom(currentScannedClass)
31 | ).useClasses(
32 | //With this directive we ask the library to load one or more classes to be used for comparisons:
33 | //it serves to eliminate the problem that a class, loaded by different class loaders,
34 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method).
35 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1]
36 | AbstractList.class
37 | )
38 | );
39 |
40 | SearchResult searchResult = classHunter.findBy(searchConfig);
41 |
42 | return searchResult.getClasses();
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase006/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase006;
2 |
3 | import java.util.Collection;
4 |
5 | import org.burningwave.core.assembler.ComponentContainer;
6 | import org.burningwave.core.assembler.ComponentSupplier;
7 | import org.burningwave.core.classes.ClassHunter;
8 | import org.burningwave.core.classes.ClassHunter.SearchResult;
9 | import org.burningwave.core.classes.SearchConfig;
10 | import org.burningwave.core.io.PathHelper;
11 |
12 | public class Finder {
13 |
14 | public Collection> find() {
15 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
16 | PathHelper pathHelper = componentSupplier.getPathHelper();
17 | ClassHunter classHunter = componentSupplier.getClassHunter();
18 |
19 | SearchConfig searchConfig = SearchConfig.forPaths(
20 | //Here you can add all absolute path you want:
21 | //both folders, zip, jar, war, ear and jmod will be recursively scanned.
22 | //For example you can add: "C:\\Users\\user\\.m2"
23 | //With the row below the search will be executed on runtime Classpaths
24 | pathHelper.getMainClassPaths()
25 | );
26 |
27 | SearchResult searchResult = classHunter.findBy(searchConfig);
28 |
29 | return searchResult.getClasses();
30 | }
31 |
32 | }
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase008/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase008;
2 |
3 | import java.util.AbstractList;
4 | import java.util.Collection;
5 |
6 | import org.burningwave.core.assembler.ComponentContainer;
7 | import org.burningwave.core.assembler.ComponentSupplier;
8 | import org.burningwave.core.classes.ClassCriteria;
9 | import org.burningwave.core.classes.ClassHunter;
10 | import org.burningwave.core.classes.ClassHunter.SearchResult;
11 | import org.burningwave.core.classes.SearchConfig;
12 | import org.burningwave.core.io.PathHelper;
13 |
14 | public class Finder {
15 |
16 | public Collection> find() {
17 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
18 | PathHelper pathHelper = componentSupplier.getPathHelper();
19 | ClassHunter classHunter = componentSupplier.getClassHunter();
20 |
21 | SearchConfig searchConfig = SearchConfig.forPaths(
22 | //Here you can add all absolute path you want:
23 | //both folders, zip and jar will be recursively scanned.
24 | //For example you can add: "C:\\Users\\user\\.m2"
25 | //With the row below the search will be executed on runtime Classpaths
26 | pathHelper.getMainClassPaths()
27 | ).by(
28 | ClassCriteria.create().byClassesThatMatch((uploadedClasses, currentScannedClass) ->
29 | //[1]here you recall the uploaded class by "useClasses" method. In this case we find all class who extends java.util.AbstractList
30 | uploadedClasses.get(AbstractList.class).isAssignableFrom(currentScannedClass)
31 | ).useClasses(
32 | //With this directive we ask the library to load one or more classes to be used for comparisons:
33 | //it serves to eliminate the problem that a class, loaded by different class loaders,
34 | //turns out to be different for the comparison operators (eg. The isAssignableFrom method).
35 | //If you call this method, you must retrieve the uploaded class in all methods that support this feature like in the point[1]
36 | AbstractList.class
37 | )
38 | );
39 |
40 | SearchResult searchResult = classHunter.findBy(searchConfig);
41 | return searchResult.getClasses();
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/examples/usecase009/Finder.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.examples.usecase009;
2 |
3 | import java.lang.reflect.Modifier;
4 | import java.util.Collection;
5 | import java.util.Date;
6 |
7 | import org.burningwave.core.assembler.ComponentContainer;
8 | import org.burningwave.core.assembler.ComponentSupplier;
9 | import org.burningwave.core.classes.ClassCriteria;
10 | import org.burningwave.core.classes.ClassHunter;
11 | import org.burningwave.core.classes.ClassHunter.SearchResult;
12 | import org.burningwave.core.classes.FieldCriteria;
13 | import org.burningwave.core.classes.SearchConfig;
14 | import org.burningwave.core.io.PathHelper;
15 |
16 | public class Finder {
17 |
18 | public Collection> find() {
19 | ComponentSupplier componentSupplier = ComponentContainer.getInstance();
20 | PathHelper pathHelper = componentSupplier.getPathHelper();
21 | ClassHunter classHunter = componentSupplier.getClassHunter();
22 |
23 | FieldCriteria fieldCriteria = FieldCriteria.withoutConsideringParentClasses().allThoseThatMatch((field) -> {
24 | return Modifier.isProtected(field.getModifiers());
25 | }).result((foundFields) -> {
26 | return foundFields.size() >= 2;
27 | });
28 |
29 | SearchConfig searchConfig = SearchConfig.forPaths(
30 | //Here you can add all absolute path you want:
31 | //both folders, zip and jar will be recursively scanned.
32 | //For example you can add: "C:\\Users\\user\\.m2"
33 | //With the row below the search will be executed on runtime Classpaths
34 | pathHelper.getMainClassPaths()
35 | ).by(
36 | ClassCriteria.create().byMembers(
37 | fieldCriteria
38 | ).useClasses(
39 | Date.class,
40 | Object.class
41 | )
42 | );
43 |
44 | SearchResult searchResult = classHunter.findBy(searchConfig);
45 |
46 | //If you need all found fields unconment this
47 | //searchResult.getMembersFlatMap().values();
48 |
49 | return searchResult.getClasses();
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/service/ExtendedService.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.service;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository;
4 |
5 | public class ExtendedService extends Service {
6 |
7 | @Override
8 | public String apply(Object value_01, String value_02, String value_03) {
9 | ManagedLoggerRepository.logInfo(this.getClass()::getName, "TriFunction: " + value_01 + " " + value_02 + " " + value_03);
10 | return "";
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/test/java/org/burningwave/core/service/ServiceInterface.java:
--------------------------------------------------------------------------------
1 | package org.burningwave.core.service;
2 |
3 | import static org.burningwave.core.assembler.StaticComponentContainer.ManagedLoggerRepository;
4 |
5 | public interface ServiceInterface {
6 |
7 | public default void printMyName() {
8 | ManagedLoggerRepository.logInfo(this.getClass()::getName, "My name is" + this.getClass().getName());
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/test/resources/custom-folder/code.properties:
--------------------------------------------------------------------------------
1 | code-block-1=\
2 | ${code-block-2}\
3 | return Date.from(zonedDateTime.toInstant());
4 | code-block-1.imports=\
5 | ${code-block-2.imports};\
6 | java.util.Date;
7 | code-block-2=\
8 | LocalDateTime localDateTime = (LocalDateTime)parameter[0];\
9 | ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
10 | code-block-2.imports=\
11 | static org.burningwave.core.assembler.StaticComponentContainer.Strings;\
12 | java.time.LocalDateTime;\
13 | java.time.ZonedDateTime;\
14 | java.time.ZoneId;
--------------------------------------------------------------------------------
/src/test/resources/junit-platform.properties:
--------------------------------------------------------------------------------
1 | #junit.jupiter.execution.order.random.seed=471587957313200
2 | org.junit.jupiter.api.MethodOrderer$Random.level=CONFIG
3 |
--------------------------------------------------------------------------------
/src/test/resources/logging.properties:
--------------------------------------------------------------------------------
1 | handlers=org.slf4j.bridge.SLF4JBridgeHandler
2 | .level=FINEST
3 | org.junit.jupiter.api.MethodOrderer$Random.level=CONFIG
4 | org.junit.jupiter.engine.execution.ConditionEvaluator.level=INFO
5 |
--------------------------------------------------------------------------------