Full Code of jkuhnert/ognl for AI

main 46795d170421 cached
336 files
1.7 MB
401.6k tokens
3143 symbols
1 requests
Download .txt
Showing preview only (1,827K chars total). Download the full file or copy to clipboard to get everything.
Repository: jkuhnert/ognl
Branch: main
Commit: 46795d170421
Files: 336
Total size: 1.7 MB

Directory structure:
gitextract_sc8f7uqk/

├── .claude/
│   └── settings.json
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── maven.yml
│       ├── ognl-3-4-x.yml
│       ├── performance-baseline.yml
│       ├── performance.yml
│       └── sonar.yml
├── .gitignore
├── .mvn/
│   └── wrapper/
│       ├── MavenWrapperDownloader.java
│       └── maven-wrapper.properties
├── CLAUDE.md
├── KEYS
├── LICENSE.txt
├── README.md
├── SECURITY.md
├── benchmarks/
│   ├── etc/
│   │   └── ognl-runtime-benchmark-baseline.json
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── ognl/
│                   ├── DefaultMemberAccess.java
│                   ├── Run.java
│                   └── benchmarks/
│                       ├── OgnlPerformanceBenchmarks.java
│                       └── OgnlRuntimePerformanceBenchmarks.java
├── docs/
│   ├── DeveloperGuide.md
│   ├── ISSUE_103_ANALYSIS.md
│   ├── LanguageGuide.md
│   ├── NullSafeOperator.md
│   ├── VersionNotes.md
│   └── plans/
│       ├── ISSUE_18_COMPILED_MODE_PARITY.md
│       └── JDK25_FORWARD_COMPATIBILITY.md
├── mvnw
├── mvnw.cmd
├── ognl/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── ognl/
│       │   │       ├── ASTAdd.java
│       │   │       ├── ASTAnd.java
│       │   │       ├── ASTAssign.java
│       │   │       ├── ASTBitAnd.java
│       │   │       ├── ASTBitNegate.java
│       │   │       ├── ASTBitOr.java
│       │   │       ├── ASTChain.java
│       │   │       ├── ASTConst.java
│       │   │       ├── ASTCtor.java
│       │   │       ├── ASTDivide.java
│       │   │       ├── ASTEq.java
│       │   │       ├── ASTEval.java
│       │   │       ├── ASTGreater.java
│       │   │       ├── ASTGreaterEq.java
│       │   │       ├── ASTIn.java
│       │   │       ├── ASTInstanceof.java
│       │   │       ├── ASTKeyValue.java
│       │   │       ├── ASTLess.java
│       │   │       ├── ASTLessEq.java
│       │   │       ├── ASTList.java
│       │   │       ├── ASTMap.java
│       │   │       ├── ASTMethod.java
│       │   │       ├── ASTMultiply.java
│       │   │       ├── ASTNegate.java
│       │   │       ├── ASTNot.java
│       │   │       ├── ASTNotEq.java
│       │   │       ├── ASTNotIn.java
│       │   │       ├── ASTOr.java
│       │   │       ├── ASTProject.java
│       │   │       ├── ASTProperty.java
│       │   │       ├── ASTRemainder.java
│       │   │       ├── ASTRootVarRef.java
│       │   │       ├── ASTSelect.java
│       │   │       ├── ASTSelectFirst.java
│       │   │       ├── ASTSelectLast.java
│       │   │       ├── ASTSequence.java
│       │   │       ├── ASTShiftLeft.java
│       │   │       ├── ASTShiftRight.java
│       │   │       ├── ASTStaticField.java
│       │   │       ├── ASTStaticMethod.java
│       │   │       ├── ASTSubtract.java
│       │   │       ├── ASTTest.java
│       │   │       ├── ASTThisVarRef.java
│       │   │       ├── ASTUnsignedShiftRight.java
│       │   │       ├── ASTVarRef.java
│       │   │       ├── ASTXor.java
│       │   │       ├── AbstractMemberAccess.java
│       │   │       ├── AccessibleObjectHandler.java
│       │   │       ├── ArrayElementsAccessor.java
│       │   │       ├── ArrayPropertyAccessor.java
│       │   │       ├── BooleanExpression.java
│       │   │       ├── ClassCacheInspector.java
│       │   │       ├── ClassResolver.java
│       │   │       ├── CollectionElementsAccessor.java
│       │   │       ├── ComparisonExpression.java
│       │   │       ├── DefaultClassResolver.java
│       │   │       ├── DefaultTypeConverter.java
│       │   │       ├── DynamicSubscript.java
│       │   │       ├── ElementsAccessor.java
│       │   │       ├── EnumerationElementsAccessor.java
│       │   │       ├── EnumerationIterator.java
│       │   │       ├── EnumerationPropertyAccessor.java
│       │   │       ├── Evaluation.java
│       │   │       ├── EvaluationPool.java
│       │   │       ├── ExpressionNode.java
│       │   │       ├── ExpressionSyntaxException.java
│       │   │       ├── InappropriateExpressionException.java
│       │   │       ├── IteratorElementsAccessor.java
│       │   │       ├── IteratorEnumeration.java
│       │   │       ├── IteratorPropertyAccessor.java
│       │   │       ├── JJTOgnlParserState.java
│       │   │       ├── JavaSource.java
│       │   │       ├── ListPropertyAccessor.java
│       │   │       ├── MapElementsAccessor.java
│       │   │       ├── MapPropertyAccessor.java
│       │   │       ├── MemberAccess.java
│       │   │       ├── MethodAccessor.java
│       │   │       ├── MethodFailedException.java
│       │   │       ├── NoSuchPropertyException.java
│       │   │       ├── Node.java
│       │   │       ├── NodeType.java
│       │   │       ├── NullHandler.java
│       │   │       ├── NumberElementsAccessor.java
│       │   │       ├── NumericCasts.java
│       │   │       ├── NumericDefaults.java
│       │   │       ├── NumericExpression.java
│       │   │       ├── NumericLiterals.java
│       │   │       ├── NumericTypes.java
│       │   │       ├── NumericValues.java
│       │   │       ├── ObjectElementsAccessor.java
│       │   │       ├── ObjectIndexedPropertyDescriptor.java
│       │   │       ├── ObjectMethodAccessor.java
│       │   │       ├── ObjectNullHandler.java
│       │   │       ├── ObjectPropertyAccessor.java
│       │   │       ├── Ognl.java
│       │   │       ├── OgnlCache.java
│       │   │       ├── OgnlContext.java
│       │   │       ├── OgnlException.java
│       │   │       ├── OgnlOps.java
│       │   │       ├── OgnlParserTreeConstants.java
│       │   │       ├── OgnlRuntime.java
│       │   │       ├── PrimitiveDefaults.java
│       │   │       ├── PrimitiveTypes.java
│       │   │       ├── PrimitiveWrapperClasses.java
│       │   │       ├── PropertyAccessor.java
│       │   │       ├── SetPropertyAccessor.java
│       │   │       ├── SimpleNode.java
│       │   │       ├── TypeConverter.java
│       │   │       ├── enhance/
│       │   │       │   ├── ContextClassLoader.java
│       │   │       │   ├── EnhancedClassLoader.java
│       │   │       │   ├── ExpressionAccessor.java
│       │   │       │   ├── ExpressionCompiler.java
│       │   │       │   ├── LocalReference.java
│       │   │       │   ├── OgnlExpressionCompiler.java
│       │   │       │   ├── OgnlLocalReference.java
│       │   │       │   ├── OrderedReturn.java
│       │   │       │   └── UnsupportedCompilationException.java
│       │   │       ├── internal/
│       │   │       │   ├── Cache.java
│       │   │       │   ├── CacheException.java
│       │   │       │   ├── CacheFactory.java
│       │   │       │   ├── ClassCache.java
│       │   │       │   ├── ClassCacheHandler.java
│       │   │       │   ├── HashMapCache.java
│       │   │       │   ├── HashMapCacheFactory.java
│       │   │       │   ├── HashMapClassCache.java
│       │   │       │   └── entry/
│       │   │       │       ├── CacheEntry.java
│       │   │       │       ├── CacheEntryFactory.java
│       │   │       │       ├── ClassCacheEntryFactory.java
│       │   │       │       ├── DeclaredMethodCacheEntry.java
│       │   │       │       ├── DeclaredMethodCacheEntryFactory.java
│       │   │       │       ├── FieldCacheEntryFactory.java
│       │   │       │       ├── GenericMethodParameterTypeCacheEntry.java
│       │   │       │       ├── GenericMethodParameterTypeFactory.java
│       │   │       │       ├── MethodAccessCacheEntryFactory.java
│       │   │       │       ├── MethodAccessEntryValue.java
│       │   │       │       ├── MethodCacheEntry.java
│       │   │       │       ├── MethodCacheEntryFactory.java
│       │   │       │       └── PropertyDescriptorCacheEntryFactory.java
│       │   │       └── package.html
│       │   ├── javacc/
│       │   │   └── ognl.jj
│       │   └── jjtree/
│       │       └── ognl.jjt
│       └── test/
│           └── java/
│               ├── ClassInDefaultPackage.java
│               ├── com/
│               │   └── sun/
│               │       └── test/
│               │           └── AnotherInternalClass.java
│               ├── ognl/
│               │   ├── DefaultMemberAccess.java
│               │   ├── ExcludedObjectMemberAccess.java
│               │   ├── ObjectPropertyAccessorTest.java
│               │   ├── OgnlContextTest.java
│               │   ├── OgnlRuntimeAccessibilityTest.java
│               │   ├── OgnlRuntimeMethodsTest.java
│               │   ├── OgnlRuntimeTest.java
│               │   └── test/
│               │       ├── ASTChainTest.java
│               │       ├── ASTMethodTest.java
│               │       ├── ASTPropertyTest.java
│               │       ├── ASTSequenceTest.java
│               │       ├── ArithmeticAndLogicalOperatorsOnEnumsTest.java
│               │       ├── ArithmeticAndLogicalOperatorsTest.java
│               │       ├── ArrayCreationTest.java
│               │       ├── ArrayElementsTest.java
│               │       ├── ChainTest.java
│               │       ├── ClassMethodTest.java
│               │       ├── CollectionDirectPropertyTest.java
│               │       ├── CompilingPropertyAccessor.java
│               │       ├── ConstantTest.java
│               │       ├── ConstantTreeTest.java
│               │       ├── ContextRootPreservationTest.java
│               │       ├── ContextVariableTest.java
│               │       ├── CorrectedObjectNullHandler.java
│               │       ├── DefaultClassResolverTest.java
│               │       ├── DualModeEvaluationTest.java
│               │       ├── GenericsTest.java
│               │       ├── InExpressionTest.java
│               │       ├── IndexAccessTest.java
│               │       ├── IndexedPropertyTest.java
│               │       ├── InheritedMethodsTest.java
│               │       ├── InterfaceInheritanceTest.java
│               │       ├── IsTruckTest.java
│               │       ├── Issue286Test.java
│               │       ├── Issue472CustomMethodAccessorTest.java
│               │       ├── Java8Test.java
│               │       ├── LambdaExpressionTest.java
│               │       ├── MapCreationTest.java
│               │       ├── MemberAccessTest.java
│               │       ├── MethodTest.java
│               │       ├── MethodWithConversionTest.java
│               │       ├── NestedMethodTest.java
│               │       ├── NullHandlerTest.java
│               │       ├── NullRootTest.java
│               │       ├── NullSafeCollectionTest.java
│               │       ├── NullSafeCompilationTest.java
│               │       ├── NullSafeIntegrationTest.java
│               │       ├── NullSafeOperatorTest.java
│               │       ├── NullStringCatenationTest.java
│               │       ├── NumberFormatExceptionTest.java
│               │       ├── NumericConversionTest.java
│               │       ├── ObjectIndexedPropertyTest.java
│               │       ├── ObjectIndexedTest.java
│               │       ├── OgnlContextCreateTest.java
│               │       ├── OgnlExceptionTest.java
│               │       ├── OgnlOpsTest.java
│               │       ├── OperationTest.java
│               │       ├── OperatorTest.java
│               │       ├── PackageKeywordTest.java
│               │       ├── PrimitiveArrayTest.java
│               │       ├── PrimitiveNullHandlingTest.java
│               │       ├── PrivateAccessorTest.java
│               │       ├── PrivateMemberTest.java
│               │       ├── ProjectionSelectionTest.java
│               │       ├── PropertyAccessorTest.java
│               │       ├── PropertyArithmeticAndLogicalOperatorsTest.java
│               │       ├── PropertySetterTest.java
│               │       ├── PropertyTest.java
│               │       ├── ProtectedInnerClassTest.java
│               │       ├── ProtectedMemberTest.java
│               │       ├── PublicMemberTest.java
│               │       ├── QuotingTest.java
│               │       ├── RaceConditionTest.java
│               │       ├── SetterTest.java
│               │       ├── SetterWithConversionTest.java
│               │       ├── ShortCircuitingExpressionTest.java
│               │       ├── SimpleNavigationChainTreeTest.java
│               │       ├── SimplePropertyTreeTest.java
│               │       ├── StaticsAndConstructorsTest.java
│               │       ├── VarArgsMethodTest.java
│               │       ├── accessors/
│               │       │   ├── ListPropertyAccessorTest.java
│               │       │   └── PropertyAccessTest.java
│               │       ├── enhance/
│               │       │   └── ExpressionCompilerTest.java
│               │       ├── objects/
│               │       │   ├── BaseBean.java
│               │       │   ├── BaseGeneric.java
│               │       │   ├── BaseIndexed.java
│               │       │   ├── BaseObjectIndexed.java
│               │       │   ├── BaseSyntheticObject.java
│               │       │   ├── Bean1.java
│               │       │   ├── Bean2.java
│               │       │   ├── Bean3.java
│               │       │   ├── BeanProvider.java
│               │       │   ├── BeanProviderAccessor.java
│               │       │   ├── BeanProviderImpl.java
│               │       │   ├── Component.java
│               │       │   ├── ComponentImpl.java
│               │       │   ├── ComponentSubclass.java
│               │       │   ├── Copy.java
│               │       │   ├── CorrectedObject.java
│               │       │   ├── Cracker.java
│               │       │   ├── Entry.java
│               │       │   ├── EvenOdd.java
│               │       │   ├── FirstBean.java
│               │       │   ├── FormComponentImpl.java
│               │       │   ├── FormImpl.java
│               │       │   ├── GameGeneric.java
│               │       │   ├── GameGenericObject.java
│               │       │   ├── GenericCracker.java
│               │       │   ├── GenericObject.java
│               │       │   ├── GenericRoot.java
│               │       │   ├── GenericService.java
│               │       │   ├── GenericServiceImpl.java
│               │       │   ├── GetterMethods.java
│               │       │   ├── IComponent.java
│               │       │   ├── IContentProvider.java
│               │       │   ├── IForm.java
│               │       │   ├── IFormComponent.java
│               │       │   ├── ITreeContentProvider.java
│               │       │   ├── Indexed.java
│               │       │   ├── IndexedMapObject.java
│               │       │   ├── IndexedSetObject.java
│               │       │   ├── Inherited.java
│               │       │   ├── ListSource.java
│               │       │   ├── ListSourceImpl.java
│               │       │   ├── MenuItem.java
│               │       │   ├── Messages.java
│               │       │   ├── MethodTestMethods.java
│               │       │   ├── Model.java
│               │       │   ├── MyMap.java
│               │       │   ├── MyMapImpl.java
│               │       │   ├── ObjectIndexed.java
│               │       │   ├── OtherEnum.java
│               │       │   ├── OtherObjectIndexed.java
│               │       │   ├── PersonGenericObject.java
│               │       │   ├── PropertyHolder.java
│               │       │   ├── Root.java
│               │       │   ├── SearchCriteria.java
│               │       │   ├── SearchTab.java
│               │       │   ├── SecondBean.java
│               │       │   ├── SetterReturns.java
│               │       │   ├── Simple.java
│               │       │   ├── SimpleEnum.java
│               │       │   ├── SimpleNumeric.java
│               │       │   ├── StaticInterface.java
│               │       │   ├── SubclassSyntheticObject.java
│               │       │   ├── TestClass.java
│               │       │   ├── TestImpl.java
│               │       │   ├── TestInherited1.java
│               │       │   ├── TestInherited2.java
│               │       │   ├── TestModel.java
│               │       │   ├── TreeContentProvider.java
│               │       │   └── Two.java
│               │       ├── race/
│               │       │   ├── Base.java
│               │       │   ├── Person.java
│               │       │   └── RaceTest.java
│               │       └── util/
│               │           ├── ContextClassLoader.java
│               │           ├── EnhancedClassLoader.java
│               │           └── NameFactory.java
│               └── sun/
│                   └── test/
│                       ├── PublicTestInterface.java
│                       └── SimulatedInternalClass.java
├── pom.xml
└── renovate.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .claude/settings.json
================================================
{
  "permissions": {
    "allow": [
      "WebSearch",
      "WebFetch(domain:github.com)",
      "WebFetch(domain:raw.githubusercontent.com)",
      "Bash(mvn help:*)",
      "Bash(mvn test:*)",
      "Bash(git branch:*)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Bash(git push:*)",
      "Bash(git checkout:*)",
      "Bash(git reset:*)",
      "Bash(gh pr view:*)",
      "Bash(gh pr diff:*)",
      "Bash(gh pr create:*)",
      "mcp__jetbrains"
    ],
    "deny": []
  }
}


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [lukaszlenart] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: "maven/ognl:ognl" # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/workflows/maven.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Java CI - main

on:
  pull_request:
  push:
    branches:
      - main

permissions: read-all

env:
  MAVEN_OPTS: -Xmx2g -Xms1g
  LANG: en_US.utf8

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        java: [ '17', '21', '25' ]
    steps:
      - name: Checkout code
        uses: actions/checkout@v6.0.2
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: ${{ matrix.java }}
          cache: maven
      - name: Build with Maven on Java ${{ matrix.java }}
        run: ./mvnw -B package -DskipTests
      - name: Test with Maven on Java ${{ matrix.java }}
        run: ./mvnw -B verify
      - name: Check if SNAPSHOT version
        id: is-snapshot
        if: matrix.java == '17' && github.ref == 'refs/heads/main'
        run: |
          VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
          if [[ "$VERSION" == *-SNAPSHOT ]]; then
            echo "is_snapshot=true" >> $GITHUB_OUTPUT
          else
            echo "is_snapshot=false" >> $GITHUB_OUTPUT
          fi
      - name: Deploy SNAPSHOT
        if: matrix.java == '17' && github.ref == 'refs/heads/main' && steps.is-snapshot.outputs.is_snapshot == 'true'
        run: |
          echo "${{ secrets.MAVEN_SETTINGS }}" > ~/.m2/settings-ognl.xml
          ./mvnw -B -DskipTests=true deploy -s ~/.m2/settings-ognl.xml


================================================
FILE: .github/workflows/ognl-3-4-x.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Java CI - ognl-3-4-x

on:
  push:
    branches:
      - ognl-3-4-x

permissions: read-all

env:
  MAVEN_OPTS: -Xmx2g -Xms1g
  LANG: en_US.utf8

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v6.0.2
      - name: Set up JDK 8
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 8
          cache: maven
      - name: Build with Maven on Java 9
        run: ./mvnw -B package -DskipTests
      - name: Test with Maven on Java 8
        run: ./mvnw -B verify
      - name: Deploy SNAPSHOT
        run: |
          echo "${{ secrets.MAVEN_SETTINGS }}" > ~/.m2/settings-ognl.xml
          ./mvnw -B -DskipTests=true deploy -s ~/.m2/settings-ognl.xml


================================================
FILE: .github/workflows/performance-baseline.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: JMH Baseline Generation

on:
  workflow_dispatch:

permissions:
  contents: read

env:
  MAVEN_OPTS: -Xmx2g -Xms1g
  LANG: en_US.utf8

jobs:
  generate-baseline:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v6.0.2
      - name: Set up cache
        uses: actions/cache@v5.0.5
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: Set up JDK 17
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 17
      - name: Build with Maven
        run: ./mvnw -B package -DskipTests
      - name: Run benchmarks (10 forks for baseline)
        env:
          OPTIONS: generateBaseline
        run: ./mvnw -B verify -Pbenchmarks -DskipTests -Dbenchmarks.jmhArgs="-f 10"
      - name: Upload baseline JSON
        uses: actions/upload-artifact@v7
        with:
          name: jmh-baseline
          path: benchmarks/target/ognl-runtime-benchmark-results.json


================================================
FILE: .github/workflows/performance.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: JMH Benchmarks

on:
  workflow_dispatch:
  push:
    branches:
      - main

permissions: read-all

env:
  MAVEN_OPTS: -Xmx2g -Xms1g
  LANG: en_US.utf8

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v6.0.2
      - name: Set up cache
        uses: actions/cache@v5.0.5
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: Set up JDK 17
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 17
      - name: Build with Maven
        run: ./mvnw -B package -DskipTests
      - name: Run benchmarks with Maven
        env:
          OPTIONS: publishSummary
        run: |
          echo '### Benchmarks summary 🚀' >> $GITHUB_STEP_SUMMARY
          ./mvnw -B verify -Pbenchmarks -DskipTests -Dbenchmarks.jmhArgs="-f 10"
      - name: Upload JMH results
        uses: actions/upload-artifact@v7
        with:
          name: jmh-results
          path: benchmarks/target/ognl-runtime-benchmark-results.json


================================================
FILE: .github/workflows/sonar.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: SonarCloud

on:
  pull_request:
  push:
    branches:
      - 'main'

permissions: read-all

env:
  MAVEN_OPTS: -Xmx2g -Xms1g
  LANG: en_US.utf8

jobs:
  sonarcloud:
    name: Scan
    runs-on: ubuntu-latest
    if: ${{ !github.event.pull_request.base.repo.fork && !github.event.pull_request.head.repo.fork && github.actor != 'renovate[bot]' }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
      - name: Setup Java
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 17
          cache: 'maven'
      - name: Cache SonarQube packages
        uses: actions/cache@v5
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      - name: Build with Maven
        run: ./mvnw -B package -DskipTests=true
      - name: Test with coverage
        run: ./mvnw -B verify -Pcoverage
      - name: SonarCloud Scan on ${{ github.ref }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
        run: ./mvnw -B -Pcoverage sonar:sonar


================================================
FILE: .gitignore
================================================
*.iml
*.ipr
*.iws
target
.idea
build
.java-version
.mvn/wrapper/maven-wrapper.jar
.DS_Store
**/.DS_Store
.claude/settings.local.json
.worktrees


================================================
FILE: .mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
*/

import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;

public class MavenWrapperDownloader {

    /**
     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
     */
    private static final String DEFAULT_DOWNLOAD_URL =
            "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar";

    /**
     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
     * use instead of the default one.
     */
    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
            ".mvn/wrapper/maven-wrapper.properties";

    /**
     * Path where the maven-wrapper.jar will be saved to.
     */
    private static final String MAVEN_WRAPPER_JAR_PATH =
            ".mvn/wrapper/maven-wrapper.jar";

    /**
     * Name of the property which should be used to override the default download url for the wrapper.
     */
    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";

    public static void main(String args[]) {
        System.out.println("- Downloader started");
        File baseDirectory = new File(args[0]);
        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());

        // If the maven-wrapper.properties exists, read it and check if it contains a custom
        // wrapperUrl parameter.
        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
        String url = DEFAULT_DOWNLOAD_URL;
        if(mavenWrapperPropertyFile.exists()) {
            FileInputStream mavenWrapperPropertyFileInputStream = null;
            try {
                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
                Properties mavenWrapperProperties = new Properties();
                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
            } catch (IOException e) {
                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
            } finally {
                try {
                    if(mavenWrapperPropertyFileInputStream != null) {
                        mavenWrapperPropertyFileInputStream.close();
                    }
                } catch (IOException e) {
                    // Ignore ...
                }
            }
        }
        System.out.println("- Downloading from: : " + url);

        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
        if(!outputFile.getParentFile().exists()) {
            if(!outputFile.getParentFile().mkdirs()) {
                System.out.println(
                        "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
            }
        }
        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
        try {
            downloadFileFromURL(url, outputFile);
            System.out.println("Done");
            System.exit(0);
        } catch (Throwable e) {
            System.out.println("- Error downloading");
            e.printStackTrace();
            System.exit(1);
        }
    }

    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
        URL website = new URL(urlString);
        ReadableByteChannel rbc;
        rbc = Channels.newChannel(website.openStream());
        FileOutputStream fos = new FileOutputStream(destination);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
        fos.close();
        rbc.close();
    }

}


================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip

================================================
FILE: CLAUDE.md
================================================
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

OGNL (Object-Graph Navigation Language) is an expression language for getting and setting properties of Java objects,
used by frameworks including Apache Struts. Key features: property navigation (JavaBeans), method invocation,
collection operations (projection/selection), lambda expressions, type conversion, and member access control.

## Development Environment

- **Language**: Java 17 (CI also tests against Java 21 and 25)
- **Build Tool**: Maven with wrapper (`./mvnw`), multi-module project
- **Testing**: JUnit Jupiter 6.x
- **Parser Generator**: JavaCC (grammar at `ognl/src/main/javacc/ognl.jj`)

## Project Structure

- **ognl/** — Core library (source: `ognl/src/main/java/ognl/`, tests: `ognl/src/test/java/ognl/`)
- **benchmarks/** — JMH performance benchmarks
- **docs/** — Language Guide, Developer Guide, Version Notes

## Essential Commands

```bash
# Build
./mvnw clean install                    # Full build + install
./mvnw compile                          # Compile only (includes JavaCC parser generation)

# Tests
./mvnw test                             # Full test suite
./mvnw test -pl ognl                    # Core module tests only
./mvnw test -pl ognl -Dtest=ClassName   # Single test class
./mvnw test -pl ognl -Dtest=Pattern -Dsurefire.failIfNoSpecifiedTests=false  # Pattern match

# Coverage & Quality
./mvnw clean test -Pcoverage            # JaCoCo coverage report
./mvnw sonar:sonar -Pcoverage           # SonarCloud analysis

# Benchmarks
cd benchmarks && ../mvnw clean install && java -jar target/benchmarks.jar
```

## JavaCC Parser Generation

- Parser auto-generated from `ognl/src/main/javacc/ognl.jj` during `compile` phase
- Generated sources go to `ognl/target/generated-sources/java/`
- To regenerate AST files, uncomment `<nodePackage>*.jtree</nodePackage>` in `ognl/pom.xml` and change goal to `jtree-javacc`

## Architecture

### Evaluation Flow

1. Expression string → parsed into AST tree via JavaCC (`OgnlParser`)
2. AST evaluated against a root object within an `OgnlContext`
3. Each AST node type handles its own evaluation via `SimpleNode.getValue()`/`setValue()`
4. `OgnlRuntime` resolves properties, methods, and fields via reflection (with caching)
5. Results pass through `TypeConverter` when type coercion is needed

## SonarCloud

- **Project**: `orphan-oss_ognl` — https://sonarcloud.io/project/overview?id=orphan-oss_ognl
- **Quality Gate**: Must pass for all PRs
- **PR issues URL**: `https://sonarcloud.io/project/issues?issueStatuses=OPEN%2CCONFIRMED&sinceLeakPeriod=true&pullRequest=[PR_NUMBER]&id=orphan-oss_ognl`
- Focus on new issues only, not pre-existing ones
- Aim for >80% coverage on new code

## Critical Development Rules

### Context Root Preservation

**Always preserve the original context root during nested evaluations.** The `addDefaultContext()` method in `Ognl.java`
can overwrite original root contexts during list processing. Preserve original root when:
- Initial context exists with non-null root
- Context contains user variables (`size() > 0`)
- New root differs from existing root (indicates nested evaluation)
- `#root` must always refer to original context root
- `#this` changes scope during collection iteration
- Preserve user context variables during projection/selection (`ASTProject`/`ASTSelect`)

### Constraints

- Public methods in `Ognl` class are stable API — maintain backward compatibility
- Respect `MemberAccess` restrictions for private/protected access
- Honor expression length limits (`expressionMaxLength`)
- Use stricter invocation mode to prevent dangerous method calls

================================================
FILE: KEYS
================================================
This file contains the PGP keys of various Apache developers.
Please don't use them for email unless you have to. Their main
purpose is code signing.

Apache users: pgp < KEYS
Apache developers:
        (pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
      or
        (gpg --fingerprint --list-sigs <your name>
             && gpg --armor --export <your name>) >> this file.

Apache developers: please ensure that your key is also available via the
PGP keyservers (such as pgpkeys.mit.edu).


pub   1024D/DD8B8819 2009-12-16
uid                  Lukasz Lenart <lukaszlenart@apache.org>
sig 3        DD8B8819 2009-12-16  Lukasz Lenart <lukaszlenart@apache.org>
sub   4096g/66EFAD45 2009-12-16
sig          DD8B8819 2009-12-16  Lukasz Lenart <lukaszlenart@apache.org>
 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (Cygwin)
 
mQGiBEsouosRBADqYHGJ4BAM+v9OqrT0gzuZrnIxpimLNsZkj6WxO5r/Ub/kVBB4
GOZk65Bq26M+S1oMZo4jaI3+il8XZquUUa87gfBDcoVgiw32QUBvZzT3ietckI4o
IGJu+oHggxQUdiyoAfz+3gvCGUc6kVYuSuFWgpwOwD9giPUIPV+eHnRLcwCgwHks
wNaMFpvRzBrGTn4s+NhL+VMEALxZPmMLyIBQZ3zFcdsNmumkfv6HZ6DKJl3EILQA
Eje8ihhKrpSdXXiQSNSNoXRwr4iEXJtdzkynLzHckmJMxp/T20sjZ+giPFsZP3El
PSME1tfWr2X+K/DeoNAPDgZ1XwT/MbeMQTB9mttxDLh7iT0ydr1jZmc0G9072RX5
LLGmBADFRhTIif0kywiJyjLM47+H/ZMaPU8+hMuszfvSCL7HE9EXQmq743rNAlNh
e/JC+Hpx/w6424nFMVQ6PQoUzWG2W8O9GuD6UTjXdhn7Gz7kH3pXvWnRWlMroGvP
RMAtOUX3UL3VfCmVlag3nGqw9a4ZP4Cst1RTOY1NDKQ3NfXN17QnTHVrYXN6IExl
bmFydCA8bHVrYXN6bGVuYXJ0QGFwYWNoZS5vcmc+iGAEExECACAFAksouosCGwMG
CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRD1WHMi3YuIGTZ/AKCruOnMYkXXOjg6
CccBJFVbg4OBKACdH5CFT0zUSlrF1SM+S2etNT8A3iG5BA0ESyi6ixAQAIfLz7XS
wcC5L32glQ/71InGR9wi1KVchAvP+soDuicqzS8kmvuxsYYyrSOTjrLRGs1kuZ3c
uSTj2jgYD4peDVYyfhDDDe9PBsv3cN35XE7i/DII1qgfe5+cjND/6Wgwjcg5Doat
zLrFcHCexKZKP21lG4AwblzvNojOuCvhnAPS+zbsqjQ1W0hByUH5TMaNTk0ZctXM
WJzxYT5JBeboR+T/K2d0yYGUsq/A0DOtZ0JVzfDihF8QTzcbagFyP4y1O3Bp4TXd
NSoETirrVnc+CyVAGMfNUpodNJizqytZlPMCujY7VhiOBvzKlc2Bq9E4TtE2g5Sd
rKo8I/pYFNSUa/hkMcxj66VmC0LwNbbPTwFiUwloMWBYMH/nbq8oVvKU0NHnMyM6
FrwroPaFw5mCF7wesbJOwtW3vj5r8BCyfrpWbQXMlix14FOLaC10NG9NBGb9b648
ADEN4hNIUwBkhAiHR+Q374CRINqoe67jRgpyaW+CfdRhLM/m7Nuhj61VrUnZRQ1l
B5taCw83GVsT+tTO5KiN6uLwJhkewgR3QXeuwOuhc1NY1EXy0rhH6eAMkwT03jPw
AoMRLyLr97nBcHAB2XF1s5xCL16dmAnl5fpIgCtNQHZDp67un6/+0Yhbgr2bFrw6
ALq51cS79dhKIkressxI8439Odfg1B2qD1uHAAMFD/9L1n9HrSLlGtlHT8Cv6SV3
Z7o4piDM7jCUWfduNtYv8otwEq9sXYr6pAvjfTdq9jeyQrenpsuLni2eMTAJXhqz
NfhSXfGRxdgC64TtK9LR9xIoZJQ0UQO5j4GFatbzvnLVJCf0TFZ9dEtrqEPMxjrc
wg28Wy/UMlsd2W/FENll3bhAB4IUnf0h4NFZ42a2BKw91DIDGTap4r2gAWLMHR1y
iyfGAZvmiMPocCE7Rgp2tNiUMVr01ZEcRmzZW5wg+2PpmkAR7BnVMwjsO6Bu+8fi
C4q1pLLz1lRgru0lsZL/TxcXKRp94lElJ1V6Gz5MzCdY/iTnXgEXhXLTi0J2eUqQ
xcYTiuI33uFRo1VsgHugkvFTlPe02fN+2tDJpG8mT0TQJT3+NdXfcK7Fg58DnP2W
q7LLjJYHMZyPInXyfeVuT7a01yFkWmjKfl8gqrch1mlMaf2gkgGkMIT5gYEeA73U
sfZtzcq0H0ciQyM4N0oXEbjo5/pwEQDeyZCpTI2z3cXq1N7zHhjv/gRWw51LZ65W
bPJfQZwL7EnBidJFIYLMtf3wD4xheI5wgfhc7CfEoSoAgLiwPziIPS2ABM5TuYBd
zuDvKSqd1VOIr0W+tHliXABRZEmQ7sONU9VptTmOIAIgB0uR4nBbt3OcEbNm2YIu
V2krcFt8xJiczsflYfdF4IhJBBgRAgAJBQJLKLqLAhsMAAoJEPVYcyLdi4gZJdIA
nA+r83IgYrCk9E5s2T3JhAEpPXX5AJ0d82Ug+2JyJvNyL8O+/61GrdDgSw==
=+tUp
-----END PGP PUBLIC KEY BLOCK-----
 
pub   4096R/63AFBB1F 2010-05-23
      Key fingerprint = 0E00 8698 344E 62B9 0633  B7C6 2841 6106 63AF BB1F
uid                  Lukasz Lenart (Signing Apache Distributions) <lukaszlenart@apache.org>
sig 3        63AFBB1F 2010-05-23  Lukasz Lenart (Signing Apache Distributions) <lukaszlenart@apache.org>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.9 (Cygwin)

mQINBEv43AABEAC6VkF/h0OnvcppCPkqzfNwNy/+D+aFhc+DESwxEznSSKSbeg3V
r1wwTy90+7S/mEItm88RmkNBYe1Mz3syDcj9s4S34atEV6XzGAa+3gp2rkWskyZ9
jJhXuD5ctd3LWRsA+0b14oo4/Je4pfu5aVzEDscrorskueHOY1Z73OmwRGZlIBT9
bQU+wAkIwhkw7HepgSyLcwblcy+cM4P68Ir/HAEt19FDKtnUUTnqnKT8bQDaXUuH
2iqNYTo3xZ6D2Eh6aBcUXgzAXHtuSnm4IEwipvi1OGo87N3ZEy++bs9GLNoI8ooC
pwhYtYDetOTvujXkyi3SGRzVhKagcJQhZGcRq3587f49K0EJCumyNYw5q4E1FgKN
T0k3Zed/LyaUSQZBGIWcmbtXaY+2s8wtUjBXFTYbbLlbijaD95RvL8xY9mWDPwJB
Pe9DidEQ9qOSNC7jWnbwKhoeTN2AAQCcaZ5lNEx3SYw0pLz7H22l+/i2jBMzYqAu
0ViRyiXkNstxrdmbTaR4hJdf3IH0fsJPjdJVV0dyHKcDKaUj1RmcUizBLYTXY6oY
nEk5kp0A2pllRwE4ZLxeiT9KkqbPytqkQVGDzu4PQnMxIv0Uu7NrIbpP6fMJlt94
3N57N3lj8FCfGU1TediS2aXZx2rLVEPWFmZWeOATwqihA1fe0leMBWPnfwARAQAB
tEZMdWthc3ogTGVuYXJ0IChTaWduaW5nIEFwYWNoZSBEaXN0cmlidXRpb25zKSA8
bHVrYXN6bGVuYXJ0QGFwYWNoZS5vcmc+iQI4BBMBAgAiBQJL+NwAAhsDBgsJCAcD
AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAoQWEGY6+7H8sMD/92MJ2srnFeR7h5ULWr
FKU8ynBgL4ghfmEF6/2InxUtZG/6fESKYnw1nuaFCiob8Q6KpszkRwPPjHRLr6q5
DiXdptFEBGgni2Cq4HF9722hpSukYESb9wu0CiNd+aksCEIh3VlAZJ8Yve3SYndp
fvmUx49mztApqq3EUzPI+O2huMDTaFNpMOrPpWZnosIdUDAFMTq3pB5GFJSxsvlA
NsWCcyWnSCuTMlbpvIgJ9ojPJfm+0IXKD2dzQdR9PtDQ1tfv60OC486FncYGuwHD
qbdnY4S5hPyE9YYCc7AY3Q5J/nvBIifW8fFWBLMx1ykKQlZOc4iTBOe7o3MSTeCp
X09WE/GqKwEHx2IQmWqgboMW1qJlqWBwEMPcH3bj1WnQ4zkHuOLcS9xdL+opq9xG
LffLm3fynicg7Fse5qXFSh7GbLSJmc5BTqA10HCE1Ur6mcL0+W/+h2kPd+U7/OU2
wr59iQuroEouV71h9SVpSElLhTOw5rRK+AU+cBIkzvfv9dBcVNlzmsAnrJ1+Gqex
4gmPmAr7MrZpOTzs5d2dYpu1LO8w6a/2CZn69sE5AGtda0ErFMXacLpzWoIMLPYN
7Vn5LS4JLE7GSM4WDfyG93OA2spR9ofBlsSqHSlOrSTM8JaEFCPaGD/AMIWKj6ya
NrjTmQt9KnGO87EwAlPDwf0hjw==
=x2yb
-----END PGP PUBLIC KEY BLOCK-----


================================================
FILE: LICENSE.txt
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

================================================
FILE: README.md
================================================
<p align="center">
  <img src="docs/ognl-logo.svg" alt="OGNL" width="400"/>
</p>

# Object-Graph Navigation Language - OGNL

[![Java CI](https://github.com/orphan-oss/ognl/actions/workflows/maven.yml/badge.svg)](https://github.com/orphan-oss/ognl/actions/workflows/maven.yml)
[![Maven Central](https://maven-badges.sml.io/sonatype-central/ognl/ognl/badge.svg)](https://maven-badges.sml.io/sonatype-central/ognl/ognl/)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=orphan-oss_ognl&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=orphan-oss_ognl)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=orphan-oss_ognl&metric=coverage)](https://sonarcloud.io/summary/new_code?id=orphan-oss_ognl)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6490/badge)](https://bestpractices.coreinfrastructure.org/projects/6490)
[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)

## Note

I recently renamed the `master` branch into the `main` branch. If you previously cloned this repository please
perform locally update of your clone using the procedure described in [Updating a local clone after a branch name changes](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch#updating-a-local-clone-after-a-branch-name-changes).

## Description

OGNL stands for Object-Graph Navigation Language; it is an expression language for getting and setting 
properties of Java objects. You use the same expression for both getting and setting the value of a property.

The `ognl.Ognl` class contains convenience methods for evaluating OGNL expressions. You can do this in two stages, parsing 
an expression into an internal form and then using that internal form to either set or get the value of a property;
or you can do it in a single stage, and get or set a property using the String form of the expression directly.

OGNL started out as a way to set up associations between UI components and controllers using property names. As the desire 
for more complicated associations grew, Drew Davidson created what he called KVCL, for Key-Value Coding Language, egged 
on by Luke Blanshard. Luke then reimplemented the language using ANTLR, came up with the new name, and, egged on by Drew, 
filled it out to its current state. Later on Luke again reimplemented the language using JavaCC. Further maintenance 
on all the code is done by Drew (with spiritual guidance from Luke).

We pronounce OGNL as a word, like the last syllables of a drunken pronunciation of "orthogonal."

 - [Language Guide](docs/LanguageGuide.md)
 - [Developer Guide](docs/DeveloperGuide.md)
 - [Version Notes](docs/VersionNotes.md)

## Apache Commons OGNL project

Sometimes ago this project has been migrated to [Apache Commons](http://commons.apache.org/ognl/) 
with a plan to maintain it there. Right now that project is considered dead and not actively maintained. There is
no plans to release a new version under Apache Software Foundation umbrella and all the future development will happen here. 

## Commercial Support

The project maintaners are working with Tidelift to provide commercial support and invest paid working time in the improvement of the projects. 
For more information, visit the [Tidelift resources](https://tidelift.com/subscription/pkg/maven-ognl.ognl?utm_source=maven-ognl.ognl&utm_medium=referral&utm_campaign=enterprise) regarding OGNL.

## Contributing

If you would like to start contributing to this project please follow the following guidelines:
- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
- [First-contributions project](https://github.com/firstcontributions/first-contributions)

Even the smallest contribution makes sense, like improving code formatting, fixing a typo documentation. Do not hesitate
to ask or report an issue.

## FAQ
 - How to define an AccessMember?
   - the best way is to implement your own `AccessMember` which will suite your project best, you can base on existing
     [DefaultAccessMember](src/test/java/ognl/DefaultMemberAccess.java) and adjust it to your needs.
     Since version 3.2.16 there is `AbstractAccessMemeber` which can be used a start point for your own implementation,
     see the example below:
     ```
        MemberAccess memberAccess = new AbstractMemberAccess() {
            @Override
            public boolean isAccessible(Map context, Object target, Member member, String propertyName) {
                int modifiers = member.getModifiers();
                return Modifier.isPublic(modifiers);
            }
        };
     ```
 - How to use the latest SNAPSHOT version?
   - Define OSS Sonatype repository in `~/.m2/settings.xml` as follows:
     ```xml
     <settings>
         <servers>
         ...
         </servers>
         <profiles>
             <profile>
                 <id>local</id>
                 <activation>
                     <activeByDefault>true</activeByDefault>
                 </activation>
                 <repositories>
                     <repository>
                         <id>oss-snapshots</id>
                         <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
                         <layout>default</layout>
                         <snapshots>
                             <enabled>true</enabled>
                         </snapshots>
                     </repository>
                 </repositories>
             </profile>
         </profiles>
     </settings>
     ```
     and now you can use SNAPSHOT version of OGNL in your project,


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

Use only the supported versions

| Version | Supported          |
| ------- | ------------------ |
| 3.4.x   | :white_check_mark: |
| 3.3.x   | :x:                |
| 3.2.x   | :x:                |
| 3.1.x   | :x:                |
| 3.0.x   | :x:                |

## Reporting a Vulnerability

Do not report security vulnerabilities using Github Issues, please contact [security@orphan.software](mailto:security@orphan.software) or contact [Tidelift Security](https://tidelift.com/security) directly before taking any action .


================================================
FILE: benchmarks/etc/ognl-runtime-benchmark-baseline.json
================================================
[
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.constantExpressionCompiled",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.21785886246522956,
            "scoreError" : 0.03018147943769192,
            "scoreConfidence" : [
                0.18767738302753764,
                0.24804034190292149
            ],
            "scorePercentiles" : {
                "0.0" : 0.036782071796372745,
                "50.0" : 0.23805617224981002,
                "90.0" : 0.23896965025431835,
                "95.0" : 0.23952315914459757,
                "99.0" : 0.2395834304932379,
                "99.9" : 0.2395834304932379,
                "99.99" : 0.2395834304932379,
                "99.999" : 0.2395834304932379,
                "99.9999" : 0.2395834304932379,
                "100.0" : 0.2395834304932379
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.23865140397096707,
                    0.23897549057996254,
                    0.23891708732352057,
                    0.23835884902457555,
                    0.23871512562573236
                ],
                [
                    0.03682544596894528,
                    0.03681009960056216,
                    0.03684371899928783,
                    0.036782071796372745,
                    0.036792286729139874
                ],
                [
                    0.23713514089384732,
                    0.23715265923602807,
                    0.23741178325987036,
                    0.23732573703394405,
                    0.23725367075949994
                ],
                [
                    0.237548966233403,
                    0.23799373563088524,
                    0.23838859950542324,
                    0.2377209662004787,
                    0.23757572085370857
                ],
                [
                    0.23831041063628455,
                    0.2381337878440946,
                    0.23809261717626376,
                    0.23803612295821794,
                    0.2382727408139246
                ],
                [
                    0.23602626808481722,
                    0.23612378731857708,
                    0.2361808048362649,
                    0.23587185807697023,
                    0.23615284886876747
                ],
                [
                    0.23934618597951363,
                    0.2395497789502868,
                    0.2395013793035791,
                    0.2395834304932379,
                    0.23857728726354155
                ],
                [
                    0.2384609392844475,
                    0.23808289348453024,
                    0.23807080260281063,
                    0.23779660981327377,
                    0.23830022363028977
                ],
                [
                    0.2380848157487997,
                    0.2379425997661245,
                    0.23804154189680943,
                    0.23747309300889918,
                    0.23787742264464817
                ],
                [
                    0.23854952707547666,
                    0.23826206183994297,
                    0.23839621545360246,
                    0.23826062453929023,
                    0.23840588464203558
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.constantExpressionInterpreted",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.04272498866889172,
            "scoreError" : 4.0815026833279185E-5,
            "scoreConfidence" : [
                0.04268417364205844,
                0.042765803695724997
            ],
            "scorePercentiles" : {
                "0.0" : 0.04248629433945735,
                "50.0" : 0.04273522111097851,
                "90.0" : 0.042831265561411064,
                "95.0" : 0.042847592369982264,
                "99.0" : 0.042881426492322475,
                "99.9" : 0.042881426492322475,
                "99.99" : 0.042881426492322475,
                "99.999" : 0.042881426492322475,
                "99.9999" : 0.042881426492322475,
                "100.0" : 0.042881426492322475
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.042833341356313816,
                    0.04280494186398773,
                    0.042711629444553666,
                    0.0427866491204488,
                    0.042688583416898976
                ],
                [
                    0.042631004855829706,
                    0.04278364177985903,
                    0.04275747989293857,
                    0.04275549757969144,
                    0.04273348261886908
                ],
                [
                    0.04271014916383902,
                    0.042675562261277104,
                    0.042505679333536876,
                    0.04270625670875453,
                    0.042680210127576265
                ],
                [
                    0.042694612288823104,
                    0.042777636932445816,
                    0.04284829960761433,
                    0.04277579766839454,
                    0.042881426492322475
                ],
                [
                    0.04275697705908184,
                    0.04267343047606158,
                    0.04273485454039626,
                    0.0426229671793379,
                    0.04273011153027409
                ],
                [
                    0.042715771626300136,
                    0.04264915236190098,
                    0.042783171166586004,
                    0.042761808777012224,
                    0.042752811277094314
                ],
                [
                    0.04262411492378655,
                    0.04281258340728631,
                    0.042803977098053274,
                    0.04278243670992074,
                    0.04284160803870031
                ],
                [
                    0.04276583000063217,
                    0.042847013721010574,
                    0.042735587681560765,
                    0.04277096991663798,
                    0.04248629433945735
                ],
                [
                    0.04262397235869834,
                    0.04275372021244837,
                    0.04258856414654997,
                    0.042776966060787534,
                    0.0427362031947739
                ],
                [
                    0.04272952591924901,
                    0.042717467012950705,
                    0.042653324532282114,
                    0.04266244361239088,
                    0.042613892049388764
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationAndComparisonExpressionCompiled",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.19687898420026478,
            "scoreError" : 4.299416347849553E-4,
            "scoreConfidence" : [
                0.19644904256547982,
                0.19730892583504975
            ],
            "scorePercentiles" : {
                "0.0" : 0.19362440890937926,
                "50.0" : 0.19705926590410616,
                "90.0" : 0.19767431662739016,
                "95.0" : 0.19774768667965956,
                "99.0" : 0.19777187966959967,
                "99.9" : 0.19777187966959967,
                "99.99" : 0.19777187966959967,
                "99.999" : 0.19777187966959967,
                "99.9999" : 0.19777187966959967,
                "100.0" : 0.19777187966959967
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.19362440890937926,
                    0.19424291592121987,
                    0.19469741408249816,
                    0.19671245392881795,
                    0.19723145997928762
                ],
                [
                    0.19714620817233064,
                    0.19705434337718414,
                    0.1965862541418985,
                    0.1968387365586376,
                    0.1969860706126541
                ],
                [
                    0.1968793900420804,
                    0.19705477111671457,
                    0.19710329597605045,
                    0.19694801286649838,
                    0.1964221380936104
                ],
                [
                    0.19743481413708933,
                    0.19704042024398827,
                    0.1968827107263661,
                    0.196958265133343,
                    0.19706376069149775
                ],
                [
                    0.1970525215095089,
                    0.19712168545287595,
                    0.19553275975251633,
                    0.19626740020019767,
                    0.1970466514750965
                ],
                [
                    0.1950941077828834,
                    0.19740693448299815,
                    0.19729695539619865,
                    0.1973499752207165,
                    0.1973149346538485
                ],
                [
                    0.19730919187874418,
                    0.19720416362467466,
                    0.19735330397223502,
                    0.19658247392326308,
                    0.19732525080865007
                ],
                [
                    0.19767803922023344,
                    0.19738116855149765,
                    0.19771298281430622,
                    0.19775219377991446,
                    0.19777187966959967
                ],
                [
                    0.19705368236808787,
                    0.19774399905217827,
                    0.19729545194862297,
                    0.1974867601466585,
                    0.19582384425099467
                ],
                [
                    0.19764081329180058,
                    0.197347687948318,
                    0.197040577518173,
                    0.19690692795115017,
                    0.19714704665615046
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationAndComparisonExpressionInterpreted",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.0014216685535989933,
            "scoreError" : 1.4671532821293609E-5,
            "scoreConfidence" : [
                0.0014069970207776998,
                0.0014363400864202869
            ],
            "scorePercentiles" : {
                "0.0" : 0.0013330312173652251,
                "50.0" : 0.0014288971082600163,
                "90.0" : 0.0014524967534770073,
                "95.0" : 0.0014533271515117154,
                "99.0" : 0.0014579522905492329,
                "99.9" : 0.0014579522905492329,
                "99.99" : 0.0014579522905492329,
                "99.999" : 0.0014579522905492329,
                "99.9999" : 0.0014579522905492329,
                "100.0" : 0.0014579522905492329
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.001355758741165945,
                    0.0013649314540947186,
                    0.0013651429848169244,
                    0.0013595173835770948,
                    0.0013330312173652251
                ],
                [
                    0.0014358120557608268,
                    0.0013803820868413114,
                    0.00136794932611049,
                    0.0014363881006857612,
                    0.0014384961313341175
                ],
                [
                    0.0014491383769381857,
                    0.0014469578876113113,
                    0.0014530794186977621,
                    0.0014579522905492329,
                    0.001453629936062103
                ],
                [
                    0.0014215481238867831,
                    0.0014168844463751944,
                    0.0014440216675016989,
                    0.001445931884835103,
                    0.0014261867862730346
                ],
                [
                    0.001428242184224957,
                    0.001395439040548544,
                    0.0014355883739968693,
                    0.0014424708741925137,
                    0.0014456820244281349
                ],
                [
                    0.0014240407483746631,
                    0.0013981851598547789,
                    0.0014391355823059077,
                    0.0014212087867605677,
                    0.0014357712159220554
                ],
                [
                    0.0014525213458418933,
                    0.0014522754221930325,
                    0.0014529401102833725,
                    0.0014492584871263197,
                    0.0014422897501743487
                ],
                [
                    0.0014014544273380954,
                    0.0014309500125620292,
                    0.0014351758328241498,
                    0.0014281395776475398,
                    0.0014295520322950756
                ],
                [
                    0.0014169438457974446,
                    0.0014275888377615438,
                    0.0014310907584868754,
                    0.0014194596792938775,
                    0.00144143549982489
                ],
                [
                    0.001393527100088176,
                    0.0014195517085851407,
                    0.0014141808357292828,
                    0.0014079515446611837,
                    0.0014186365803435983
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationExpressionCompiled",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.18256560401030889,
            "scoreError" : 5.853082858054677E-4,
            "scoreConfidence" : [
                0.18198029572450342,
                0.18315091229611435
            ],
            "scorePercentiles" : {
                "0.0" : 0.17519323353893249,
                "50.0" : 0.18281450096680396,
                "90.0" : 0.18319365473834348,
                "95.0" : 0.18333844000538088,
                "99.0" : 0.18361191353526676,
                "99.9" : 0.18361191353526676,
                "99.99" : 0.18361191353526676,
                "99.999" : 0.18361191353526676,
                "99.9999" : 0.18361191353526676,
                "100.0" : 0.18361191353526676
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.1828670156570737,
                    0.1827622142425891,
                    0.18276985765430112,
                    0.18275187587298916,
                    0.18294575610152522
                ],
                [
                    0.18147756200099968,
                    0.1813156988477983,
                    0.18173941142480146,
                    0.18129559209248544,
                    0.18183847847739407
                ],
                [
                    0.18298415463601134,
                    0.18299043389097852,
                    0.1826428544123203,
                    0.18267299835347017,
                    0.18241414365915293
                ],
                [
                    0.1831182167918252,
                    0.17519323353893249,
                    0.18284648320769806,
                    0.1830975771972494,
                    0.18277847525040164
                ],
                [
                    0.1822558536484412,
                    0.18292210792845412,
                    0.18289366855085543,
                    0.18284702965998184,
                    0.1819663466921657
                ],
                [
                    0.18278181586228023,
                    0.18278251872590986,
                    0.18254633590678818,
                    0.18301857288726964,
                    0.18277489313191425
                ],
                [
                    0.1831906585920126,
                    0.18293485182383873,
                    0.18319311124434948,
                    0.18276838294941586,
                    0.18361191353526676
                ],
                [
                    0.18311589539448916,
                    0.18332368998886564,
                    0.18335646780334397,
                    0.1831323006714751,
                    0.18319371512656504
                ],
                [
                    0.18307737789255388,
                    0.18311942142949805,
                    0.18298454232971031,
                    0.18322889943919163,
                    0.1830480837676349
                ],
                [
                    0.18232478204708372,
                    0.18221520617434434,
                    0.1824179685923412,
                    0.18251659582162105,
                    0.1822351595877831
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationExpressionInterpreted",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.0014589074582631153,
            "scoreError" : 1.401117879932019E-5,
            "scoreConfidence" : [
                0.0014448962794637952,
                0.0014729186370624355
            ],
            "scorePercentiles" : {
                "0.0" : 0.0013150937049245305,
                "50.0" : 0.0014654509814346353,
                "90.0" : 0.0014797222294411548,
                "95.0" : 0.0014830328607784058,
                "99.0" : 0.0014852103085103423,
                "99.9" : 0.0014852103085103423,
                "99.99" : 0.0014852103085103423,
                "99.999" : 0.0014852103085103423,
                "99.9999" : 0.0014852103085103423,
                "100.0" : 0.0014852103085103423
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.0014368984855318526,
                    0.0014183254011457696,
                    0.0014676153104276393,
                    0.001466197541071527,
                    0.0014658613005413931
                ],
                [
                    0.0014697483726035523,
                    0.0014606920772280614,
                    0.001464098377568244,
                    0.001416026160437938,
                    0.0014447334551263213
                ],
                [
                    0.0014852103085103423,
                    0.0014678942047319167,
                    0.0014833110702798327,
                    0.0014735075945547398,
                    0.0013150937049245305
                ],
                [
                    0.0014705061339435688,
                    0.0014559555046992976,
                    0.0014608589273809546,
                    0.001468312850423742,
                    0.001468467501964901
                ],
                [
                    0.0014754347496102936,
                    0.001475307572814325,
                    0.0014756362850625565,
                    0.0014746798535388676,
                    0.00147429564340685
                ],
                [
                    0.0014665558888723696,
                    0.0014772593335505005,
                    0.0014454674872117577,
                    0.0014731765128266996,
                    0.0014568016112198336
                ],
                [
                    0.0014648284343994808,
                    0.001482805234822693,
                    0.0014736075565049194,
                    0.0013909399907111354,
                    0.001411288429811104
                ],
                [
                    0.0014564379422907904,
                    0.001458767067865191,
                    0.0014626443315743224,
                    0.0014567906171473436,
                    0.001456440695622117
                ],
                [
                    0.0014802495981411441,
                    0.0014797576357525337,
                    0.0014786381806180919,
                    0.0014794035726387452,
                    0.0014647423158348257
                ],
                [
                    0.0014648008630993802,
                    0.0014646217770548332,
                    0.0014650406623278774,
                    0.0014626783635891803,
                    0.0014369604221398664
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationWithMapExpressionCompiled",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.1230855669818411,
            "scoreError" : 1.627769905744729E-4,
            "scoreConfidence" : [
                0.12292278999126663,
                0.12324834397241557
            ],
            "scorePercentiles" : {
                "0.0" : 0.12244521391098585,
                "50.0" : 0.12301609292593685,
                "90.0" : 0.12362052228239559,
                "95.0" : 0.12376767404135422,
                "99.0" : 0.1238093824915757,
                "99.9" : 0.1238093824915757,
                "99.99" : 0.1238093824915757,
                "99.999" : 0.1238093824915757,
                "99.9999" : 0.1238093824915757,
                "100.0" : 0.1238093824915757
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.12333499853510371,
                    0.12341343513520953,
                    0.1234280565041436,
                    0.1228099048010937,
                    0.12312316118845974
                ],
                [
                    0.1238093824915757,
                    0.12364190736886803,
                    0.12375739511144779,
                    0.12378023717790654,
                    0.12369664863369528
                ],
                [
                    0.12302402877342265,
                    0.12337164346465745,
                    0.12342075063818535,
                    0.12321120154586687,
                    0.12297956196994424
                ],
                [
                    0.12268804960618454,
                    0.12316474410547548,
                    0.12272699268452819,
                    0.12299452849009124,
                    0.12260445406467538
                ],
                [
                    0.12289502469677242,
                    0.12244521391098585,
                    0.12293074079506856,
                    0.12300221471189939,
                    0.12303512252189497
                ],
                [
                    0.12268023393353647,
                    0.12289277665379948,
                    0.1231381951238994,
                    0.12284521773859544,
                    0.12278411733271091
                ],
                [
                    0.12300815707845106,
                    0.12321125906879414,
                    0.12296638737213954,
                    0.12318123628433598,
                    0.12282197491269464
                ],
                [
                    0.12299922585763041,
                    0.12337774274311249,
                    0.12332898749764402,
                    0.12337031852247464,
                    0.12340625016294382
                ],
                [
                    0.12298208709900253,
                    0.12264583538338027,
                    0.12290797410529865,
                    0.12257032022520939,
                    0.12291678701239842
                ],
                [
                    0.12309991445084548,
                    0.12305673586456252,
                    0.12320247623211752,
                    0.12294127160655731,
                    0.1226534679027651
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationWithMapExpressionInterpreted",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.0011559228794831796,
            "scoreError" : 7.584148289635636E-6,
            "scoreConfidence" : [
                0.001148338731193544,
                0.0011635070277728153
            ],
            "scorePercentiles" : {
                "0.0" : 0.0010971750517651381,
                "50.0" : 0.0011598879939759858,
                "90.0" : 0.0011707682494322795,
                "95.0" : 0.0011724082710653913,
                "99.0" : 0.0011789632567641357,
                "99.9" : 0.0011789632567641357,
                "99.99" : 0.0011789632567641357,
                "99.999" : 0.0011789632567641357,
                "99.9999" : 0.0011789632567641357,
                "100.0" : 0.0011789632567641357
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.0011505930563896123,
                    0.0011625007901277808,
                    0.0011603345442978764,
                    0.001157632482060026,
                    0.0011640238137172892
                ],
                [
                    0.0011707918933362665,
                    0.0011583112383725255,
                    0.0011789632567641357,
                    0.0011705554542963967,
                    0.0011337791179144461
                ],
                [
                    0.0011587180308913615,
                    0.0011398302031555296,
                    0.0011450442933856823,
                    0.0011641247093575073,
                    0.001166812726386446
                ],
                [
                    0.0011626143877269256,
                    0.0011615931016714267,
                    0.0011655167364492023,
                    0.0011599172358505983,
                    0.001164768640200726
                ],
                [
                    0.0011548260372791874,
                    0.0011581827807300154,
                    0.0011495469319815802,
                    0.001159858752101373,
                    0.0011581441733627875
                ],
                [
                    0.0010971750517651381,
                    0.0011387683555255988,
                    0.0011310687722074818,
                    0.0011373866609747801,
                    0.0011360724226040357
                ],
                [
                    0.0011472594506932346,
                    0.0011658626564049004,
                    0.0011633712164182588,
                    0.0011591400895243614,
                    0.0011563692299630236
                ],
                [
                    0.0011692069065443282,
                    0.0011505443242710782,
                    0.0011318619467975692,
                    0.0011594578092869866,
                    0.0011665162978994335
                ],
                [
                    0.0011717195556158735,
                    0.00116762442162564,
                    0.0011443871713886636,
                    0.0011711276044616583,
                    0.0011732500343925795
                ],
                [
                    0.0011200723950483187,
                    0.0011701553018363512,
                    0.0011659699657065158,
                    0.0011638499175978252,
                    0.0011609420277986118
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.singlePropertyExpressionCompiled",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.42685424620235685,
            "scoreError" : 0.001392131635588364,
            "scoreConfidence" : [
                0.42546211456676847,
                0.4282463778379452
            ],
            "scorePercentiles" : {
                "0.0" : 0.4202183601673775,
                "50.0" : 0.42678756952829544,
                "90.0" : 0.43033392791805425,
                "95.0" : 0.43116479540797625,
                "99.0" : 0.43219296682469177,
                "99.9" : 0.43219296682469177,
                "99.99" : 0.43219296682469177,
                "99.999" : 0.43219296682469177,
                "99.9999" : 0.43219296682469177,
                "100.0" : 0.43219296682469177
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.4202183601673775,
                    0.4243705826986078,
                    0.427798075296459,
                    0.4240300378630285,
                    0.4211305920262649
                ],
                [
                    0.43007941994206167,
                    0.4290113557287929,
                    0.42527029591600224,
                    0.4295974454925142,
                    0.4253782800200924
                ],
                [
                    0.4306473212980555,
                    0.42760929272638754,
                    0.420354439452853,
                    0.4261842470569711,
                    0.42964472467694953
                ],
                [
                    0.42246502155099275,
                    0.4251405656579936,
                    0.4233022906817506,
                    0.4237510530394177,
                    0.42634678255278297
                ],
                [
                    0.4243854362813425,
                    0.4250736206210216,
                    0.4262231051616039,
                    0.4258378041826735,
                    0.42657073381755334
                ],
                [
                    0.42724687978505166,
                    0.42596786102319184,
                    0.42773800821251823,
                    0.42715833000524345,
                    0.4263313672428556
                ],
                [
                    0.43179726376454614,
                    0.42971060060774535,
                    0.42829671902726035,
                    0.429406906720605,
                    0.42861632407670763
                ],
                [
                    0.4303364840065042,
                    0.43219296682469177,
                    0.43035951770049097,
                    0.42760811006964605,
                    0.4298921224518407
                ],
                [
                    0.42826895865396925,
                    0.4250707712346388,
                    0.4252064162792751,
                    0.4265006221755037,
                    0.4244215442557991
                ],
                [
                    0.4301530974101937,
                    0.42708447195293353,
                    0.4303109231220044,
                    0.425610754366033,
                    0.42700440523903754
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.singlePropertyExpressionInterpreted",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 0.006189197725125023,
            "scoreError" : 2.3556306889227494E-5,
            "scoreConfidence" : [
                0.006165641418235795,
                0.006212754032014251
            ],
            "scorePercentiles" : {
                "0.0" : 0.006099220704400432,
                "50.0" : 0.006176853114556585,
                "90.0" : 0.006259681429963715,
                "95.0" : 0.00626388884417367,
                "99.0" : 0.006265840407457353,
                "99.9" : 0.006265840407457353,
                "99.99" : 0.006265840407457353,
                "99.999" : 0.006265840407457353,
                "99.9999" : 0.006265840407457353,
                "100.0" : 0.006265840407457353
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    0.006224255900123771,
                    0.006216199295010052,
                    0.006225168742536318,
                    0.0062198920881069856,
                    0.006217496718379897
                ],
                [
                    0.006260784058695964,
                    0.006262161682381331,
                    0.00626446760961807,
                    0.006263415308810069,
                    0.006265840407457353
                ],
                [
                    0.006102219784422046,
                    0.006099220704400432,
                    0.006099406638767586,
                    0.0061111656275572085,
                    0.00610638073827144
                ],
                [
                    0.006148607623892926,
                    0.006150535819228834,
                    0.00616122451886336,
                    0.00615716796333728,
                    0.006157587691483904
                ],
                [
                    0.006155898800383555,
                    0.006146913540166463,
                    0.006135027189253863,
                    0.006147280387846762,
                    0.0061359715496389225
                ],
                [
                    0.006200011517849687,
                    0.006192567066186918,
                    0.006192652530058848,
                    0.0061735919845837045,
                    0.0061985507630424935
                ],
                [
                    0.00624935786871587,
                    0.006241457112979463,
                    0.006246024542408933,
                    0.006249757771373476,
                    0.00623852537175972
                ],
                [
                    0.006220591762618625,
                    0.006225530935171328,
                    0.006224134217467766,
                    0.006225912093466367,
                    0.006225867149977851
                ],
                [
                    0.00617668403363726,
                    0.0061699218549076335,
                    0.00616933047929752,
                    0.006170062034435757,
                    0.0061675864317698335
                ],
                [
                    0.006174350404251687,
                    0.006173122064707305,
                    0.0061770221954759105,
                    0.006167154754876996,
                    0.006175828926595799
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceFakeGenericMultipleThreads",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.218240358241585E-8,
            "scoreError" : 2.05521344290243E-10,
            "scoreConfidence" : [
                1.1976882238125607E-8,
                1.2387924926706093E-8
            ],
            "scorePercentiles" : {
                "0.0" : 1.1410746570944425E-8,
                "50.0" : 1.2229795247495642E-8,
                "90.0" : 1.254723462427977E-8,
                "95.0" : 1.317888696988531E-8,
                "99.0" : 1.3301447748860085E-8,
                "99.9" : 1.3301447748860085E-8,
                "99.99" : 1.3301447748860085E-8,
                "99.999" : 1.3301447748860085E-8,
                "99.9999" : 1.3301447748860085E-8,
                "100.0" : 1.3301447748860085E-8
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    1.255253250544193E-8,
                    1.2752690816290774E-8,
                    1.3133071823979945E-8,
                    1.3301447748860085E-8,
                    1.3234883259325205E-8
                ],
                [
                    1.1488963174439741E-8,
                    1.1647528118195715E-8,
                    1.2135304836575125E-8,
                    1.2265889876289669E-8,
                    1.244738495168379E-8
                ],
                [
                    1.1890347830604254E-8,
                    1.1659028459823521E-8,
                    1.2081905576214577E-8,
                    1.2172627301373773E-8,
                    1.2193700618701616E-8
                ],
                [
                    1.1512244648376461E-8,
                    1.1410746570944425E-8,
                    1.1853822466421107E-8,
                    1.2057095332471909E-8,
                    1.1951564884970565E-8
                ],
                [
                    1.1536106885937193E-8,
                    1.162023145355186E-8,
                    1.2380363818456452E-8,
                    1.232004496505568E-8,
                    1.2281543683210444E-8
                ],
                [
                    1.2465709924452793E-8,
                    1.1828433131376144E-8,
                    1.2361289724748185E-8,
                    1.2306713840926252E-8,
                    1.2299096691708177E-8
                ],
                [
                    1.2099520957441571E-8,
                    1.1812265781779913E-8,
                    1.2347453774141573E-8,
                    1.2348463878260165E-8,
                    1.2267081271366719E-8
                ],
                [
                    1.1890314299987363E-8,
                    1.1677597485036312E-8,
                    1.2382711374585787E-8,
                    1.2482275876384646E-8,
                    1.249955369382032E-8
                ],
                [
                    1.2054546980870276E-8,
                    1.1852980068247998E-8,
                    1.209165467172198E-8,
                    1.241811620742088E-8,
                    1.2362496233717974E-8
                ],
                [
                    1.2180685519292696E-8,
                    1.1967800119163984E-8,
                    1.2348491384190168E-8,
                    1.2410626164472346E-8,
                    1.2483228458482214E-8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceFakeGenericSingleThread",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 6.856017979488916E-9,
            "scoreError" : 3.4273359127384776E-11,
            "scoreConfidence" : [
                6.821744620361532E-9,
                6.890291338616301E-9
            ],
            "scorePercentiles" : {
                "0.0" : 6.702692297225796E-9,
                "50.0" : 6.845058215300912E-9,
                "90.0" : 6.972075424714753E-9,
                "95.0" : 6.974805681872632E-9,
                "99.0" : 6.98402837914835E-9,
                "99.9" : 6.98402837914835E-9,
                "99.99" : 6.98402837914835E-9,
                "99.999" : 6.98402837914835E-9,
                "99.9999" : 6.98402837914835E-9,
                "100.0" : 6.98402837914835E-9
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    6.853227127919607E-9,
                    6.849355521242589E-9,
                    6.856286113540408E-9,
                    6.8485768227369564E-9,
                    6.828167425553259E-9
                ],
                [
                    6.810398286948218E-9,
                    6.819363948280015E-9,
                    6.82079252302541E-9,
                    6.828551381393898E-9,
                    6.826923241219361E-9
                ],
                [
                    6.840567381714661E-9,
                    6.833123187462826E-9,
                    6.841524627077997E-9,
                    6.835387224627686E-9,
                    6.8524607167344796E-9
                ],
                [
                    6.920910814128698E-9,
                    6.911654731581781E-9,
                    6.958294529327012E-9,
                    6.919472664813523E-9,
                    6.922952180607796E-9
                ],
                [
                    6.71087070543809E-9,
                    6.71335894768766E-9,
                    6.7132830005260045E-9,
                    6.718944024956293E-9,
                    6.702692297225796E-9
                ],
                [
                    6.974417745043749E-9,
                    6.98402837914835E-9,
                    6.973606635313391E-9,
                    6.974566142579633E-9,
                    6.975098452119632E-9
                ],
                [
                    6.847143592709135E-9,
                    6.835814134916784E-9,
                    6.83646698570329E-9,
                    6.841617465606336E-9,
                    6.842972837892689E-9
                ],
                [
                    6.848401296091644E-9,
                    6.8488127395752E-9,
                    6.8506593327526905E-9,
                    6.8367718532274945E-9,
                    6.8513548549331805E-9
                ],
                [
                    6.923532429883763E-9,
                    6.914979982283802E-9,
                    6.914294437190247E-9,
                    6.9185719504520185E-9,
                    6.9132068108443405E-9
                ],
                [
                    6.831926338607461E-9,
                    6.825520941845912E-9,
                    6.833950849132061E-9,
                    6.828852745334356E-9,
                    6.837190615488607E-9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceMultipleClassesMultipleMethodsMultipleThreads",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 3.6933177630490017E-10,
            "scoreError" : 3.1643608457982276E-12,
            "scoreConfidence" : [
                3.6616741545910194E-10,
                3.724961371506984E-10
            ],
            "scorePercentiles" : {
                "0.0" : 3.5339495371824477E-10,
                "50.0" : 3.6994053973391465E-10,
                "90.0" : 3.771786467752733E-10,
                "95.0" : 3.784399779005753E-10,
                "99.0" : 3.7981014368818215E-10,
                "99.9" : 3.7981014368818215E-10,
                "99.99" : 3.7981014368818215E-10,
                "99.999" : 3.7981014368818215E-10,
                "99.9999" : 3.7981014368818215E-10,
                "100.0" : 3.7981014368818215E-10
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    3.647605428961105E-10,
                    3.662035381947934E-10,
                    3.636293798366089E-10,
                    3.672006486749277E-10,
                    3.671513181554741E-10
                ],
                [
                    3.5596596057703686E-10,
                    3.611434959318218E-10,
                    3.604411141071197E-10,
                    3.605809038554304E-10,
                    3.5869793915009636E-10
                ],
                [
                    3.7223889949067254E-10,
                    3.7950177582220396E-10,
                    3.6842375909190396E-10,
                    3.691339734891369E-10,
                    3.7757123414651545E-10
                ],
                [
                    3.772070282793252E-10,
                    3.712735604103268E-10,
                    3.730937755706581E-10,
                    3.743792532255913E-10,
                    3.746956601477299E-10
                ],
                [
                    3.5339495371824477E-10,
                    3.606268853312111E-10,
                    3.588093156134085E-10,
                    3.60125220523309E-10,
                    3.6341520658556556E-10
                ],
                [
                    3.669551838466956E-10,
                    3.7418128858099777E-10,
                    3.6990723048848545E-10,
                    3.7236881768372755E-10,
                    3.750092042259085E-10
                ],
                [
                    3.6958450558885984E-10,
                    3.6985753659490114E-10,
                    3.730777547361143E-10,
                    3.744072626178927E-10,
                    3.6997384897934386E-10
                ],
                [
                    3.68690147364556E-10,
                    3.6684320003969126E-10,
                    3.702353216889408E-10,
                    3.673236039213699E-10,
                    3.6615731011466364E-10
                ],
                [
                    3.775163071981809E-10,
                    3.7099182000469965E-10,
                    3.7981014368818215E-10,
                    3.721449069717632E-10,
                    3.7692321323880667E-10
                ],
                [
                    3.760420698750341E-10,
                    3.743650136691298E-10,
                    3.7521726341219615E-10,
                    3.748421713917879E-10,
                    3.7449834649786084E-10
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceMultipleClassesMultipleMethodsSingleThread",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.3377625184381383E-10,
            "scoreError" : 1.844175010420448E-12,
            "scoreConfidence" : [
                1.319320768333934E-10,
                1.3562042685423427E-10
            ],
            "scorePercentiles" : {
                "0.0" : 1.2151281988507595E-10,
                "50.0" : 1.3496570696796162E-10,
                "90.0" : 1.3547809713325093E-10,
                "95.0" : 1.3595675571722017E-10,
                "99.0" : 1.3603331676410354E-10,
                "99.9" : 1.3603331676410354E-10,
                "99.99" : 1.3603331676410354E-10,
                "99.999" : 1.3603331676410354E-10,
                "99.9999" : 1.3603331676410354E-10,
                "100.0" : 1.3603331676410354E-10
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    1.3495552827548611E-10,
                    1.3494861280976927E-10,
                    1.3493934813379878E-10,
                    1.348977190325047E-10,
                    1.3487568862502493E-10
                ],
                [
                    1.350560214531131E-10,
                    1.349267260377633E-10,
                    1.349312424310286E-10,
                    1.3476039292458625E-10,
                    1.3500833680124972E-10
                ],
                [
                    1.3591509413318428E-10,
                    1.356615184176326E-10,
                    1.3550545759734885E-10,
                    1.3600767543104181E-10,
                    1.3603331676410354E-10
                ],
                [
                    1.3505829964716538E-10,
                    1.3503096008149444E-10,
                    1.3501767829397524E-10,
                    1.350222836381941E-10,
                    1.349211247785485E-10
                ],
                [
                    1.232827283199682E-10,
                    1.235618393636287E-10,
                    1.2366287895240569E-10,
                    1.2151281988507595E-10,
                    1.220154867802751E-10
                ],
                [
                    1.3497588566043714E-10,
                    1.3509640912874515E-10,
                    1.3491390710244323E-10,
                    1.3513176452892365E-10,
                    1.3500684426107433E-10
                ],
                [
                    1.3523185295636954E-10,
                    1.3490487209790087E-10,
                    1.349405297930394E-10,
                    1.351659762664563E-10,
                    1.3491467653172854E-10
                ],
                [
                    1.350749480382141E-10,
                    1.3510011220195366E-10,
                    1.3493163518149941E-10,
                    1.3512923895340048E-10,
                    1.3514047322035178E-10
                ],
                [
                    1.347248651861423E-10,
                    1.3505173417394907E-10,
                    1.3499145734235457E-10,
                    1.3514833132868197E-10,
                    1.3502452375688923E-10
                ],
                [
                    1.3419388805174007E-10,
                    1.3401910489380967E-10,
                    1.3424035573558956E-10,
                    1.3414864997845335E-10,
                    1.3410177721217844E-10
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceNonGenericSingleThread",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 2.9151828493590532E-9,
            "scoreError" : 3.944377719486018E-11,
            "scoreConfidence" : [
                2.875739072164193E-9,
                2.9546266265539133E-9
            ],
            "scorePercentiles" : {
                "0.0" : 2.6559665024121956E-9,
                "50.0" : 2.9197794576134116E-9,
                "90.0" : 2.9938189384584366E-9,
                "95.0" : 3.001529949909771E-9,
                "99.0" : 3.0022860697117797E-9,
                "99.9" : 3.0022860697117797E-9,
                "99.99" : 3.0022860697117797E-9,
                "99.999" : 3.0022860697117797E-9,
                "99.9999" : 3.0022860697117797E-9,
                "100.0" : 3.0022860697117797E-9
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    2.9150938512619187E-9,
                    2.9127606429125684E-9,
                    2.915408144088862E-9,
                    2.914590196027409E-9,
                    2.920864461265813E-9
                ],
                [
                    2.9776874524301403E-9,
                    2.980923434416205E-9,
                    2.975535967498689E-9,
                    2.980857398798669E-9,
                    3.001706065418298E-9
                ],
                [
                    3.0022860697117797E-9,
                    2.990481169845691E-9,
                    2.9941898016376306E-9,
                    2.995188095541049E-9,
                    3.0013858554027947E-9
                ],
                [
                    2.7913622627190414E-9,
                    2.794097014432924E-9,
                    2.6761817726781316E-9,
                    2.657116051548788E-9,
                    2.6559665024121956E-9
                ],
                [
                    2.91869445396101E-9,
                    2.916191082884127E-9,
                    2.8523141121032163E-9,
                    2.9092103383463506E-9,
                    2.9162621624730567E-9
                ],
                [
                    2.8959288793382786E-9,
                    2.898995021533624E-9,
                    2.8932016029968646E-9,
                    2.8893255297556208E-9,
                    2.8969110617809218E-9
                ],
                [
                    2.947546995239791E-9,
                    2.9570415289189245E-9,
                    2.9572736328947623E-9,
                    2.958866077540453E-9,
                    2.974706381011721E-9
                ],
                [
                    2.941959778916469E-9,
                    2.9056470699700475E-9,
                    2.943608973809784E-9,
                    2.938675415800825E-9,
                    2.9418819742644362E-9
                ],
                [
                    2.970856136003441E-9,
                    2.9653255293345765E-9,
                    2.9583209556362793E-9,
                    2.95264066824762E-9,
                    2.9564021241288065E-9
                ],
                [
                    2.892657464675231E-9,
                    2.8758770074408785E-9,
                    2.8925382889608015E-9,
                    2.8907110241725276E-9,
                    2.895888985763669E-9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceNotGenericMultipleThreads",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 7.237642654915351E-9,
            "scoreError" : 6.713711149619497E-11,
            "scoreConfidence" : [
                7.170505543419156E-9,
                7.3047797664115454E-9
            ],
            "scorePercentiles" : {
                "0.0" : 6.8494334055241105E-9,
                "50.0" : 7.238409852926672E-9,
                "90.0" : 7.397368718039454E-9,
                "95.0" : 7.442732323105185E-9,
                "99.0" : 7.539793098256803E-9,
                "99.9" : 7.539793098256803E-9,
                "99.99" : 7.539793098256803E-9,
                "99.999" : 7.539793098256803E-9,
                "99.9999" : 7.539793098256803E-9,
                "100.0" : 7.539793098256803E-9
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    7.309207247018319E-9,
                    7.204913986939781E-9,
                    7.301107347360866E-9,
                    7.227971985594883E-9,
                    6.955289161665703E-9
                ],
                [
                    7.384375219739969E-9,
                    7.539793098256803E-9,
                    7.1214330364272E-9,
                    7.397452156028071E-9,
                    7.278931046102976E-9
                ],
                [
                    7.299436255048755E-9,
                    7.152960757406128E-9,
                    7.37165296570325E-9,
                    7.24544385569135E-9,
                    7.208847336876574E-9
                ],
                [
                    7.073564817687222E-9,
                    7.109813844997201E-9,
                    7.224527465083748E-9,
                    7.196042469520692E-9,
                    7.139944122154705E-9
                ],
                [
                    7.2447545706131E-9,
                    7.164848859577679E-9,
                    7.246048028728349E-9,
                    7.2193064135468106E-9,
                    7.151388238211884E-9
                ],
                [
                    7.423924257204896E-9,
                    7.377383308518475E-9,
                    7.234548809215603E-9,
                    7.325182149604607E-9,
                    7.0583465512636415E-9
                ],
                [
                    7.391433889132328E-9,
                    7.144390195035681E-9,
                    7.45297338921348E-9,
                    7.396617776141905E-9,
                    7.218980935876918E-9
                ],
                [
                    7.253893902260996E-9,
                    7.059637268883382E-9,
                    7.366261971201225E-9,
                    7.19112433537303E-9,
                    6.8494334055241105E-9
                ],
                [
                    7.294428828465356E-9,
                    7.273391359807119E-9,
                    7.192613058360551E-9,
                    7.33132266249728E-9,
                    6.98912444709985E-9
                ],
                [
                    7.354252693880228E-9,
                    7.242270896637741E-9,
                    7.187680894274294E-9,
                    7.434353269016581E-9,
                    7.069508205296277E-9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceRealGenericMultipleThreads",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.2506417202814183E-8,
            "scoreError" : 1.6795536311166225E-10,
            "scoreConfidence" : [
                1.2338461839702521E-8,
                1.2674372565925844E-8
            ],
            "scorePercentiles" : {
                "0.0" : 1.1733735859924257E-8,
                "50.0" : 1.255254892079249E-8,
                "90.0" : 1.2938445000457253E-8,
                "95.0" : 1.3008257332926023E-8,
                "99.0" : 1.3040048230071413E-8,
                "99.9" : 1.3040048230071413E-8,
                "99.99" : 1.3040048230071413E-8,
                "99.999" : 1.3040048230071413E-8,
                "99.9999" : 1.3040048230071413E-8,
                "100.0" : 1.3040048230071413E-8
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    1.2450580080092053E-8,
                    1.2111996004636375E-8,
                    1.2770603940132117E-8,
                    1.2648063423437725E-8,
                    1.2715763471008417E-8
                ],
                [
                    1.2326706782442042E-8,
                    1.2210799128178248E-8,
                    1.2835878531711753E-8,
                    1.2807023702810926E-8,
                    1.2733071615624519E-8
                ],
                [
                    1.2141135447130916E-8,
                    1.2140364012378727E-8,
                    1.2502036942453608E-8,
                    1.2744748833097659E-8,
                    1.2640977566390641E-8
                ],
                [
                    1.2047673738541486E-8,
                    1.184647947048693E-8,
                    1.2332669708897852E-8,
                    1.2398736798383E-8,
                    1.2556915935981821E-8
                ],
                [
                    1.1976943736552175E-8,
                    1.2067670427334915E-8,
                    1.2354869791770663E-8,
                    1.2596231099714954E-8,
                    1.267292838332715E-8
                ],
                [
                    1.228620296228141E-8,
                    1.212459517154207E-8,
                    1.2487777035882146E-8,
                    1.283045661418847E-8,
                    1.2839408073421376E-8
                ],
                [
                    1.2573329908719346E-8,
                    1.2226931345407104E-8,
                    1.2798375934137093E-8,
                    1.3012109822244077E-8,
                    1.2984828746834288E-8
                ],
                [
                    1.2316015858909192E-8,
                    1.1733735859924257E-8,
                    1.238178824599642E-8,
                    1.2548181905603159E-8,
                    1.2590116433774484E-8
                ],
                [
                    1.300510529621125E-8,
                    1.2511845228551519E-8,
                    1.2907209592671529E-8,
                    1.3040048230071413E-8,
                    1.2940719866531116E-8
                ],
                [
                    1.2244654726902586E-8,
                    1.1852327279427286E-8,
                    1.2917971205792497E-8,
                    1.2705604809180103E-8,
                    1.283065141398832E-8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceRealGenericSingleThread",
        "mode" : "thrpt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 7.111649207987639E-9,
            "scoreError" : 3.776570942995927E-11,
            "scoreConfidence" : [
                7.07388349855768E-9,
                7.149414917417598E-9
            ],
            "scorePercentiles" : {
                "0.0" : 6.823621037283706E-9,
                "50.0" : 7.135597966802026E-9,
                "90.0" : 7.182100241676107E-9,
                "95.0" : 7.191592508239966E-9,
                "99.0" : 7.199594725453431E-9,
                "99.9" : 7.199594725453431E-9,
                "99.99" : 7.199594725453431E-9,
                "99.999" : 7.199594725453431E-9,
                "99.9999" : 7.199594725453431E-9,
                "100.0" : 7.199594725453431E-9
            },
            "scoreUnit" : "ops/ns",
            "rawData" : [
                [
                    7.138928928092329E-9,
                    7.1410786827150655E-9,
                    7.137501518592667E-9,
                    7.13255860706166E-9,
                    7.144644554308517E-9
                ],
                [
                    7.119680345718008E-9,
                    7.131499453153948E-9,
                    7.134950063786632E-9,
                    7.130702039926015E-9,
                    7.1465648381229144E-9
                ],
                [
                    7.125470657265963E-9,
                    7.125209697036681E-9,
                    7.133010435919711E-9,
                    7.129294481248521E-9,
                    7.136765881316877E-9
                ],
                [
                    7.143899342093931E-9,
                    7.1448114720701125E-9,
                    7.1163770023688E-9,
                    7.1248457364025385E-9,
                    7.145184731440814E-9
                ],
                [
                    7.142434183210029E-9,
                    7.13171417693858E-9,
                    7.140614766676195E-9,
                    7.128241034663117E-9,
                    7.140839759988699E-9
                ],
                [
                    7.021947224199773E-9,
                    6.832459851331237E-9,
                    6.980876182893762E-9,
                    6.823621037283706E-9,
                    7.13664931570586E-9
                ],
                [
                    7.189978942403097E-9,
                    7.187344901869864E-9,
                    7.193564644262807E-9,
                    7.185245749555078E-9,
                    7.199594725453431E-9
                ],
                [
                    7.084327504316193E-9,
                    7.153790670765373E-9,
                    7.126553173581471E-9,
                    7.128335514143629E-9,
                    7.13624586981742E-9
                ],
                [
                    7.016717081106459E-9,
                    7.025470698237944E-9,
                    7.016135450466004E-9,
                    7.017009003526007E-9,
                    7.0254070773336175E-9
                ],
                [
                    7.151812521170762E-9,
                    7.142951716813401E-9,
                    7.1471777841256826E-9,
                    7.144842075675615E-9,
                    7.147579293225488E-9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.constantExpressionCompiled",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 4.212678763261015,
            "scoreError" : 0.0076870053824087976,
            "scoreConfidence" : [
                4.204991757878606,
                4.220365768643424
            ],
            "scorePercentiles" : {
                "0.0" : 4.185243124004843,
                "50.0" : 4.210598222929628,
                "90.0" : 4.237546820672852,
                "95.0" : 4.238835417400423,
                "99.0" : 4.246978960925418,
                "99.9" : 4.246978960925418,
                "99.99" : 4.246978960925418,
                "99.999" : 4.246978960925418,
                "99.9999" : 4.246978960925418,
                "100.0" : 4.246978960925418
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    4.2020899286376485,
                    4.211640233831468,
                    4.210403879702845,
                    4.2104764237877434,
                    4.239179487715927
                ],
                [
                    4.202757412135211,
                    4.213716586341822,
                    4.206633168069475,
                    4.208667416018454,
                    4.211235707887466
                ],
                [
                    4.196105407813176,
                    4.185243124004843,
                    4.18563796823676,
                    4.188200593541672,
                    4.200358290940981
                ],
                [
                    4.198480788267704,
                    4.203948520004001,
                    4.202704690366885,
                    4.200732046354101,
                    4.197315675942634
                ],
                [
                    4.202971926151868,
                    4.206603909714903,
                    4.200794148364205,
                    4.19659696653266,
                    4.198762981816232
                ],
                [
                    4.246978960925418,
                    4.226637105617118,
                    4.236677771731939,
                    4.2239113125158525,
                    4.2293939978697255
                ],
                [
                    4.221173309377198,
                    4.218562137223888,
                    4.2367399598105155,
                    4.217504433569328,
                    4.218855552494926
                ],
                [
                    4.197184582182064,
                    4.19860460400435,
                    4.210720022071511,
                    4.206636777715365,
                    4.197516693638447
                ],
                [
                    4.212663876955742,
                    4.210796948610319,
                    4.2191925897528595,
                    4.220974820828683,
                    4.2188381091381775
                ],
                [
                    4.238553905324101,
                    4.2378493765499385,
                    4.23348800799394,
                    4.237636471879779,
                    4.235589553088881
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.constantExpressionInterpreted",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 23.476159513605285,
            "scoreError" : 0.044536418857247795,
            "scoreConfidence" : [
                23.431623094748037,
                23.520695932462534
            ],
            "scorePercentiles" : {
                "0.0" : 23.385692680760858,
                "50.0" : 23.44218642376611,
                "90.0" : 23.64765528951581,
                "95.0" : 23.662355635255032,
                "99.0" : 23.761374877781773,
                "99.9" : 23.761374877781773,
                "99.99" : 23.761374877781773,
                "99.999" : 23.761374877781773,
                "99.9999" : 23.761374877781773,
                "100.0" : 23.761374877781773
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    23.437719141044496,
                    23.44426895298397,
                    23.480234187222436,
                    23.44754756586917,
                    23.43497422806599
                ],
                [
                    23.64767057645583,
                    23.508624015993814,
                    23.528581213525456,
                    23.521798411485232,
                    23.52245142633455
                ],
                [
                    23.392906986061632,
                    23.391612935470246,
                    23.45092431410603,
                    23.761374877781773,
                    23.42584728096977
                ],
                [
                    23.429753877299877,
                    23.470297930862348,
                    23.428953816324803,
                    23.47033470342424,
                    23.4385348719052
                ],
                [
                    23.656122910002,
                    23.628020722264882,
                    23.66382803250812,
                    23.64751770705563,
                    23.661150946593413
                ],
                [
                    23.406550364147353,
                    23.43144560300939,
                    23.445786148660567,
                    23.405695056438308,
                    23.425412420656603
                ],
                [
                    23.414575594188914,
                    23.442710639342533,
                    23.41334470427381,
                    23.385692680760858,
                    23.38753238131
                ],
                [
                    23.43375923216899,
                    23.470217323817508,
                    23.409862349102834,
                    23.453153382549623,
                    23.41104635513602
                ],
                [
                    23.441662208189687,
                    23.4274144794497,
                    23.467206642677716,
                    23.42766696960862,
                    23.390157631894077
                ],
                [
                    23.466764198720917,
                    23.407530622932857,
                    23.490985461033954,
                    23.43057244951783,
                    23.630179149065007
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationAndComparisonExpressionCompiled",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 5.07369916848029,
            "scoreError" : 0.009036842912051984,
            "scoreConfidence" : [
                5.0646623255682375,
                5.082736011392342
            ],
            "scorePercentiles" : {
                "0.0" : 5.04760426869117,
                "50.0" : 5.069561009715118,
                "90.0" : 5.098406105564626,
                "95.0" : 5.0990478303194315,
                "99.0" : 5.112493842928659,
                "99.9" : 5.112493842928659,
                "99.99" : 5.112493842928659,
                "99.999" : 5.112493842928659,
                "99.9999" : 5.112493842928659,
                "100.0" : 5.112493842928659
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    5.04760426869117,
                    5.050299977306783,
                    5.05475569576501,
                    5.051356900346964,
                    5.050888484056435
                ],
                [
                    5.097922717330408,
                    5.092853207741855,
                    5.097216797997191,
                    5.0921813526635304,
                    5.0898819058200315
                ],
                [
                    5.075660710123181,
                    5.056595761473845,
                    5.062256815325732,
                    5.056290328044339,
                    5.058531981487619
                ],
                [
                    5.098451893111682,
                    5.112493842928659,
                    5.098988841245382,
                    5.094915272671527,
                    5.098618826763342
                ],
                [
                    5.082909718675992,
                    5.097727382553299,
                    5.083621401362909,
                    5.079458857211658,
                    5.08802028145316
                ],
                [
                    5.067355528985504,
                    5.056138298678848,
                    5.068283848405462,
                    5.06438370397046,
                    5.063853174365042
                ],
                [
                    5.055441300623839,
                    5.059742644280677,
                    5.059122306107231,
                    5.060582693187998,
                    5.0588583300620105
                ],
                [
                    5.058463555883924,
                    5.054646354395205,
                    5.050841735843806,
                    5.055633437779259,
                    5.054097688123031
                ],
                [
                    5.077858967818933,
                    5.07130798920343,
                    5.062256366519151,
                    5.070838171024772,
                    5.075879731685449
                ],
                [
                    5.091265891892027,
                    5.092769084484789,
                    5.099119928076602,
                    5.088720452824153,
                    5.097994017641121
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationAndComparisonExpressionInterpreted",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 702.3919660551082,
            "scoreError" : 5.681206542356396,
            "scoreConfidence" : [
                696.7107595127518,
                708.0731725974647
            ],
            "scorePercentiles" : {
                "0.0" : 690.7375328301506,
                "50.0" : 699.9639456987029,
                "90.0" : 721.8959942243439,
                "95.0" : 723.55435278019,
                "99.0" : 744.0124848709371,
                "99.9" : 744.0124848709371,
                "99.99" : 744.0124848709371,
                "99.999" : 744.0124848709371,
                "99.9999" : 744.0124848709371,
                "100.0" : 744.0124848709371
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    699.2650625406392,
                    702.0580899581502,
                    702.2363107738172,
                    707.4172629253029,
                    703.7206182778015
                ],
                [
                    703.5020836776823,
                    709.7473275693228,
                    705.2556980966034,
                    701.9411327916094,
                    701.2391167555148
                ],
                [
                    696.344307953545,
                    692.3685044504716,
                    690.7375328301506,
                    693.4217671369353,
                    716.0056453717223
                ],
                [
                    708.7312220432993,
                    744.0124848709371,
                    719.23466011605,
                    696.8805025311548,
                    693.8751126512857
                ],
                [
                    721.5951875253407,
                    722.8113309337571,
                    721.9294171908998,
                    722.4126619663224,
                    724.462490592497
                ],
                [
                    691.8527362069032,
                    692.1467071141449,
                    692.7012289900799,
                    697.6634191018752,
                    692.9437190295654
                ],
                [
                    692.7882188491903,
                    692.3194417428853,
                    693.7902455554018,
                    692.0302999692109,
                    693.2198570058273
                ],
                [
                    704.0832457154596,
                    708.2716009254125,
                    709.0992807989484,
                    703.6873112861232,
                    700.0317954263496
                ],
                [
                    691.0228553011165,
                    691.5934019848671,
                    691.2356113684625,
                    691.8243006234165,
                    691.9514995113767
                ],
                [
                    697.8796389475384,
                    699.7763092947165,
                    702.281921019001,
                    699.8960959710561,
                    704.302029485678
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationExpressionCompiled",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 5.483375422308572,
            "scoreError" : 0.011179774091267526,
            "scoreConfidence" : [
                5.472195648217304,
                5.49455519639984
            ],
            "scorePercentiles" : {
                "0.0" : 5.454717662055155,
                "50.0" : 5.478503375701898,
                "90.0" : 5.510791394319896,
                "95.0" : 5.525800689784233,
                "99.0" : 5.57335200131931,
                "99.9" : 5.57335200131931,
                "99.99" : 5.57335200131931,
                "99.999" : 5.57335200131931,
                "99.9999" : 5.57335200131931,
                "100.0" : 5.57335200131931
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    5.478416395688247,
                    5.467756441963081,
                    5.480135666854784,
                    5.487164164793854,
                    5.477951490186059
                ],
                [
                    5.5172353143887065,
                    5.494813376902206,
                    5.477605862557764,
                    5.475473382864657,
                    5.467745502333391
                ],
                [
                    5.467643372275811,
                    5.47088980487035,
                    5.459473250685656,
                    5.464084472855917,
                    5.4662617755223835
                ],
                [
                    5.462501151534489,
                    5.463138277177212,
                    5.45954915364299,
                    5.465125859487712,
                    5.457160184861723
                ],
                [
                    5.494529047930599,
                    5.474820377345847,
                    5.487163014509654,
                    5.484448634917844,
                    5.47859035571555
                ],
                [
                    5.4923066615921385,
                    5.490320751774397,
                    5.490603522637868,
                    5.57335200131931,
                    5.4934859296889815
                ],
                [
                    5.5167436412905815,
                    5.51035701160504,
                    5.510839659065991,
                    5.500752535112931,
                    5.509508374452085
                ],
                [
                    5.473603139672041,
                    5.486192107233305,
                    5.4720789382484964,
                    5.472020173180854,
                    5.490956351377059
                ],
                [
                    5.459342896268209,
                    5.45896417792104,
                    5.463191385526211,
                    5.457629732273535,
                    5.454717662055155
                ],
                [
                    5.497347689076424,
                    5.489147274417496,
                    5.491621799748753,
                    5.53626948193432,
                    5.497741886089842
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationExpressionInterpreted",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 679.1732435698752,
            "scoreError" : 8.548577193783828,
            "scoreConfidence" : [
                670.6246663760915,
                687.721820763659
            ],
            "scorePercentiles" : {
                "0.0" : 665.7810106687843,
                "50.0" : 678.085026629705,
                "90.0" : 689.4791699537317,
                "95.0" : 708.0428738108368,
                "99.0" : 779.4931702277812,
                "99.9" : 779.4931702277812,
                "99.99" : 779.4931702277812,
                "99.999" : 779.4931702277812,
                "99.9999" : 779.4931702277812,
                "100.0" : 779.4931702277812
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    678.3639912178666,
                    678.0584609814931,
                    679.6652154752525,
                    678.1115922779169,
                    679.6734788179346
                ],
                [
                    679.4227971029111,
                    679.885893024413,
                    679.0047881058658,
                    682.0002584427766,
                    705.9136309246767
                ],
                [
                    671.1510834427932,
                    665.8024437247665,
                    667.0842622401946,
                    710.6452817828102,
                    779.4931702277812
                ],
                [
                    668.3074083997186,
                    668.5026652754875,
                    667.0190218714176,
                    669.6054763997806,
                    675.8851982856378
                ],
                [
                    669.9683314378946,
                    671.0671255969364,
                    671.8514463133301,
                    672.5706480386556,
                    672.3573554506798
                ],
                [
                    666.3840441554436,
                    668.1974958845977,
                    666.3434175057929,
                    681.282796703046,
                    665.7810106687843
                ],
                [
                    668.8496086396843,
                    675.3729435938851,
                    668.3368609565813,
                    668.2072014861429,
                    670.8554007523696
                ],
                [
                    676.6288857823113,
                    675.8224381759746,
                    679.9581575963257,
                    679.6543145780016,
                    689.5452243360373
                ],
                [
                    680.0055673098983,
                    679.8027880870974,
                    679.5378429427511,
                    681.6638322582755,
                    680.1771952439908
                ],
                [
                    688.884680512981,
                    697.4584509497643,
                    682.6927045862542,
                    682.1795375103585,
                    683.6287534184123
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationWithMapExpressionCompiled",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 8.123414308199202,
            "scoreError" : 0.014496378489671844,
            "scoreConfidence" : [
                8.10891792970953,
                8.137910686688873
            ],
            "scorePercentiles" : {
                "0.0" : 8.055515736850916,
                "50.0" : 8.129378978414803,
                "90.0" : 8.154097663510694,
                "95.0" : 8.161910446433415,
                "99.0" : 8.175349863209417,
                "99.9" : 8.175349863209417,
                "99.99" : 8.175349863209417,
                "99.999" : 8.175349863209417,
                "99.9999" : 8.175349863209417,
                "100.0" : 8.175349863209417
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    8.124432278617306,
                    8.119729352321361,
                    8.100064744515407,
                    8.106666919659666,
                    8.105609959339107
                ],
                [
                    8.129695672034202,
                    8.132619758061143,
                    8.133018506321315,
                    8.124950507028247,
                    8.1290622847954
                ],
                [
                    8.098671628979277,
                    8.10781423647921,
                    8.0903852678503,
                    8.114732865670165,
                    8.08607827441062
                ],
                [
                    8.126620400790996,
                    8.150363001658617,
                    8.13533573484541,
                    8.153970607766869,
                    8.143369192699273
                ],
                [
                    8.10824525171707,
                    8.100208441142836,
                    8.10974742786035,
                    8.092451336766851,
                    8.101116363003937
                ],
                [
                    8.059346831954553,
                    8.0655584348832,
                    8.067207000816227,
                    8.06624156387142,
                    8.055515736850916
                ],
                [
                    8.133713413488563,
                    8.134503804910993,
                    8.132283377431015,
                    8.125571127709891,
                    8.137233326766927
                ],
                [
                    8.12488782736298,
                    8.175349863209417,
                    8.145227424852688,
                    8.15977518952051,
                    8.141910771050837
                ],
                [
                    8.154111337954895,
                    8.153166417173763,
                    8.140124663592726,
                    8.159573111000894,
                    8.141141486917757
                ],
                [
                    8.152550420013691,
                    8.150125348755626,
                    8.153974593512878,
                    8.164520204882525,
                    8.152142117140281
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.propertyNavigationWithMapExpressionInterpreted",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 857.1613925870099,
            "scoreError" : 6.1584363747836495,
            "scoreConfidence" : [
                851.0029562122263,
                863.3198289617935
            ],
            "scorePercentiles" : {
                "0.0" : 824.1896519970318,
                "50.0" : 859.0435453842059,
                "90.0" : 870.0590452850839,
                "95.0" : 874.6331142506676,
                "99.0" : 889.2012620887944,
                "99.9" : 889.2012620887944,
                "99.99" : 889.2012620887944,
                "99.999" : 889.2012620887944,
                "99.9999" : 889.2012620887944,
                "100.0" : 889.2012620887944
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    855.3559220712914,
                    853.8970487290958,
                    856.9446457251869,
                    849.2515874296292,
                    856.5624886821846
                ],
                [
                    834.776135547951,
                    826.0634199181575,
                    832.5656255228541,
                    832.9911861233393,
                    824.1896519970318
                ],
                [
                    868.093714320431,
                    860.1584182768488,
                    858.6024309549726,
                    861.3180009714056,
                    862.8909122987285
                ],
                [
                    848.4252112980126,
                    845.8224323250091,
                    853.2126812481285,
                    844.1887423101741,
                    848.1008693159945
                ],
                [
                    865.7778282736472,
                    868.2777215890987,
                    870.9266380386422,
                    865.9331097250554,
                    869.5330335734542
                ],
                [
                    860.5725018013658,
                    851.052833198961,
                    852.565048739831,
                    848.455051876433,
                    868.3813106832996
                ],
                [
                    847.0413481762466,
                    879.1632518431433,
                    859.022092509916,
                    860.9451800804145,
                    860.4472667315074
                ],
                [
                    870.1174910308206,
                    858.6033461043527,
                    859.7857985306987,
                    858.7603197997023,
                    866.4357938225781
                ],
                [
                    856.6059854784088,
                    858.0700290661762,
                    889.2012620887944,
                    859.0649982584958,
                    859.3523779738366
                ],
                [
                    862.3928445639077,
                    870.6837174177514,
                    864.356715723321,
                    862.9793908990348,
                    860.1542166851717
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.singlePropertyExpressionCompiled",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 2.3412293359031016,
            "scoreError" : 0.00909435391011207,
            "scoreConfidence" : [
                2.3321349819929895,
                2.3503236898132136
            ],
            "scorePercentiles" : {
                "0.0" : 2.3168019116446423,
                "50.0" : 2.33767011827742,
                "90.0" : 2.3609834546224193,
                "95.0" : 2.366910589781843,
                "99.0" : 2.4318742354614042,
                "99.9" : 2.4318742354614042,
                "99.99" : 2.4318742354614042,
                "99.999" : 2.4318742354614042,
                "99.9999" : 2.4318742354614042,
                "100.0" : 2.4318742354614042
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    2.3393401896393256,
                    2.352886325314782,
                    2.3330290857970715,
                    2.334662682351483,
                    2.3311274400574136
                ],
                [
                    2.3279232412078503,
                    2.3369981439312997,
                    2.3257155770675957,
                    2.344021270214791,
                    2.3228157502480338
                ],
                [
                    2.345455436671617,
                    2.3611110403224322,
                    2.348068337675366,
                    2.336909179733739,
                    2.342048510772919
                ],
                [
                    2.3520320923572524,
                    2.3513075535982977,
                    2.362925664000496,
                    2.361285809744925,
                    2.3548328382971033
                ],
                [
                    2.3292870894847333,
                    2.335195001565128,
                    2.3598351833223044,
                    2.351132652701361,
                    2.4318742354614042
                ],
                [
                    2.3428433518994454,
                    2.33834209262354,
                    2.3398609370931025,
                    2.3717810546257123,
                    2.3490933202108555
                ],
                [
                    2.3179279541618354,
                    2.329418614102727,
                    2.3171947668886332,
                    2.3319851387917336,
                    2.3175789339721833
                ],
                [
                    2.3397369370583183,
                    2.352448204968322,
                    2.329058560926048,
                    2.326727557644771,
                    2.3168019116446423
                ],
                [
                    2.330778738199022,
                    2.330013084244065,
                    2.331542908246752,
                    2.356940028414262,
                    2.33415910374694
                ],
                [
                    2.3321867135896714,
                    2.343748112153039,
                    2.333328098276298,
                    2.3408391058443643,
                    2.335311234290065
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlPerformanceBenchmarks.singlePropertyExpressionInterpreted",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 2,
        "primaryMetric" : {
            "score" : 162.06714052857922,
            "scoreError" : 0.8006111061718928,
            "scoreConfidence" : [
                161.26652942240733,
                162.8677516347511
            ],
            "scorePercentiles" : {
                "0.0" : 160.1723191047914,
                "50.0" : 161.48334465069073,
                "90.0" : 165.11008181336098,
                "95.0" : 165.26375636661982,
                "99.0" : 165.35405811829082,
                "99.9" : 165.35405811829082,
                "99.99" : 165.35405811829082,
                "99.999" : 165.35405811829082,
                "99.9999" : 165.35405811829082,
                "100.0" : 165.35405811829082
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    165.20713270369404,
                    165.35405811829082,
                    165.27406720459737,
                    165.23177127685847,
                    165.25532022645635
                ],
                [
                    164.19986124474886,
                    164.2366238003634,
                    164.17355573622413,
                    164.17962421687227,
                    164.20656514993556
                ],
                [
                    160.48547954366927,
                    160.8562771288926,
                    160.6731879498754,
                    160.84385883318603,
                    160.67842299853774
                ],
                [
                    162.77890393112065,
                    162.6902141464944,
                    162.66825231563274,
                    162.81823424435368,
                    162.76641983321085
                ],
                [
                    160.42689581737193,
                    160.45428784635138,
                    160.67686772595573,
                    160.4683314489738,
                    160.47459045832454
                ],
                [
                    160.9269110802522,
                    161.00911859730383,
                    161.16780133265848,
                    161.3137281498279,
                    161.04527213008535
                ],
                [
                    161.65296115155354,
                    161.86575069491292,
                    161.82319740908474,
                    161.93481585196466,
                    161.9292005925734
                ],
                [
                    160.20944631534792,
                    160.24524424439878,
                    160.1956322730681,
                    160.32405683749238,
                    160.1723191047914
                ],
                [
                    162.92168148271045,
                    163.05162613955872,
                    162.9977757147687,
                    162.82511260915683,
                    162.97704583256134
                ],
                [
                    161.10395123822926,
                    161.09020807969563,
                    161.1916229355633,
                    161.14689472034425,
                    161.15684801106391
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceFakeGenericMultipleThreads",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 8.352387326354313E7,
            "scoreError" : 1273944.5565008267,
            "scoreConfidence" : [
                8.22499287070423E7,
                8.479781782004395E7
            ],
            "scorePercentiles" : {
                "0.0" : 7.994802038461539E7,
                "50.0" : 8.320792673076923E7,
                "90.0" : 8.671046423333333E7,
                "95.0" : 8.853908885833333E7,
                "99.0" : 9.119983481818181E7,
                "99.9" : 9.119983481818181E7,
                "99.99" : 9.119983481818181E7,
                "99.999" : 9.119983481818181E7,
                "99.9999" : 9.119983481818181E7,
                "100.0" : 9.119983481818181E7
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    8.245578976923077E7,
                    8.464437175E7,
                    8.073084523076923E7,
                    8.089255353846154E7,
                    8.038750315384616E7
                ],
                [
                    8.34967295E7,
                    8.569674533333333E7,
                    8.075474607692307E7,
                    8.008213453846154E7,
                    8.03252733076923E7
                ],
                [
                    8.598181791666667E7,
                    8.48831675E7,
                    8.452698483333333E7,
                    8.279297038461539E7,
                    8.360238358333333E7
                ],
                [
                    8.297315207692307E7,
                    8.5976206E7,
                    8.2337632E7,
                    8.164322353846154E7,
                    8.210704553846154E7
                ],
                [
                    8.6278332E7,
                    8.574380575E7,
                    8.517334975E7,
                    8.33412826923077E7,
                    8.24347216923077E7
                ],
                [
                    8.45245365E7,
                    8.5520408E7,
                    8.307457076923077E7,
                    8.170058653846154E7,
                    8.195896215384616E7
                ],
                [
                    8.5783988E7,
                    8.666831933333333E7,
                    8.06874376923077E7,
                    8.025599423076923E7,
                    7.994802038461539E7
                ],
                [
                    9.119983481818181E7,
                    8.6715147E7,
                    8.828961508333333E7,
                    8.676237308333333E7,
                    8.424843566666667E7
                ],
                [
                    8.114361007692307E7,
                    8.471947416666667E7,
                    8.08341006923077E7,
                    8.045492992307693E7,
                    8.149901953846154E7
                ],
                [
                    8.364378158333333E7,
                    8.884400125E7,
                    8.477130008333333E7,
                    8.218445253846154E7,
                    8.149799661538461E7
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceFakeGenericSingleThread",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.4467023570000005E8,
            "scoreError" : 574219.4823169827,
            "scoreConfidence" : [
                1.4409601621768308E8,
                1.4524445518231702E8
            ],
            "scorePercentiles" : {
                "0.0" : 1.434304227142857E8,
                "50.0" : 1.439757837142857E8,
                "90.0" : 1.4642288445714286E8,
                "95.0" : 1.4662256341428572E8,
                "99.0" : 1.4691930257142857E8,
                "99.9" : 1.4691930257142857E8,
                "99.99" : 1.4691930257142857E8,
                "99.999" : 1.4691930257142857E8,
                "99.9999" : 1.4691930257142857E8,
                "100.0" : 1.4691930257142857E8
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    1.446627332857143E8,
                    1.447269092857143E8,
                    1.4477477342857143E8,
                    1.448543292857143E8,
                    1.445648752857143E8
                ],
                [
                    1.4436442842857143E8,
                    1.439379082857143E8,
                    1.4380489914285713E8,
                    1.4360596085714287E8,
                    1.434304227142857E8
                ],
                [
                    1.4360466685714287E8,
                    1.43754466E8,
                    1.4429112857142857E8,
                    1.4387157285714287E8,
                    1.4353923757142857E8
                ],
                [
                    1.4372011985714287E8,
                    1.43881248E8,
                    1.43845029E8,
                    1.439033427142857E8,
                    1.439665527142857E8
                ],
                [
                    1.463655302857143E8,
                    1.4621592142857143E8,
                    1.4617292414285713E8,
                    1.4630755057142857E8,
                    1.4683932957142857E8
                ],
                [
                    1.4384283185714287E8,
                    1.43774449E8,
                    1.439850147142857E8,
                    1.439146122857143E8,
                    1.438450832857143E8
                ],
                [
                    1.4631791357142857E8,
                    1.4617162785714287E8,
                    1.46170411E8,
                    1.4609647042857143E8,
                    1.45977197E8
                ],
                [
                    1.436695E8,
                    1.4432131185714287E8,
                    1.4345975214285713E8,
                    1.4354633614285713E8,
                    1.4347295485714287E8
                ],
                [
                    1.4412936114285713E8,
                    1.437527887142857E8,
                    1.438538882857143E8,
                    1.4382016714285713E8,
                    1.438821697142857E8
                ],
                [
                    1.464452092857143E8,
                    1.4642925714285713E8,
                    1.4644387642857143E8,
                    1.4626443842857143E8,
                    1.4691930257142857E8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceMultipleClassesMultipleMethodsMultipleThreads",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 2.71095473096E9,
            "scoreError" : 1.9977270327970363E7,
            "scoreConfidence" : [
                2.6909774606320295E9,
                2.7309320012879705E9
            ],
            "scorePercentiles" : {
                "0.0" : 2.638522652E9,
                "50.0" : 2.7108129845E9,
                "90.0" : 2.7709087037E9,
                "95.0" : 2.7836798922E9,
                "99.0" : 2.798246682E9,
                "99.9" : 2.798246682E9,
                "99.99" : 2.798246682E9,
                "99.999" : 2.798246682E9,
                "99.9999" : 2.798246682E9,
                "100.0" : 2.798246682E9
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    2.688984779E9,
                    2.682222232E9,
                    2.6890379E9,
                    2.704055534E9,
                    2.638522652E9
                ],
                [
                    2.672001801E9,
                    2.645016804E9,
                    2.667737701E9,
                    2.686371017E9,
                    2.660283669E9
                ],
                [
                    2.731206109E9,
                    2.685468942E9,
                    2.69960018E9,
                    2.665116238E9,
                    2.670310687E9
                ],
                [
                    2.779242813E9,
                    2.721287568E9,
                    2.710086344E9,
                    2.724530485E9,
                    2.740310298E9
                ],
                [
                    2.692422176E9,
                    2.726433823E9,
                    2.706659761E9,
                    2.720219243E9,
                    2.713869161E9
                ],
                [
                    2.754523352E9,
                    2.771792487E9,
                    2.776570864E9,
                    2.798246682E9,
                    2.789102989E9
                ],
                [
                    2.689571445E9,
                    2.66818863E9,
                    2.668514183E9,
                    2.675913198E9,
                    2.643841035E9
                ],
                [
                    2.733076795E9,
                    2.743385479E9,
                    2.744937143E9,
                    2.737885114E9,
                    2.746627202E9
                ],
                [
                    2.73916636E9,
                    2.742518429E9,
                    2.736624248E9,
                    2.762954654E9,
                    2.755123304E9
                ],
                [
                    2.691088842E9,
                    2.71968694E9,
                    2.666183664E9,
                    2.659675967E9,
                    2.711539625E9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceMultipleClassesMultipleMethodsSingleThread",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 7.44992529988E9,
            "scoreError" : 7.047273836486752E7,
            "scoreConfidence" : [
                7.379452561515133E9,
                7.520398038244867E9
            ],
            "scorePercentiles" : {
                "0.0" : 7.359428002E9,
                "50.0" : 7.406071921E9,
                "90.0" : 7.8256503857E9,
                "95.0" : 7.86690699055E9,
                "99.0" : 7.880369414E9,
                "99.9" : 7.880369414E9,
                "99.99" : 7.880369414E9,
                "99.999" : 7.880369414E9,
                "99.9999" : 7.880369414E9,
                "100.0" : 7.880369414E9
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    7.42751174E9,
                    7.401949743E9,
                    7.412955761E9,
                    7.489817687E9,
                    7.39897997E9
                ],
                [
                    7.405322833E9,
                    7.399841686E9,
                    7.404428314E9,
                    7.404302674E9,
                    7.3983849E9
                ],
                [
                    7.401504853E9,
                    7.398063978E9,
                    7.420953094E9,
                    7.404078886E9,
                    7.402113812E9
                ],
                [
                    7.41598624E9,
                    7.40910997E9,
                    7.414776221E9,
                    7.411710684E9,
                    7.412316046E9
                ],
                [
                    7.865024344E9,
                    7.864842668E9,
                    7.880369414E9,
                    7.869208003E9,
                    7.86296513E9
                ],
                [
                    7.400377489E9,
                    7.402528686E9,
                    7.407396522E9,
                    7.399918285E9,
                    7.400009565E9
                ],
                [
                    7.416153826E9,
                    7.410083396E9,
                    7.406821009E9,
                    7.413669386E9,
                    7.407543862E9
                ],
                [
                    7.413344685E9,
                    7.411399649E9,
                    7.416402764E9,
                    7.426276173E9,
                    7.414437591E9
                ],
                [
                    7.359428002E9,
                    7.363959737E9,
                    7.362285279E9,
                    7.362000555E9,
                    7.362184745E9
                ],
                [
                    7.392767666E9,
                    7.394700391E9,
                    7.393200034E9,
                    7.391291488E9,
                    7.391565558E9
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceNonGenericSingleThread",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 3.39755759785E8,
            "scoreError" : 1713782.2165799108,
            "scoreConfidence" : [
                3.380419775684201E8,
                3.4146954200157994E8
            ],
            "scorePercentiles" : {
                "0.0" : 3.3342244325E8,
                "50.0" : 3.38800609E8,
                "90.0" : 3.448974335E8,
                "95.0" : 3.4540848548333335E8,
                "99.0" : 3.459205973333333E8,
                "99.9" : 3.459205973333333E8,
                "99.99" : 3.459205973333333E8,
                "99.999" : 3.459205973333333E8,
                "99.9999" : 3.459205973333333E8,
                "100.0" : 3.459205973333333E8
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    3.41047206E8,
                    3.38517581E8,
                    3.383519596666667E8,
                    3.378490023333333E8,
                    3.387698476666667E8
                ],
                [
                    3.430251446666667E8,
                    3.44651066E8,
                    3.437956203333333E8,
                    3.43890735E8,
                    3.42871645E8
                ],
                [
                    3.379876736666667E8,
                    3.367303413333333E8,
                    3.36498448E8,
                    3.390440733333333E8,
                    3.383978636666667E8
                ],
                [
                    3.34431708E8,
                    3.406872243333333E8,
                    3.347289073333333E8,
                    3.347630116666667E8,
                    3.3342244325E8
                ],
                [
                    3.404434036666667E8,
                    3.383636973333333E8,
                    3.382002256666667E8,
                    3.37626299E8,
                    3.370521846666667E8
                ],
                [
                    3.39794674E8,
                    3.38749805E8,
                    3.388313703333333E8,
                    3.40570021E8,
                    3.395010633333333E8
                ],
                [
                    3.434053303333333E8,
                    3.428932616666667E8,
                    3.43542987E8,
                    3.44707346E8,
                    3.441448436666667E8
                ],
                [
                    3.384047183333333E8,
                    3.385700056666667E8,
                    3.37526489E8,
                    3.38927356E8,
                    3.366965083333333E8
                ],
                [
                    3.349973976666667E8,
                    3.35112794E8,
                    3.3535672E8,
                    3.364920316666667E8,
                    3.415010343333333E8
                ],
                [
                    3.455425646666667E8,
                    3.452344186666667E8,
                    3.452987843333333E8,
                    3.459205973333333E8,
                    3.449185543333333E8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceNotGenericMultipleThreads",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.3942383400392857E8,
            "scoreError" : 1144451.0748553728,
            "scoreConfidence" : [
                1.3827938292907318E8,
                1.4056828507878396E8
            ],
            "scorePercentiles" : {
                "0.0" : 1.3491269025E8,
                "50.0" : 1.391181768125E8,
                "90.0" : 1.4255624765E8,
                "95.0" : 1.4442842889285713E8,
                "99.0" : 1.457412137142857E8,
                "99.9" : 1.457412137142857E8,
                "99.99" : 1.457412137142857E8,
                "99.999" : 1.457412137142857E8,
                "99.9999" : 1.457412137142857E8,
                "100.0" : 1.457412137142857E8
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    1.3772884725E8,
                    1.4430199657142857E8,
                    1.3575141975E8,
                    1.39316399125E8,
                    1.38799587875E8
                ],
                [
                    1.39464474375E8,
                    1.42602369625E8,
                    1.38559932125E8,
                    1.41896449125E8,
                    1.40164175375E8
                ],
                [
                    1.3491269025E8,
                    1.38739415E8,
                    1.40050271875E8,
                    1.39054476375E8,
                    1.38588054125E8
                ],
                [
                    1.38781422E8,
                    1.3798120975E8,
                    1.3918187725E8,
                    1.37625942E8,
                    1.4071597475E8
                ],
                [
                    1.3952694675E8,
                    1.369029375E8,
                    1.40834021375E8,
                    1.36386410625E8,
                    1.40892485375E8
                ],
                [
                    1.41931377E8,
                    1.384901045E8,
                    1.4164807725E8,
                    1.38699281125E8,
                    1.457412137142857E8
                ],
                [
                    1.39720232125E8,
                    1.40247401E8,
                    1.4263733075E8,
                    1.412396035E8,
                    1.445829572857143E8
                ],
                [
                    1.379924135E8,
                    1.4037367275E8,
                    1.37717747375E8,
                    1.40651737E8,
                    1.37831337375E8
                ],
                [
                    1.36645853625E8,
                    1.40882177125E8,
                    1.368384205E8,
                    1.3738314525E8,
                    1.39629705E8
                ],
                [
                    1.35363586125E8,
                    1.38401413125E8,
                    1.3740978025E8,
                    1.38232196875E8,
                    1.42141149875E8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceRealGenericMultipleThreads",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 8.053043351829672E7,
            "scoreError" : 1351715.494013605,
            "scoreConfidence" : [
                7.917871802428311E7,
                8.188214901231033E7
            ],
            "scorePercentiles" : {
                "0.0" : 7.304900614285715E7,
                "50.0" : 8.02318536923077E7,
                "90.0" : 8.487123913333333E7,
                "95.0" : 8.58002158875E7,
                "99.0" : 8.745828533333333E7,
                "99.9" : 8.745828533333333E7,
                "99.99" : 8.745828533333333E7,
                "99.999" : 8.745828533333333E7,
                "99.9999" : 8.745828533333333E7,
                "100.0" : 8.745828533333333E7
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    8.11243483076923E7,
                    8.251331923076923E7,
                    8.0575296E7,
                    7.961048E7,
                    7.955703407692307E7
                ],
                [
                    8.27230833076923E7,
                    8.189102884615384E7,
                    8.469158008333333E7,
                    8.078371461538461E7,
                    8.114396415384616E7
                ],
                [
                    8.2539305E7,
                    8.578243275E7,
                    8.04349396923077E7,
                    8.0612793E7,
                    7.927103261538461E7
                ],
                [
                    7.610691971428572E7,
                    7.88668166923077E7,
                    7.663702607142857E7,
                    7.451366842857143E7,
                    7.304900614285715E7
                ],
                [
                    8.013191715384616E7,
                    8.1782115E7,
                    7.960148361538461E7,
                    7.982062346153846E7,
                    7.889315823076923E7
                ],
                [
                    8.157060261538461E7,
                    8.745828533333333E7,
                    7.98424096923077E7,
                    8.033179023076923E7,
                    7.94001643076923E7
                ],
                [
                    8.046160207692307E7,
                    8.082731192307693E7,
                    7.921476246153846E7,
                    7.85831743076923E7,
                    7.837727253846154E7
                ],
                [
                    8.09104543076923E7,
                    8.566713466666667E7,
                    7.884170653846154E7,
                    7.909124615384616E7,
                    7.900141415384616E7
                ],
                [
                    8.582195083333333E7,
                    8.489120125E7,
                    8.171101084615384E7,
                    7.885028553846154E7,
                    7.991055676923077E7
                ],
                [
                    8.258894576923077E7,
                    8.337952833333333E7,
                    7.899374407692307E7,
                    7.849319761538461E7,
                    7.964483738461539E7
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    },
    {
        "jmhVersion" : "1.37",
        "benchmark" : "ognl.benchmarks.OgnlRuntimePerformanceBenchmarks.testPerformanceRealGenericSingleThread",
        "mode" : "avgt",
        "threads" : 1,
        "forks" : 10,
        "jvm" : "/usr/lib/jvm/temurin-17-jdk-amd64/bin/java",
        "jvmArgs" : [
            "--add-opens=java.base/java.lang=ALL-UNNAMED",
            "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED",
            "--add-opens=java.base/java.util=ALL-UNNAMED"
        ],
        "jdkVersion" : "17.0.18",
        "vmName" : "OpenJDK 64-Bit Server VM",
        "vmVersion" : "17.0.18+8",
        "warmupIterations" : 3,
        "warmupTime" : "1 s",
        "warmupBatchSize" : 1,
        "measurementIterations" : 5,
        "measurementTime" : "1 s",
        "measurementBatchSize" : 1,
        "primaryMetric" : {
            "score" : 1.400855760925E8,
            "scoreError" : 556865.6762001081,
            "scoreConfidence" : [
                1.3952871041629988E8,
                1.4064244176870012E8
            ],
            "scorePercentiles" : {
                "0.0" : 1.38672728875E8,
                "50.0" : 1.402176915625E8,
                "90.0" : 1.424592530875E8,
                "95.0" : 1.4275894314375E8,
                "99.0" : 1.42916628375E8,
                "99.9" : 1.42916628375E8,
                "99.99" : 1.42916628375E8,
                "99.999" : 1.42916628375E8,
                "99.9999" : 1.42916628375E8,
                "100.0" : 1.42916628375E8
            },
            "scoreUnit" : "ns/op",
            "rawData" : [
                [
                    1.40203864375E8,
                    1.40306679125E8,
                    1.39804513875E8,
                    1.4025443125E8,
                    1.4011435875E8
                ],
                [
                    1.3921078E8,
                    1.3929364225E8,
                    1.39126003875E8,
                    1.39425657625E8,
                    1.3944110875E8
                ],
                [
                    1.4064285375E8,
                    1.40675902625E8,
                    1.406477385E8,
                    1.40761277875E8,
                    1.40408688E8
                ],
                [
                    1.38965885125E8,
                    1.3881993E8,
                    1.38741238625E8,
                    1.390525345E8,
                    1.38936058875E8
                ],
                [
                    1.4011044075E8,
                    1.4016869725E8,
                    1.4023151875E8,
                    1.402507375E8,
                    1.40316498875E8
                ],
                [
                    1.42708035375E8,
                    1.4282116375E8,
                    1.42647917E8,
                    1.42916628375E8,
                    1.42673424375E8
                ],
                [
                    1.39386041375E8,
                    1.3905761575E8,
                    1.39091643625E8,
                    1.3887470075E8,
                    1.38672728875E8
                ],
                [
                    1.4055718575E8,
                    1.40444986125E8,
                    1.404350445E8,
                    1.40379124875E8,
                    1.40591166125E8
                ],
                [
                    1.38773988125E8,
                    1.3893956875E8,
                    1.39070526875E8,
                    1.390675925E8,
                    1.3884608775E8
                ],
                [
                    1.40399776625E8,
                    1.4047827875E8,
                    1.40751854875E8,
                    1.404207355E8,
                    1.40361947375E8
                ]
            ]
        },
        "secondaryMetrics" : {
        }
    }
]




================================================
FILE: benchmarks/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>ognl</groupId>
        <artifactId>ognl-parent</artifactId>
        <version>3.5.0-SNAPSHOT</version>
    </parent>

    <artifactId>benchmarks</artifactId>
    <name>OGNL Benchmarks</name>
    <description>JMH-based performance benchmarks for OGNL</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <benchmarks.finalName>benchmarks</benchmarks.finalName>
        <benchmarks.jmhArgs></benchmarks.jmhArgs>
    </properties>

    <dependencies>
        <!-- OGNL Core -->
        <dependency>
            <groupId>ognl</groupId>
            <artifactId>ognl</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.openjdk.jmh</groupId>
                            <artifactId>jmh-generator-annprocess</artifactId>
                            <version>${jmh.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

            <!-- Maven Shade Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>${benchmarks.finalName}</finalName>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/LICENSE</exclude>
                                        <exclude>META-INF/NOTICE</exclude>
                                        <exclude>META-INF/MANIFEST.MF</exclude>
                                        <exclude>META-INF/versions/**/module-info.class</exclude>
                                        <exclude>module-info.class</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>ognl.Run</mainClass>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <configuration>
                    <attach>true</attach>
                    <archive>
                        <compress>true</compress>
                        <index>true</index>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <doclint>none</doclint>
                    <archive>
                        <compress>true</compress>
                        <index>true</index>
                    </archive>
                    <source>17</source>
                    <links>
                        <link>https://docs.oracle.com/en/java/javase/17/docs/api/</link>
                    </links>
                    <doclint>none</doclint>
                    <quiet>true</quiet>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-source</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>benchmarks</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>exec</id>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <phase>verify</phase>
                                <configuration>
                                    <executable>java</executable>
                                    <commandlineArgs>-jar ${project.build.directory}/${benchmarks.finalName}.jar ${benchmarks.jmhArgs}</commandlineArgs>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>coverage</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonarsource.scanner.maven</groupId>
                        <artifactId>sonar-maven-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

================================================
FILE: benchmarks/src/main/java/ognl/DefaultMemberAccess.java
================================================
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package ognl;

import java.lang.reflect.Member;
import java.lang.reflect.Modifier;

/**
 * This class prov
Download .txt
gitextract_sc8f7uqk/

├── .claude/
│   └── settings.json
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── maven.yml
│       ├── ognl-3-4-x.yml
│       ├── performance-baseline.yml
│       ├── performance.yml
│       └── sonar.yml
├── .gitignore
├── .mvn/
│   └── wrapper/
│       ├── MavenWrapperDownloader.java
│       └── maven-wrapper.properties
├── CLAUDE.md
├── KEYS
├── LICENSE.txt
├── README.md
├── SECURITY.md
├── benchmarks/
│   ├── etc/
│   │   └── ognl-runtime-benchmark-baseline.json
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── ognl/
│                   ├── DefaultMemberAccess.java
│                   ├── Run.java
│                   └── benchmarks/
│                       ├── OgnlPerformanceBenchmarks.java
│                       └── OgnlRuntimePerformanceBenchmarks.java
├── docs/
│   ├── DeveloperGuide.md
│   ├── ISSUE_103_ANALYSIS.md
│   ├── LanguageGuide.md
│   ├── NullSafeOperator.md
│   ├── VersionNotes.md
│   └── plans/
│       ├── ISSUE_18_COMPILED_MODE_PARITY.md
│       └── JDK25_FORWARD_COMPATIBILITY.md
├── mvnw
├── mvnw.cmd
├── ognl/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── ognl/
│       │   │       ├── ASTAdd.java
│       │   │       ├── ASTAnd.java
│       │   │       ├── ASTAssign.java
│       │   │       ├── ASTBitAnd.java
│       │   │       ├── ASTBitNegate.java
│       │   │       ├── ASTBitOr.java
│       │   │       ├── ASTChain.java
│       │   │       ├── ASTConst.java
│       │   │       ├── ASTCtor.java
│       │   │       ├── ASTDivide.java
│       │   │       ├── ASTEq.java
│       │   │       ├── ASTEval.java
│       │   │       ├── ASTGreater.java
│       │   │       ├── ASTGreaterEq.java
│       │   │       ├── ASTIn.java
│       │   │       ├── ASTInstanceof.java
│       │   │       ├── ASTKeyValue.java
│       │   │       ├── ASTLess.java
│       │   │       ├── ASTLessEq.java
│       │   │       ├── ASTList.java
│       │   │       ├── ASTMap.java
│       │   │       ├── ASTMethod.java
│       │   │       ├── ASTMultiply.java
│       │   │       ├── ASTNegate.java
│       │   │       ├── ASTNot.java
│       │   │       ├── ASTNotEq.java
│       │   │       ├── ASTNotIn.java
│       │   │       ├── ASTOr.java
│       │   │       ├── ASTProject.java
│       │   │       ├── ASTProperty.java
│       │   │       ├── ASTRemainder.java
│       │   │       ├── ASTRootVarRef.java
│       │   │       ├── ASTSelect.java
│       │   │       ├── ASTSelectFirst.java
│       │   │       ├── ASTSelectLast.java
│       │   │       ├── ASTSequence.java
│       │   │       ├── ASTShiftLeft.java
│       │   │       ├── ASTShiftRight.java
│       │   │       ├── ASTStaticField.java
│       │   │       ├── ASTStaticMethod.java
│       │   │       ├── ASTSubtract.java
│       │   │       ├── ASTTest.java
│       │   │       ├── ASTThisVarRef.java
│       │   │       ├── ASTUnsignedShiftRight.java
│       │   │       ├── ASTVarRef.java
│       │   │       ├── ASTXor.java
│       │   │       ├── AbstractMemberAccess.java
│       │   │       ├── AccessibleObjectHandler.java
│       │   │       ├── ArrayElementsAccessor.java
│       │   │       ├── ArrayPropertyAccessor.java
│       │   │       ├── BooleanExpression.java
│       │   │       ├── ClassCacheInspector.java
│       │   │       ├── ClassResolver.java
│       │   │       ├── CollectionElementsAccessor.java
│       │   │       ├── ComparisonExpression.java
│       │   │       ├── DefaultClassResolver.java
│       │   │       ├── DefaultTypeConverter.java
│       │   │       ├── DynamicSubscript.java
│       │   │       ├── ElementsAccessor.java
│       │   │       ├── EnumerationElementsAccessor.java
│       │   │       ├── EnumerationIterator.java
│       │   │       ├── EnumerationPropertyAccessor.java
│       │   │       ├── Evaluation.java
│       │   │       ├── EvaluationPool.java
│       │   │       ├── ExpressionNode.java
│       │   │       ├── ExpressionSyntaxException.java
│       │   │       ├── InappropriateExpressionException.java
│       │   │       ├── IteratorElementsAccessor.java
│       │   │       ├── IteratorEnumeration.java
│       │   │       ├── IteratorPropertyAccessor.java
│       │   │       ├── JJTOgnlParserState.java
│       │   │       ├── JavaSource.java
│       │   │       ├── ListPropertyAccessor.java
│       │   │       ├── MapElementsAccessor.java
│       │   │       ├── MapPropertyAccessor.java
│       │   │       ├── MemberAccess.java
│       │   │       ├── MethodAccessor.java
│       │   │       ├── MethodFailedException.java
│       │   │       ├── NoSuchPropertyException.java
│       │   │       ├── Node.java
│       │   │       ├── NodeType.java
│       │   │       ├── NullHandler.java
│       │   │       ├── NumberElementsAccessor.java
│       │   │       ├── NumericCasts.java
│       │   │       ├── NumericDefaults.java
│       │   │       ├── NumericExpression.java
│       │   │       ├── NumericLiterals.java
│       │   │       ├── NumericTypes.java
│       │   │       ├── NumericValues.java
│       │   │       ├── ObjectElementsAccessor.java
│       │   │       ├── ObjectIndexedPropertyDescriptor.java
│       │   │       ├── ObjectMethodAccessor.java
│       │   │       ├── ObjectNullHandler.java
│       │   │       ├── ObjectPropertyAccessor.java
│       │   │       ├── Ognl.java
│       │   │       ├── OgnlCache.java
│       │   │       ├── OgnlContext.java
│       │   │       ├── OgnlException.java
│       │   │       ├── OgnlOps.java
│       │   │       ├── OgnlParserTreeConstants.java
│       │   │       ├── OgnlRuntime.java
│       │   │       ├── PrimitiveDefaults.java
│       │   │       ├── PrimitiveTypes.java
│       │   │       ├── PrimitiveWrapperClasses.java
│       │   │       ├── PropertyAccessor.java
│       │   │       ├── SetPropertyAccessor.java
│       │   │       ├── SimpleNode.java
│       │   │       ├── TypeConverter.java
│       │   │       ├── enhance/
│       │   │       │   ├── ContextClassLoader.java
│       │   │       │   ├── EnhancedClassLoader.java
│       │   │       │   ├── ExpressionAccessor.java
│       │   │       │   ├── ExpressionCompiler.java
│       │   │       │   ├── LocalReference.java
│       │   │       │   ├── OgnlExpressionCompiler.java
│       │   │       │   ├── OgnlLocalReference.java
│       │   │       │   ├── OrderedReturn.java
│       │   │       │   └── UnsupportedCompilationException.java
│       │   │       ├── internal/
│       │   │       │   ├── Cache.java
│       │   │       │   ├── CacheException.java
│       │   │       │   ├── CacheFactory.java
│       │   │       │   ├── ClassCache.java
│       │   │       │   ├── ClassCacheHandler.java
│       │   │       │   ├── HashMapCache.java
│       │   │       │   ├── HashMapCacheFactory.java
│       │   │       │   ├── HashMapClassCache.java
│       │   │       │   └── entry/
│       │   │       │       ├── CacheEntry.java
│       │   │       │       ├── CacheEntryFactory.java
│       │   │       │       ├── ClassCacheEntryFactory.java
│       │   │       │       ├── DeclaredMethodCacheEntry.java
│       │   │       │       ├── DeclaredMethodCacheEntryFactory.java
│       │   │       │       ├── FieldCacheEntryFactory.java
│       │   │       │       ├── GenericMethodParameterTypeCacheEntry.java
│       │   │       │       ├── GenericMethodParameterTypeFactory.java
│       │   │       │       ├── MethodAccessCacheEntryFactory.java
│       │   │       │       ├── MethodAccessEntryValue.java
│       │   │       │       ├── MethodCacheEntry.java
│       │   │       │       ├── MethodCacheEntryFactory.java
│       │   │       │       └── PropertyDescriptorCacheEntryFactory.java
│       │   │       └── package.html
│       │   ├── javacc/
│       │   │   └── ognl.jj
│       │   └── jjtree/
│       │       └── ognl.jjt
│       └── test/
│           └── java/
│               ├── ClassInDefaultPackage.java
│               ├── com/
│               │   └── sun/
│               │       └── test/
│               │           └── AnotherInternalClass.java
│               ├── ognl/
│               │   ├── DefaultMemberAccess.java
│               │   ├── ExcludedObjectMemberAccess.java
│               │   ├── ObjectPropertyAccessorTest.java
│               │   ├── OgnlContextTest.java
│               │   ├── OgnlRuntimeAccessibilityTest.java
│               │   ├── OgnlRuntimeMethodsTest.java
│               │   ├── OgnlRuntimeTest.java
│               │   └── test/
│               │       ├── ASTChainTest.java
│               │       ├── ASTMethodTest.java
│               │       ├── ASTPropertyTest.java
│               │       ├── ASTSequenceTest.java
│               │       ├── ArithmeticAndLogicalOperatorsOnEnumsTest.java
│               │       ├── ArithmeticAndLogicalOperatorsTest.java
│               │       ├── ArrayCreationTest.java
│               │       ├── ArrayElementsTest.java
│               │       ├── ChainTest.java
│               │       ├── ClassMethodTest.java
│               │       ├── CollectionDirectPropertyTest.java
│               │       ├── CompilingPropertyAccessor.java
│               │       ├── ConstantTest.java
│               │       ├── ConstantTreeTest.java
│               │       ├── ContextRootPreservationTest.java
│               │       ├── ContextVariableTest.java
│               │       ├── CorrectedObjectNullHandler.java
│               │       ├── DefaultClassResolverTest.java
│               │       ├── DualModeEvaluationTest.java
│               │       ├── GenericsTest.java
│               │       ├── InExpressionTest.java
│               │       ├── IndexAccessTest.java
│               │       ├── IndexedPropertyTest.java
│               │       ├── InheritedMethodsTest.java
│               │       ├── InterfaceInheritanceTest.java
│               │       ├── IsTruckTest.java
│               │       ├── Issue286Test.java
│               │       ├── Issue472CustomMethodAccessorTest.java
│               │       ├── Java8Test.java
│               │       ├── LambdaExpressionTest.java
│               │       ├── MapCreationTest.java
│               │       ├── MemberAccessTest.java
│               │       ├── MethodTest.java
│               │       ├── MethodWithConversionTest.java
│               │       ├── NestedMethodTest.java
│               │       ├── NullHandlerTest.java
│               │       ├── NullRootTest.java
│               │       ├── NullSafeCollectionTest.java
│               │       ├── NullSafeCompilationTest.java
│               │       ├── NullSafeIntegrationTest.java
│               │       ├── NullSafeOperatorTest.java
│               │       ├── NullStringCatenationTest.java
│               │       ├── NumberFormatExceptionTest.java
│               │       ├── NumericConversionTest.java
│               │       ├── ObjectIndexedPropertyTest.java
│               │       ├── ObjectIndexedTest.java
│               │       ├── OgnlContextCreateTest.java
│               │       ├── OgnlExceptionTest.java
│               │       ├── OgnlOpsTest.java
│               │       ├── OperationTest.java
│               │       ├── OperatorTest.java
│               │       ├── PackageKeywordTest.java
│               │       ├── PrimitiveArrayTest.java
│               │       ├── PrimitiveNullHandlingTest.java
│               │       ├── PrivateAccessorTest.java
│               │       ├── PrivateMemberTest.java
│               │       ├── ProjectionSelectionTest.java
│               │       ├── PropertyAccessorTest.java
│               │       ├── PropertyArithmeticAndLogicalOperatorsTest.java
│               │       ├── PropertySetterTest.java
│               │       ├── PropertyTest.java
│               │       ├── ProtectedInnerClassTest.java
│               │       ├── ProtectedMemberTest.java
│               │       ├── PublicMemberTest.java
│               │       ├── QuotingTest.java
│               │       ├── RaceConditionTest.java
│               │       ├── SetterTest.java
│               │       ├── SetterWithConversionTest.java
│               │       ├── ShortCircuitingExpressionTest.java
│               │       ├── SimpleNavigationChainTreeTest.java
│               │       ├── SimplePropertyTreeTest.java
│               │       ├── StaticsAndConstructorsTest.java
│               │       ├── VarArgsMethodTest.java
│               │       ├── accessors/
│               │       │   ├── ListPropertyAccessorTest.java
│               │       │   └── PropertyAccessTest.java
│               │       ├── enhance/
│               │       │   └── ExpressionCompilerTest.java
│               │       ├── objects/
│               │       │   ├── BaseBean.java
│               │       │   ├── BaseGeneric.java
│               │       │   ├── BaseIndexed.java
│               │       │   ├── BaseObjectIndexed.java
│               │       │   ├── BaseSyntheticObject.java
│               │       │   ├── Bean1.java
│               │       │   ├── Bean2.java
│               │       │   ├── Bean3.java
│               │       │   ├── BeanProvider.java
│               │       │   ├── BeanProviderAccessor.java
│               │       │   ├── BeanProviderImpl.java
│               │       │   ├── Component.java
│               │       │   ├── ComponentImpl.java
│               │       │   ├── ComponentSubclass.java
│               │       │   ├── Copy.java
│               │       │   ├── CorrectedObject.java
│               │       │   ├── Cracker.java
│               │       │   ├── Entry.java
│               │       │   ├── EvenOdd.java
│               │       │   ├── FirstBean.java
│               │       │   ├── FormComponentImpl.java
│               │       │   ├── FormImpl.java
│               │       │   ├── GameGeneric.java
│               │       │   ├── GameGenericObject.java
│               │       │   ├── GenericCracker.java
│               │       │   ├── GenericObject.java
│               │       │   ├── GenericRoot.java
│               │       │   ├── GenericService.java
│               │       │   ├── GenericServiceImpl.java
│               │       │   ├── GetterMethods.java
│               │       │   ├── IComponent.java
│               │       │   ├── IContentProvider.java
│               │       │   ├── IForm.java
│               │       │   ├── IFormComponent.java
│               │       │   ├── ITreeContentProvider.java
│               │       │   ├── Indexed.java
│               │       │   ├── IndexedMapObject.java
│               │       │   ├── IndexedSetObject.java
│               │       │   ├── Inherited.java
│               │       │   ├── ListSource.java
│               │       │   ├── ListSourceImpl.java
│               │       │   ├── MenuItem.java
│               │       │   ├── Messages.java
│               │       │   ├── MethodTestMethods.java
│               │       │   ├── Model.java
│               │       │   ├── MyMap.java
│               │       │   ├── MyMapImpl.java
│               │       │   ├── ObjectIndexed.java
│               │       │   ├── OtherEnum.java
│               │       │   ├── OtherObjectIndexed.java
│               │       │   ├── PersonGenericObject.java
│               │       │   ├── PropertyHolder.java
│               │       │   ├── Root.java
│               │       │   ├── SearchCriteria.java
│               │       │   ├── SearchTab.java
│               │       │   ├── SecondBean.java
│               │       │   ├── SetterReturns.java
│               │       │   ├── Simple.java
│               │       │   ├── SimpleEnum.java
│               │       │   ├── SimpleNumeric.java
│               │       │   ├── StaticInterface.java
│               │       │   ├── SubclassSyntheticObject.java
│               │       │   ├── TestClass.java
│               │       │   ├── TestImpl.java
│               │       │   ├── TestInherited1.java
│               │       │   ├── TestInherited2.java
│               │       │   ├── TestModel.java
│               │       │   ├── TreeContentProvider.java
│               │       │   └── Two.java
│               │       ├── race/
│               │       │   ├── Base.java
│               │       │   ├── Person.java
│               │       │   └── RaceTest.java
│               │       └── util/
│               │           ├── ContextClassLoader.java
│               │           ├── EnhancedClassLoader.java
│               │           └── NameFactory.java
│               └── sun/
│                   └── test/
│                       ├── PublicTestInterface.java
│                       └── SimulatedInternalClass.java
├── pom.xml
└── renovate.json
Download .txt
Showing preview only (248K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3143 symbols across 305 files)

FILE: .mvn/wrapper/MavenWrapperDownloader.java
  class MavenWrapperDownloader (line 25) | public class MavenWrapperDownloader {
    method main (line 51) | public static void main(String args[]) {
    method downloadFileFromURL (line 100) | private static void downloadFileFromURL(String urlString, File destina...

FILE: benchmarks/src/main/java/ognl/DefaultMemberAccess.java
  class DefaultMemberAccess (line 32) | public class DefaultMemberAccess implements MemberAccess {
    method DefaultMemberAccess (line 38) | public DefaultMemberAccess(boolean allowAllAccess) {
    method DefaultMemberAccess (line 42) | public DefaultMemberAccess(boolean allowPrivateAccess, boolean allowPr...
    method getAllowPrivateAccess (line 49) | public boolean getAllowPrivateAccess() {
    method setAllowPrivateAccess (line 53) | public void setAllowPrivateAccess(boolean value) {
    method getAllowProtectedAccess (line 57) | public boolean getAllowProtectedAccess() {
    method setAllowProtectedAccess (line 61) | public void setAllowProtectedAccess(boolean value) {
    method getAllowPackageProtectedAccess (line 65) | public boolean getAllowPackageProtectedAccess() {
    method setAllowPackageProtectedAccess (line 69) | public void setAllowPackageProtectedAccess(boolean value) {
    method setup (line 73) | public Object setup(OgnlContext context, Object target, Member member,...
    method restore (line 77) | public void restore(OgnlContext context, Object target, Member member,...
    method isAccessible (line 91) | public boolean isAccessible(OgnlContext context, Object target, Member...

FILE: benchmarks/src/main/java/ognl/Run.java
  class Run (line 18) | public class Run {
    method main (line 24) | public static void main(String[] args) throws Exception {
    method compareResults (line 67) | private static int compareResults(JsonNode baseline, JsonNode current) {
    method publishSummary (line 98) | private static int publishSummary(JsonNode baseline, JsonNode current)...
    method isRegression (line 151) | private static boolean isRegression(String mode, double percentChange) {

FILE: benchmarks/src/main/java/ognl/benchmarks/OgnlPerformanceBenchmarks.java
  class OgnlPerformanceBenchmarks (line 24) | @State(Scope.Benchmark)
    method setup (line 49) | @Setup
    method constantExpressionInterpreted (line 76) | @Benchmark
    method constantExpressionCompiled (line 82) | @Benchmark
    method singlePropertyExpressionInterpreted (line 88) | @Benchmark
    method singlePropertyExpressionCompiled (line 94) | @Benchmark
    method propertyNavigationExpressionInterpreted (line 100) | @Benchmark
    method propertyNavigationExpressionCompiled (line 106) | @Benchmark
    method propertyNavigationAndComparisonExpressionInterpreted (line 112) | @Benchmark
    method propertyNavigationAndComparisonExpressionCompiled (line 118) | @Benchmark
    method propertyNavigationWithMapExpressionInterpreted (line 124) | @Benchmark
    method propertyNavigationWithMapExpressionCompiled (line 130) | @Benchmark
    class BenchmarkRootBean (line 137) | public static class BenchmarkRootBean {
      method getBean2 (line 140) | public BenchmarkNestedBean getBean2() {
    class BenchmarkNestedBean (line 145) | public static class BenchmarkNestedBean {
      method getBean3 (line 148) | public BenchmarkLeafBean getBean3() {
    class BenchmarkLeafBean (line 153) | public static class BenchmarkLeafBean {
      method BenchmarkLeafBean (line 159) | public BenchmarkLeafBean() {
      method getValue (line 163) | public int getValue() {
      method setNullValue (line 167) | public void setNullValue(String value) {
      method getIndexedValue (line 171) | public int getIndexedValue(int index) {
      method getMap (line 175) | public Map<String, String> getMap() {

FILE: benchmarks/src/main/java/ognl/benchmarks/OgnlRuntimePerformanceBenchmarks.java
  class OgnlRuntimePerformanceBenchmarks (line 23) | @State(Scope.Benchmark)
    class Worker (line 35) | private static class Worker implements Callable<Class<?>[]> {
      method Worker (line 40) | public Worker(final Class<?> clazz, final Method method, final int i...
      method call (line 46) | public Class<?>[] call() {
    method runTest (line 55) | private void runTest(final Class<?> clazz, final Method method, final ...
    method testPerformanceRealGenericSingleThread (line 73) | @Benchmark
    method testPerformanceFakeGenericSingleThread (line 79) | @Benchmark
    method testPerformanceNonGenericSingleThread (line 85) | @Benchmark
    method testPerformanceRealGenericMultipleThreads (line 91) | @Benchmark
    method testPerformanceFakeGenericMultipleThreads (line 97) | @Benchmark
    method testPerformanceNotGenericMultipleThreads (line 103) | @Benchmark
    method testPerformanceMultipleClassesMultipleMethodsSingleThread (line 109) | @Benchmark
    method testPerformanceMultipleClassesMultipleMethodsMultipleThreads (line 162) | @Benchmark
    class GenericClass (line 216) | static class GenericClass<T> {
      method bar (line 217) | @SuppressWarnings("unused")
    class ExampleStringClass (line 222) | static class ExampleStringClass extends GenericClass<String> {
      method foo (line 223) | @SuppressWarnings("unused")
    class ExampleStringSubclass (line 228) | static class ExampleStringSubclass extends ExampleStringClass {
    class ExampleTwoMethodClass (line 231) | static class ExampleTwoMethodClass {
      method foo (line 232) | @SuppressWarnings("unused")
      method bar (line 236) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass2 (line 241) | static class ExampleTwoMethodClass2 {
      method foo (line 242) | @SuppressWarnings("unused")
      method bar (line 246) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass3 (line 251) | static class ExampleTwoMethodClass3 {
      method foo (line 252) | @SuppressWarnings("unused")
      method bar (line 256) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass4 (line 261) | static class ExampleTwoMethodClass4 {
      method foo (line 262) | @SuppressWarnings("unused")
      method bar (line 266) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass5 (line 271) | static class ExampleTwoMethodClass5 {
      method foo (line 272) | @SuppressWarnings("unused")
      method bar (line 276) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass6 (line 281) | static class ExampleTwoMethodClass6 {
      method foo (line 282) | @SuppressWarnings("unused")
      method bar (line 286) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass7 (line 291) | static class ExampleTwoMethodClass7 {
      method foo (line 292) | @SuppressWarnings("unused")
      method bar (line 296) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass8 (line 301) | static class ExampleTwoMethodClass8 {
      method foo (line 302) | @SuppressWarnings("unused")
      method bar (line 306) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass9 (line 311) | static class ExampleTwoMethodClass9 {
      method foo (line 312) | @SuppressWarnings("unused")
      method bar (line 316) | @SuppressWarnings("unused")
    class ExampleTwoMethodClass10 (line 321) | static class ExampleTwoMethodClass10 {
      method foo (line 322) | @SuppressWarnings("unused")
      method bar (line 326) | @SuppressWarnings("unused")

FILE: ognl/src/main/java/ognl/ASTAdd.java
  class ASTAdd (line 27) | public class ASTAdd<C extends OgnlContext<C>> extends NumericExpression<...
    method ASTAdd (line 32) | public ASTAdd(int id) {
    method ASTAdd (line 36) | public ASTAdd(OgnlParser p, int id) {
    method jjtClose (line 40) | public void jjtClose() {
    method getValueBody (line 44) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 53) | public String getExpressionOperator(int index) {
    method isWider (line 57) | boolean isWider(NodeType type, NodeType lastType) {
    method toGetSourceString (line 104) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTAnd.java
  class ASTAnd (line 26) | public class ASTAnd<C extends OgnlContext<C>> extends BooleanExpression<...
    method ASTAnd (line 31) | public ASTAnd(int id) {
    method ASTAnd (line 35) | public ASTAnd(OgnlParser p, int id) {
    method jjtClose (line 39) | public void jjtClose() {
    method getValueBody (line 43) | protected Object getValueBody(C context, Object source)
    method setValueBody (line 57) | protected void setValueBody(C context, Object target, Object value)
    method getExpressionOperator (line 71) | public String getExpressionOperator(int index) {
    method getGetterClass (line 75) | public Class<?> getGetterClass() {
    method toGetSourceString (line 79) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 122) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTAssign.java
  class ASTAssign (line 26) | public class ASTAssign<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTAssign (line 31) | public ASTAssign(int id) {
    method ASTAssign (line 35) | public ASTAssign(OgnlParser p, int id) {
    method getValueBody (line 39) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 45) | public String toString() {
    method toGetSourceString (line 49) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 94) | public String toSetSourceString(C context, Object target) {
    method isOperation (line 124) | @Override

FILE: ognl/src/main/java/ognl/ASTBitAnd.java
  class ASTBitAnd (line 23) | public class ASTBitAnd<C extends OgnlContext<C>> extends NumericExpressi...
    method ASTBitAnd (line 28) | public ASTBitAnd(int id) {
    method ASTBitAnd (line 32) | public ASTBitAnd(OgnlParser p, int id) {
    method jjtClose (line 36) | public void jjtClose() {
    method getValueBody (line 40) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 47) | public String getExpressionOperator(int index) {
    method coerceToNumeric (line 51) | public String coerceToNumeric(String source, C context, Node<C> child) {

FILE: ognl/src/main/java/ognl/ASTBitNegate.java
  class ASTBitNegate (line 23) | public class ASTBitNegate<C extends OgnlContext<C>> extends NumericExpre...
    method ASTBitNegate (line 28) | public ASTBitNegate(int id) {
    method ASTBitNegate (line 32) | public ASTBitNegate(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 40) | public String toString() {
    method toGetSourceString (line 44) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTBitOr.java
  class ASTBitOr (line 23) | public class ASTBitOr<C extends OgnlContext<C>> extends NumericExpressio...
    method ASTBitOr (line 28) | public ASTBitOr(int id) {
    method ASTBitOr (line 32) | public ASTBitOr(OgnlParser p, int id) {
    method jjtClose (line 36) | public void jjtClose() {
    method getValueBody (line 40) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 47) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTChain.java
  class ASTChain (line 28) | public class ASTChain<C extends OgnlContext<C>> extends SimpleNode<C> im...
    method ASTChain (line 41) | public ASTChain(int id) {
    method ASTChain (line 45) | public ASTChain(OgnlParser p, int id) {
    method getLastExpression (line 49) | public String getLastExpression() {
    method getCoreExpression (line 53) | public String getCoreExpression() {
    method jjtClose (line 57) | @Override
    method setNullSafe (line 67) | public void setNullSafe(boolean nullSafe) {
    method isNullSafe (line 76) | public boolean isNullSafe() {
    method getValueBody (line 80) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 161) | @Override
    method isSimpleNavigationChain (line 227) | @Override
    method getGetterClass (line 245) | public Class<?> getGetterClass() {
    method getSetterClass (line 249) | public Class<?> getSetterClass() {
    method toString (line 253) | @Override
    method shouldAppendNavigationOperator (line 268) | private boolean shouldAppendNavigationOperator(Node<C> child) {
    method toGetSourceString (line 272) | @Override
    method toSetSourceString (line 352) | @Override
    method isChain (line 419) | @Override

FILE: ognl/src/main/java/ognl/ASTConst.java
  class ASTConst (line 27) | public class ASTConst<C extends OgnlContext<C>> extends SimpleNode<C> im...
    method ASTConst (line 35) | public ASTConst(int id) {
    method ASTConst (line 39) | public ASTConst(OgnlParser p, int id) {
    method setValue (line 48) | public void setValue(Object value) {
    method getValue (line 52) | public Object getValue() {
    method getValueBody (line 56) | protected Object getValueBody(C context, Object source)
    method isNodeConstant (line 61) | public boolean isNodeConstant(C context) throws OgnlException {
    method getGetterClass (line 65) | public Class<?> getGetterClass() {
    method getSetterClass (line 72) | public Class<?> getSetterClass() {
    method toString (line 76) | public String toString() {
    method toGetSourceString (line 111) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 172) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTCtor.java
  class ASTCtor (line 28) | public class ASTCtor<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTCtor (line 36) | public ASTCtor(int id) {
    method ASTCtor (line 40) | public ASTCtor(OgnlParser p, int id) {
    method setClassName (line 47) | void setClassName(String className) {
    method getCreatedClass (line 51) | Class<?> getCreatedClass(C context) throws ClassNotFoundException {
    method setArray (line 55) | void setArray(boolean value) {
    method isArray (line 59) | public boolean isArray() {
    method getValueBody (line 63) | protected Object getValueBody(C context, Object source)
    method toString (line 113) | public String toString() {
    method toGetSourceString (line 137) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 292) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTDivide.java
  class ASTDivide (line 23) | public class ASTDivide<C extends OgnlContext<C>> extends NumericExpressi...
    method ASTDivide (line 28) | public ASTDivide(int id) {
    method ASTDivide (line 32) | public ASTDivide(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTEq.java
  class ASTEq (line 23) | public class ASTEq<C extends OgnlContext<C>> extends ComparisonExpressio...
    method ASTEq (line 28) | public ASTEq(int id) {
    method ASTEq (line 32) | public ASTEq(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 46) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTEval.java
  class ASTEval (line 25) | public class ASTEval<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTEval (line 30) | public ASTEval(int id) {
    method ASTEval (line 34) | public ASTEval(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source)
    method setValueBody (line 54) | protected void setValueBody(C context, Object target, Object value)
    method isEvalChain (line 69) | @Override
    method toString (line 74) | public String toString() {
    method toGetSourceString (line 78) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 82) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTGreater.java
  class ASTGreater (line 23) | public class ASTGreater<C extends OgnlContext<C>> extends ComparisonExpr...
    method ASTGreater (line 28) | public ASTGreater(int id) {
    method ASTGreater (line 32) | public ASTGreater(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 43) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 47) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTGreaterEq.java
  class ASTGreaterEq (line 23) | public class ASTGreaterEq<C extends OgnlContext<C>> extends ComparisonEx...
    method ASTGreaterEq (line 28) | public ASTGreaterEq(int id) {
    method ASTGreaterEq (line 32) | public ASTGreaterEq(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 46) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTIn.java
  class ASTIn (line 25) | public class ASTIn<C extends OgnlContext<C>> extends SimpleNode<C> imple...
    method ASTIn (line 30) | public ASTIn(int id) {
    method ASTIn (line 34) | public ASTIn(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source)
    method toString (line 46) | public String toString() {
    method getGetterClass (line 50) | public Class<?> getGetterClass() {
    method getSetterClass (line 54) | public Class<?> getSetterClass() {
    method toGetSourceString (line 58) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 77) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTInstanceof.java
  class ASTInstanceof (line 23) | public class ASTInstanceof<C extends OgnlContext<C>> extends SimpleNode<...
    method ASTInstanceof (line 30) | public ASTInstanceof(int id) {
    method ASTInstanceof (line 34) | public ASTInstanceof(OgnlParser p, int id) {
    method setTargetType (line 38) | void setTargetType(String targetType) {
    method getValueBody (line 42) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 47) | public String toString() {
    method getGetterClass (line 51) | public Class<?> getGetterClass() {
    method getSetterClass (line 55) | public Class<?> getSetterClass() {
    method toGetSourceString (line 59) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 79) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTKeyValue.java
  class ASTKeyValue (line 23) | public class ASTKeyValue<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTKeyValue (line 28) | public ASTKeyValue(int id) {
    method ASTKeyValue (line 32) | public ASTKeyValue(OgnlParser p, int id) {
    method getKey (line 36) | protected Node<C> getKey() {
    method getValue (line 40) | protected Node<C> getValue() {
    method getValueBody (line 47) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 51) | public String toString() {

FILE: ognl/src/main/java/ognl/ASTLess.java
  class ASTLess (line 23) | public class ASTLess<C extends OgnlContext<C>> extends ComparisonExpress...
    method ASTLess (line 28) | public ASTLess(int id) {
    method ASTLess (line 32) | public ASTLess(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 43) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 47) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTLessEq.java
  class ASTLessEq (line 23) | public class ASTLessEq<C extends OgnlContext<C>> extends ComparisonExpre...
    method ASTLessEq (line 28) | public ASTLessEq(int id) {
    method ASTLessEq (line 32) | public ASTLessEq(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 46) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTList.java
  class ASTList (line 29) | public class ASTList<C extends OgnlContext<C>> extends SimpleNode<C> imp...
    method ASTList (line 34) | public ASTList(int id) {
    method ASTList (line 38) | public ASTList(OgnlParser p, int id) {
    method getValueBody (line 42) | protected Object getValueBody(C context, Object source)
    method getGetterClass (line 51) | public Class<?> getGetterClass() {
    method getSetterClass (line 55) | public Class<?> getSetterClass() {
    method toString (line 59) | public String toString() {
    method toGetSourceString (line 71) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 172) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTMap.java
  class ASTMap (line 27) | public class ASTMap<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTMap (line 34) | public ASTMap(int id) {
    method ASTMap (line 38) | public ASTMap(OgnlParser p, int id) {
    method setClassName (line 42) | protected void setClassName(String value) {
    method getValueBody (line 46) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 69) | public String toString() {
    method toGetSourceString (line 88) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 92) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTMethod.java
  class ASTMethod (line 29) | public class ASTMethod<C extends OgnlContext<C>> extends SimpleNode<C> i...
    method ASTMethod (line 39) | public ASTMethod(int id) {
    method ASTMethod (line 43) | public ASTMethod(OgnlParser p, int id) {
    method setMethodName (line 52) | public void setMethodName(String methodName) {
    method getMethodName (line 61) | public String getMethodName() {
    method getValueBody (line 65) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getLastExpression (line 85) | public String getLastExpression() {
    method getCoreExpression (line 89) | public String getCoreExpression() {
    method getGetterClass (line 93) | public Class<?> getGetterClass() {
    method getSetterClass (line 97) | public Class<?> getSetterClass() {
    method toString (line 101) | public String toString() {
    method toGetSourceString (line 118) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 277) | public String toSetSourceString(C context, Object target) {
    method getClassMatchingAllChildren (line 416) | private Class<?> getClassMatchingAllChildren(C context, Node<C>[] _chi...
    method getChildrenClasses (line 453) | private Class<?>[] getChildrenClasses(C context, Node<C>[] _children) {
    method isSimpleMethod (line 479) | @Override

FILE: ognl/src/main/java/ognl/ASTMultiply.java
  class ASTMultiply (line 23) | public class ASTMultiply<C extends OgnlContext<C>> extends NumericExpres...
    method ASTMultiply (line 28) | public ASTMultiply(int id) {
    method ASTMultiply (line 32) | public ASTMultiply(OgnlParser p, int id) {
    method jjtClose (line 36) | public void jjtClose() {
    method getValueBody (line 40) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 47) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTNegate.java
  class ASTNegate (line 23) | public class ASTNegate<C extends OgnlContext<C>> extends NumericExpressi...
    method ASTNegate (line 28) | public ASTNegate(int id) {
    method ASTNegate (line 32) | public ASTNegate(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 40) | public String toString() {
    method toGetSourceString (line 44) | public String toGetSourceString(C context, Object target) {
    method isOperation (line 54) | @Override

FILE: ognl/src/main/java/ognl/ASTNot.java
  class ASTNot (line 23) | public class ASTNot<C extends OgnlContext<C>> extends BooleanExpression<...
    method ASTNot (line 28) | public ASTNot(int id) {
    method ASTNot (line 32) | public ASTNot(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 40) | public String getExpressionOperator(int index) {
    method toGetSourceString (line 44) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTNotEq.java
  class ASTNotEq (line 23) | public class ASTNotEq<C extends OgnlContext<C>> extends ComparisonExpres...
    method ASTNotEq (line 28) | public ASTNotEq(int id) {
    method ASTNotEq (line 32) | public ASTNotEq(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 43) | public String getExpressionOperator(int index) {
    method getComparisonFunction (line 47) | public String getComparisonFunction() {

FILE: ognl/src/main/java/ognl/ASTNotIn.java
  class ASTNotIn (line 25) | public class ASTNotIn<C extends OgnlContext<C>> extends SimpleNode<C> im...
    method ASTNotIn (line 30) | public ASTNotIn(int id) {
    method ASTNotIn (line 34) | public ASTNotIn(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 44) | public String toString() {
    method getGetterClass (line 48) | public Class<?> getGetterClass() {
    method getSetterClass (line 52) | public Class<?> getSetterClass() {
    method toGetSourceString (line 56) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTOr.java
  class ASTOr (line 26) | public class ASTOr<C extends OgnlContext<C>> extends BooleanExpression<C> {
    method ASTOr (line 31) | public ASTOr(int id) {
    method ASTOr (line 35) | public ASTOr(OgnlParser p, int id) {
    method jjtClose (line 39) | public void jjtClose() {
    method getValueBody (line 43) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 54) | protected void setValueBody(C context, Object target, Object value) th...
    method getExpressionOperator (line 64) | public String getExpressionOperator(int index) {
    method getGetterClass (line 68) | public Class<?> getGetterClass() {
    method toGetSourceString (line 72) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 105) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTProject.java
  class ASTProject (line 28) | public class ASTProject<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTProject (line 33) | public ASTProject(int id) {
    method ASTProject (line 37) | public ASTProject(OgnlParser p, int id) {
    method getValueBody (line 41) | protected Object getValueBody(C context, Object source)
    method toString (line 55) | public String toString() {
    method toGetSourceString (line 59) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 63) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTProperty.java
  class ASTProperty (line 30) | public class ASTProperty<C extends OgnlContext<C>> extends SimpleNode<C>...
    method ASTProperty (line 39) | public ASTProperty(int id) {
    method setIndexedAccess (line 43) | public void setIndexedAccess(boolean value) {
    method isIndexedAccess (line 52) | public boolean isIndexedAccess() {
    method getIndexedPropertyType (line 66) | public int getIndexedPropertyType(C context, Object source)
    method getProperty (line 89) | public Object getProperty(C context, Object source) throws OgnlExcepti...
    method getValueBody (line 93) | protected Object getValueBody(C context, Object source)
    method setValueBody (line 107) | protected void setValueBody(C context, Object target, Object value)
    method isNodeSimpleProperty (line 112) | public boolean isNodeSimpleProperty(C context)
    method getGetterClass (line 117) | public Class<?> getGetterClass() {
    method getSetterClass (line 121) | public Class<?> getSetterClass() {
    method toString (line 125) | public String toString() {
    method toGetSourceString (line 136) | public String toGetSourceString(C context, Object target) {
    method getIndexedWriteMethod (line 316) | Method getIndexedWriteMethod(PropertyDescriptor pd) {
    method toSetSourceString (line 326) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTRemainder.java
  class ASTRemainder (line 23) | public class ASTRemainder<C extends OgnlContext<C>> extends NumericExpre...
    method ASTRemainder (line 28) | public ASTRemainder(int id) {
    method ASTRemainder (line 32) | public ASTRemainder(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTRootVarRef.java
  class ASTRootVarRef (line 25) | public class ASTRootVarRef<C extends OgnlContext<C>> extends ASTVarRef<C> {
    method ASTRootVarRef (line 30) | public ASTRootVarRef(int id) {
    method ASTRootVarRef (line 34) | public ASTRootVarRef(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 42) | protected void setValueBody(C context, Object target, Object value) th...
    method toString (line 46) | public String toString() {
    method toGetSourceString (line 50) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 65) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTSelect.java
  class ASTSelect (line 28) | public class ASTSelect<C extends OgnlContext<C>> extends SimpleNode<C> {
    method ASTSelect (line 33) | public ASTSelect(int id) {
    method ASTSelect (line 37) | public ASTSelect(OgnlParser p, int id) {
    method getValueBody (line 41) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 57) | public String toString() {
    method toGetSourceString (line 61) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 65) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTSelectFirst.java
  class ASTSelectFirst (line 28) | public class ASTSelectFirst<C extends OgnlContext<C>> extends SimpleNode...
    method ASTSelectFirst (line 33) | public ASTSelectFirst(int id) {
    method ASTSelectFirst (line 37) | public ASTSelectFirst(OgnlParser p, int id) {
    method getValueBody (line 41) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 56) | public String toString() {
    method toGetSourceString (line 60) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 64) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTSelectLast.java
  class ASTSelectLast (line 28) | public class ASTSelectLast<C extends OgnlContext<C>> extends SimpleNode<...
    method ASTSelectLast (line 33) | public ASTSelectLast(int id) {
    method ASTSelectLast (line 37) | public ASTSelectLast(OgnlParser p, int id) {
    method getValueBody (line 41) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method toString (line 57) | public String toString() {
    method toGetSourceString (line 61) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 65) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTSequence.java
  class ASTSequence (line 26) | public class ASTSequence<C extends OgnlContext<C>> extends SimpleNode<C>...
    method ASTSequence (line 35) | public ASTSequence(int id) {
    method ASTSequence (line 39) | public ASTSequence(OgnlParser p, int id) {
    method jjtClose (line 43) | public void jjtClose() {
    method getValueBody (line 47) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 55) | protected void setValueBody(C context, Object target, Object value) th...
    method getGetterClass (line 63) | public Class<?> getGetterClass() {
    method getSetterClass (line 67) | public Class<?> getSetterClass() {
    method getLastExpression (line 71) | public String getLastExpression() {
    method getCoreExpression (line 75) | public String getCoreExpression() {
    method toString (line 79) | public String toString() {
    method toSetSourceString (line 91) | public String toSetSourceString(C context, Object target) {
    method toGetSourceString (line 95) | public String toGetSourceString(C context, Object target) {
    method isSequence (line 140) | public boolean isSequence(C context) {

FILE: ognl/src/main/java/ognl/ASTShiftLeft.java
  class ASTShiftLeft (line 23) | public class ASTShiftLeft<C extends OgnlContext<C>> extends NumericExpre...
    method ASTShiftLeft (line 28) | public ASTShiftLeft(int id) {
    method ASTShiftLeft (line 32) | public ASTShiftLeft(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTShiftRight.java
  class ASTShiftRight (line 23) | public class ASTShiftRight<C extends OgnlContext<C>> extends NumericExpr...
    method ASTShiftRight (line 28) | public ASTShiftRight(int id) {
    method ASTShiftRight (line 32) | public ASTShiftRight(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTStaticField.java
  class ASTStaticField (line 25) | public class ASTStaticField<C extends OgnlContext<C>> extends SimpleNode...
    method ASTStaticField (line 34) | public ASTStaticField(int id) {
    method ASTStaticField (line 38) | public ASTStaticField(OgnlParser p, int id) {
    method init (line 45) | void init(String className, String fieldName) {
    method getValueBody (line 50) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method isNodeConstant (line 54) | public boolean isNodeConstant(C context) throws OgnlException {
    method getFieldClass (line 91) | private Class<?> getFieldClass(C context) throws OgnlException {
    method getGetterClass (line 116) | public Class<?> getGetterClass() {
    method getSetterClass (line 120) | public Class<?> getSetterClass() {
    method toString (line 124) | public String toString() {
    method toGetSourceString (line 128) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 140) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTStaticMethod.java
  class ASTStaticMethod (line 28) | public class ASTStaticMethod<C extends OgnlContext<C>> extends SimpleNod...
    method ASTStaticMethod (line 37) | public ASTStaticMethod(int id) {
    method ASTStaticMethod (line 41) | public ASTStaticMethod(OgnlParser p, int id) {
    method init (line 48) | void init(String className, String methodName) {
    method getValueBody (line 53) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getGetterClass (line 64) | public Class<?> getGetterClass() {
    method getSetterClass (line 68) | public Class<?> getSetterClass() {
    method toString (line 72) | public String toString() {
    method toGetSourceString (line 88) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 202) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTSubtract.java
  class ASTSubtract (line 23) | public class ASTSubtract<C extends OgnlContext<C>> extends NumericExpres...
    method ASTSubtract (line 28) | public ASTSubtract(int id) {
    method ASTSubtract (line 32) | public ASTSubtract(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/ASTTest.java
  class ASTTest (line 25) | public class ASTTest<C extends OgnlContext<C>> extends ExpressionNode<C> {
    method ASTTest (line 30) | public ASTTest(int id) {
    method ASTTest (line 34) | public ASTTest(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 44) | protected void setValueBody(C context, Object target, Object value) th...
    method getExpressionOperator (line 50) | public String getExpressionOperator(int index) {
    method toGetSourceString (line 54) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTThisVarRef.java
  class ASTThisVarRef (line 25) | public class ASTThisVarRef<C extends OgnlContext<C>> extends ASTVarRef<C> {
    method ASTThisVarRef (line 30) | public ASTThisVarRef(int id) {
    method ASTThisVarRef (line 34) | public ASTThisVarRef(OgnlParser p, int id) {
    method getValueBody (line 38) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 42) | protected void setValueBody(C context, Object target, Object value) th...
    method toString (line 46) | public String toString() {
    method toGetSourceString (line 50) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 54) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTUnsignedShiftRight.java
  class ASTUnsignedShiftRight (line 23) | public class ASTUnsignedShiftRight<C extends OgnlContext<C>> extends Num...
    method ASTUnsignedShiftRight (line 28) | public ASTUnsignedShiftRight(int id) {
    method ASTUnsignedShiftRight (line 32) | public ASTUnsignedShiftRight(OgnlParser p, int id) {
    method getValueBody (line 36) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 42) | public String getExpressionOperator(int index) {
    method toGetSourceString (line 46) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTVarRef.java
  class ASTVarRef (line 26) | public class ASTVarRef<C extends OgnlContext<C>> extends SimpleNode<C> i...
    method ASTVarRef (line 37) | public ASTVarRef(int id) {
    method ASTVarRef (line 41) | public ASTVarRef(OgnlParser p, int id) {
    method setName (line 45) | void setName(String name) {
    method getValueBody (line 49) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method setValueBody (line 53) | protected void setValueBody(C context, Object target, Object value) th...
    method getGetterClass (line 57) | public Class<?> getGetterClass() {
    method getSetterClass (line 61) | public Class<?> getSetterClass() {
    method getCoreExpression (line 65) | public String getCoreExpression() {
    method getLastExpression (line 69) | public String getLastExpression() {
    method toString (line 73) | public String toString() {
    method toGetSourceString (line 77) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 110) | public String toSetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ASTXor.java
  class ASTXor (line 23) | public class ASTXor<C extends OgnlContext<C>> extends NumericExpression<...
    method ASTXor (line 28) | public ASTXor(int id) {
    method ASTXor (line 32) | public ASTXor(OgnlParser p, int id) {
    method jjtClose (line 36) | public void jjtClose() {
    method getValueBody (line 40) | protected Object getValueBody(C context, Object source) throws OgnlExc...
    method getExpressionOperator (line 47) | public String getExpressionOperator(int index) {

FILE: ognl/src/main/java/ognl/AbstractMemberAccess.java
  class AbstractMemberAccess (line 26) | abstract public class AbstractMemberAccess<C extends OgnlContext<C>> imp...
    method setup (line 28) | public Object setup(C context, Object target, Member member, String pr...
    method restore (line 32) | public void restore(C context, Object target, Member member, String pr...

FILE: ognl/src/main/java/ognl/AccessibleObjectHandler.java
  type AccessibleObjectHandler (line 28) | public interface AccessibleObjectHandler {
    method setAccessible (line 35) | default void setAccessible(AccessibleObject accessibleObject, boolean ...

FILE: ognl/src/main/java/ognl/ArrayElementsAccessor.java
  class ArrayElementsAccessor (line 27) | public class ArrayElementsAccessor implements ElementsAccessor {
    method getElements (line 28) | public Enumeration<?> getElements(final Object target) {

FILE: ognl/src/main/java/ognl/ArrayPropertyAccessor.java
  class ArrayPropertyAccessor (line 27) | public class ArrayPropertyAccessor<C extends OgnlContext<C>> extends Obj...
    method getProperty (line 29) | public Object getProperty(C context, Object target, Object name) throw...
    method setProperty (line 73) | public void setProperty(C context, Object target, Object name, Object ...
    method getSourceAccessor (line 113) | public String getSourceAccessor(C context, Object target, Object index) {
    method getSourceSetter (line 136) | public String getSourceSetter(C context, Object target, Object index) {

FILE: ognl/src/main/java/ognl/BooleanExpression.java
  class BooleanExpression (line 28) | public abstract class BooleanExpression<C extends OgnlContext<C>> extend...
    method BooleanExpression (line 35) | public BooleanExpression(int id) {
    method BooleanExpression (line 39) | public BooleanExpression(OgnlParser p, int id) {
    method getGetterClass (line 43) | public Class<?> getGetterClass() {
    method getSetterClass (line 47) | public Class<?> getSetterClass() {
    method toGetSourceString (line 51) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/ClassCacheInspector.java
  type ClassCacheInspector (line 25) | public interface ClassCacheInspector {
    method shouldCache (line 33) | boolean shouldCache(Class<?> type);

FILE: ognl/src/main/java/ognl/ClassResolver.java
  type ClassResolver (line 25) | public interface ClassResolver<C extends OgnlContext<C>> {
    method classForName (line 27) | <T> Class<T> classForName(String className, C context) throws ClassNot...

FILE: ognl/src/main/java/ognl/CollectionElementsAccessor.java
  class CollectionElementsAccessor (line 27) | public class CollectionElementsAccessor implements ElementsAccessor {
    method getElements (line 29) | public Enumeration<?> getElements(Object target) {

FILE: ognl/src/main/java/ognl/ComparisonExpression.java
  class ComparisonExpression (line 28) | public abstract class ComparisonExpression<C extends OgnlContext<C>> ext...
    method ComparisonExpression (line 33) | public ComparisonExpression(int id) {
    method ComparisonExpression (line 37) | public ComparisonExpression(OgnlParser p, int id) {
    method getComparisonFunction (line 41) | public abstract String getComparisonFunction();
    method toGetSourceString (line 43) | public String toGetSourceString(C context, Object target) {

FILE: ognl/src/main/java/ognl/DefaultClassResolver.java
  class DefaultClassResolver (line 28) | public class DefaultClassResolver<C extends OgnlContext<C>> implements C...
    method DefaultClassResolver (line 32) | public DefaultClassResolver() {
    method classForName (line 36) | public <T> Class<T> classForName(String className, C context) throws C...
    method toClassForName (line 60) | protected Class<?> toClassForName(String className) throws ClassNotFou...

FILE: ognl/src/main/java/ognl/DefaultTypeConverter.java
  class DefaultTypeConverter (line 26) | public class DefaultTypeConverter<C extends OgnlContext<C>> implements T...
    method DefaultTypeConverter (line 28) | public DefaultTypeConverter() {
    method convertValue (line 32) | public Object convertValue(C context, Object value, Class<?> toType) {
    method convertValue (line 36) | public Object convertValue(C context, Object target, Member member, St...

FILE: ognl/src/main/java/ognl/DynamicSubscript.java
  class DynamicSubscript (line 27) | public class DynamicSubscript {
    method DynamicSubscript (line 41) | private DynamicSubscript(int flag) {
    method getFlag (line 45) | public int getFlag() {
    method toString (line 49) | public String toString() {

FILE: ognl/src/main/java/ognl/ElementsAccessor.java
  type ElementsAccessor (line 33) | public interface ElementsAccessor {
    method getElements (line 41) | Enumeration<?> getElements(Object target) throws OgnlException;

FILE: ognl/src/main/java/ognl/EnumerationElementsAccessor.java
  class EnumerationElementsAccessor (line 27) | public class EnumerationElementsAccessor implements ElementsAccessor {
    method getElements (line 29) | public Enumeration<?> getElements(Object target) {

FILE: ognl/src/main/java/ognl/EnumerationIterator.java
  class EnumerationIterator (line 27) | public class EnumerationIterator<T> implements Iterator<T> {
    method EnumerationIterator (line 31) | public EnumerationIterator(Enumeration<T> enumeration) {
    method hasNext (line 35) | public boolean hasNext() {
    method next (line 39) | public T next() {
    method remove (line 43) | public void remove() {

FILE: ognl/src/main/java/ognl/EnumerationPropertyAccessor.java
  class EnumerationPropertyAccessor (line 28) | public class EnumerationPropertyAccessor<C extends OgnlContext<C>> exten...
    method getProperty (line 30) | public Object getProperty(C context, Object target, Object name) throw...
    method setProperty (line 50) | public void setProperty(C context, Object target, Object name, Object ...

FILE: ognl/src/main/java/ognl/Evaluation.java
  class Evaluation (line 27) | public class Evaluation<C extends OgnlContext<C>> {
    method Evaluation (line 46) | public Evaluation(SimpleNode<C> node, Object source) {
    method Evaluation (line 61) | public Evaluation(SimpleNode<C> node, Object source, boolean setOperat...
    method getNode (line 71) | public SimpleNode<C> getNode() {
    method setNode (line 83) | public void setNode(SimpleNode<C> value) {
    method getSource (line 92) | public Object getSource() {
    method setSource (line 104) | public void setSource(Object value) {
    method isSetOperation (line 113) | public boolean isSetOperation() {
    method setSetOperation (line 123) | public void setSetOperation(boolean value) {
    method getResult (line 132) | public Object getResult() {
    method setResult (line 142) | public void setResult(Object value) {
    method getException (line 152) | public Throwable getException() {
    method setException (line 163) | public void setException(Throwable value) {
    method getParent (line 173) | public Evaluation<C> getParent() {
    method getNext (line 183) | public Evaluation<C> getNext() {
    method getPrevious (line 193) | public Evaluation<C> getPrevious() {
    method getFirstChild (line 203) | public Evaluation<C> getFirstChild() {
    method getLastChild (line 213) | public Evaluation<C> getLastChild() {
    method getFirstDescendant (line 223) | public Evaluation<C> getFirstDescendant() {
    method getLastDescendant (line 236) | public Evaluation<C> getLastDescendant() {
    method addChild (line 252) | public void addChild(Evaluation<C> child) {
    method init (line 276) | public void init(SimpleNode<C> node, Object source, boolean setOperati...
    method reset (line 292) | public void reset() {
    method toString (line 309) | public String toString(boolean compact, boolean showChildren, String d...
    method toString (line 343) | public String toString(boolean compact, String depth) {
    method toString (line 352) | public String toString() {

FILE: ognl/src/main/java/ognl/EvaluationPool.java
  class EvaluationPool (line 21) | public final class EvaluationPool<C extends OgnlContext<C>> {
    method create (line 32) | public Evaluation<C> create(SimpleNode<C> node, Object source) {
    method create (line 45) | public Evaluation<C> create(SimpleNode<C> node, Object source, boolean...

FILE: ognl/src/main/java/ognl/ExpressionNode.java
  class ExpressionNode (line 25) | public abstract class ExpressionNode<C extends OgnlContext<C>> extends S...
    method ExpressionNode (line 30) | public ExpressionNode(int i) {
    method ExpressionNode (line 34) | public ExpressionNode(OgnlParser p, int i) {
    method isNodeConstant (line 41) | public boolean isNodeConstant(C context) throws OgnlException {
    method isConstant (line 45) | public boolean isConstant(C context) throws OgnlException {
    method getExpressionOperator (line 61) | public String getExpressionOperator(int index) {
    method toString (line 65) | public String toString() {
    method toGetSourceString (line 82) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 123) | public String toSetSourceString(C context, Object target) {
    method isOperation (line 142) | @Override

FILE: ognl/src/main/java/ognl/ExpressionSyntaxException.java
  class ExpressionSyntaxException (line 24) | public class ExpressionSyntaxException extends OgnlException {
    method ExpressionSyntaxException (line 28) | public ExpressionSyntaxException(String expression, Throwable reason) {

FILE: ognl/src/main/java/ognl/InappropriateExpressionException.java
  class InappropriateExpressionException (line 26) | public class InappropriateExpressionException extends OgnlException {
    method InappropriateExpressionException (line 30) | public InappropriateExpressionException(Node tree) {

FILE: ognl/src/main/java/ognl/IteratorElementsAccessor.java
  class IteratorElementsAccessor (line 28) | public class IteratorElementsAccessor implements ElementsAccessor {
    method getElements (line 30) | public Enumeration<?> getElements(Object target) {

FILE: ognl/src/main/java/ognl/IteratorEnumeration.java
  class IteratorEnumeration (line 27) | public class IteratorEnumeration implements Enumeration<Object> {
    method IteratorEnumeration (line 31) | public IteratorEnumeration(Iterator<?> it) {
    method hasMoreElements (line 36) | public boolean hasMoreElements() {
    method nextElement (line 40) | public Object nextElement() {

FILE: ognl/src/main/java/ognl/IteratorPropertyAccessor.java
  class IteratorPropertyAccessor (line 27) | public class IteratorPropertyAccessor<C extends OgnlContext<C>> extends ...
    method getProperty (line 29) | public Object getProperty(C context, Object target, Object name) throw...
    method setProperty (line 49) | public void setProperty(C context, Object target, Object name, Object ...

FILE: ognl/src/main/java/ognl/JJTOgnlParserState.java
  class JJTOgnlParserState (line 4) | public class JJTOgnlParserState {
    method JJTOgnlParserState (line 12) | public JJTOgnlParserState() {
    method nodeCreated (line 22) | public boolean nodeCreated() {
    method reset (line 28) | public void reset() {
    method rootNode (line 37) | public Node rootNode() {
    method pushNode (line 42) | public void pushNode(Node n) {
    method popNode (line 49) | public Node popNode() {
    method peekNode (line 57) | public Node peekNode() {
    method nodeArity (line 63) | public int nodeArity() {
    method clearNodeScope (line 68) | public void clearNodeScope(Node n) {
    method openNodeScope (line 76) | public void openNodeScope(Node n) {
    method closeNodeScope (line 87) | public void closeNodeScope(Node n, int num) {
    method closeNodeScope (line 105) | public void closeNodeScope(Node n, boolean condition) {

FILE: ognl/src/main/java/ognl/JavaSource.java
  type JavaSource (line 29) | public interface JavaSource<C extends OgnlContext<C>> {
    method toGetSourceString (line 40) | String toGetSourceString(C context, Object target);
    method toSetSourceString (line 51) | String toSetSourceString(C context, Object target);

FILE: ognl/src/main/java/ognl/ListPropertyAccessor.java
  class ListPropertyAccessor (line 31) | public class ListPropertyAccessor<C extends OgnlContext<C>> extends Obje...
    method getProperty (line 33) | public Object getProperty(C context, Object target, Object name) throw...
    method setProperty (line 76) | public void setProperty(C context, Object target, Object name, Object ...
    method getPropertyClass (line 114) | public Class<?> getPropertyClass(C context, Object target, Object inde...
    method getSourceAccessor (line 139) | public String getSourceAccessor(C context, Object target, Object index) {
    method getSourceSetter (line 198) | public String getSourceSetter(C context, Object target, Object index) {

FILE: ognl/src/main/java/ognl/MapElementsAccessor.java
  class MapElementsAccessor (line 27) | public class MapElementsAccessor implements ElementsAccessor {
    method getElements (line 29) | public Enumeration<?> getElements(Object target) {

FILE: ognl/src/main/java/ognl/MapPropertyAccessor.java
  class MapPropertyAccessor (line 29) | public class MapPropertyAccessor<C extends OgnlContext<C>> implements Pr...
    method getProperty (line 31) | public Object getProperty(C context, Object target, Object name) throw...
    method setProperty (line 72) | public void setProperty(C context, Object target, Object name, Object ...
    method getSourceAccessor (line 77) | public String getSourceAccessor(C context, Object target, Object index) {
    method getSourceSetter (line 118) | public String getSourceSetter(C context, Object target, Object index) {

FILE: ognl/src/main/java/ognl/MemberAccess.java
  type MemberAccess (line 28) | public interface MemberAccess<C extends OgnlContext<C>> {
    method setup (line 38) | Object setup(C context, Object target, Member member, String propertyN...
    method restore (line 49) | void restore(C context, Object target, Member member, String propertyN...
    method isAccessible (line 61) | boolean isAccessible(C context, Object target, Member member, String p...

FILE: ognl/src/main/java/ognl/MethodAccessor.java
  type MethodAccessor (line 26) | public interface MethodAccessor<C extends OgnlContext<C>> {
    method callStaticMethod (line 37) | Object callStaticMethod(C context, Class<?> targetClass, String method...
    method callMethod (line 49) | Object callMethod(C context, Object target, String methodName, Object[...

FILE: ognl/src/main/java/ognl/MethodFailedException.java
  class MethodFailedException (line 24) | public class MethodFailedException extends OgnlException {
    method MethodFailedException (line 28) | public MethodFailedException(Object source, String name) {
    method MethodFailedException (line 32) | public MethodFailedException(Object source, String name, Throwable rea...

FILE: ognl/src/main/java/ognl/NoSuchPropertyException.java
  class NoSuchPropertyException (line 25) | public class NoSuchPropertyException extends OgnlException {
    method NoSuchPropertyException (line 32) | public NoSuchPropertyException(Object target, Object name) {
    method NoSuchPropertyException (line 36) | public NoSuchPropertyException(Object target, Object name, Throwable r...
    method getReason (line 42) | static String getReason(Object target, Object name) {
    method getTarget (line 57) | public Object getTarget() {
    method getName (line 61) | public Object getName() {

FILE: ognl/src/main/java/ognl/Node.java
  type Node (line 31) | public interface Node<C extends OgnlContext<C>> extends JavaSource<C> {
    method jjtOpen (line 37) | void jjtOpen();
    method jjtClose (line 43) | void jjtClose();
    method jjtSetParent (line 51) | void jjtSetParent(Node<C> n);
    method jjtGetParent (line 53) | Node<C> jjtGetParent();
    method jjtAddChild (line 62) | void jjtAddChild(Node<C> n, int i);
    method jjtGetChild (line 71) | Node<C> jjtGetChild(int i);
    method jjtGetNumChildren (line 78) | int jjtGetNumChildren();
    method getValue (line 91) | Object getValue(C context, Object source) throws OgnlException;
    method setValue (line 102) | void setValue(C context, Object target, Object value) throws OgnlExcep...
    method getAccessor (line 109) | ExpressionAccessor<C> getAccessor();
    method setAccessor (line 116) | void setAccessor(ExpressionAccessor<C> accessor);

FILE: ognl/src/main/java/ognl/NodeType.java
  type NodeType (line 27) | public interface NodeType {
    method getGetterClass (line 34) | Class<?> getGetterClass();
    method getSetterClass (line 41) | Class<?> getSetterClass();

FILE: ognl/src/main/java/ognl/NullHandler.java
  type NullHandler (line 26) | public interface NullHandler<C extends OgnlContext<C>> {
    method nullMethodResult (line 36) | Object nullMethodResult(C context, Object target, String methodName, O...
    method nullPropertyValue (line 47) | Object nullPropertyValue(C context, Object target, Object property);

FILE: ognl/src/main/java/ognl/NumberElementsAccessor.java
  class NumberElementsAccessor (line 28) | public class NumberElementsAccessor implements ElementsAccessor, Numeric...
    method getElements (line 30) | public Enumeration<?> getElements(final Object target) {

FILE: ognl/src/main/java/ognl/NumericCasts.java
  class NumericCasts (line 29) | class NumericCasts {
    method NumericCasts (line 33) | NumericCasts() {
    method get (line 42) | String get(Class<? extends Number> cls) {

FILE: ognl/src/main/java/ognl/NumericDefaults.java
  class NumericDefaults (line 26) | class NumericDefaults {
    method NumericDefaults (line 30) | NumericDefaults() {
    method get (line 44) | Object get(Class<?> cls) {

FILE: ognl/src/main/java/ognl/NumericExpression.java
  class NumericExpression (line 28) | public abstract class NumericExpression<C extends OgnlContext<C>> extend...
    method NumericExpression (line 35) | public NumericExpression(int id) {
    method NumericExpression (line 39) | public NumericExpression(OgnlParser p, int id) {
    method getGetterClass (line 43) | public Class<?> getGetterClass() {
    method getSetterClass (line 50) | public Class<?> getSetterClass() {
    method toGetSourceString (line 54) | public String toGetSourceString(C context, Object target) {
    method coerceToNumeric (line 80) | public String coerceToNumeric(String source, C context, Node<C> child) {

FILE: ognl/src/main/java/ognl/NumericLiterals.java
  class NumericLiterals (line 29) | class NumericLiterals {
    method NumericLiterals (line 33) | NumericLiterals() {
    method get (line 47) | String get(Class<?> clazz) {

FILE: ognl/src/main/java/ognl/NumericTypes.java
  type NumericTypes (line 25) | public interface NumericTypes {

FILE: ognl/src/main/java/ognl/NumericValues.java
  class NumericValues (line 30) | class NumericValues {
    method NumericValues (line 34) | NumericValues() {
    method get (line 46) | String get(Class<?> cls) {

FILE: ognl/src/main/java/ognl/ObjectElementsAccessor.java
  class ObjectElementsAccessor (line 27) | public class ObjectElementsAccessor implements ElementsAccessor {
    method getElements (line 29) | public Enumeration<?> getElements(Object target) {

FILE: ognl/src/main/java/ognl/ObjectIndexedPropertyDescriptor.java
  class ObjectIndexedPropertyDescriptor (line 83) | public class ObjectIndexedPropertyDescriptor extends PropertyDescriptor {
    method ObjectIndexedPropertyDescriptor (line 89) | public ObjectIndexedPropertyDescriptor(String propertyName, Class<?> p...
    method getIndexedReadMethod (line 96) | public Method getIndexedReadMethod() {
    method getIndexedWriteMethod (line 100) | public Method getIndexedWriteMethod() {
    method getPropertyType (line 104) | public synchronized Class<?> getPropertyType() {

FILE: ognl/src/main/java/ognl/ObjectMethodAccessor.java
  class ObjectMethodAccessor (line 28) | public class ObjectMethodAccessor<C extends OgnlContext<C>> implements M...
    method callStaticMethod (line 30) | public Object callStaticMethod(C context, Class<?> targetClass, String...
    method callMethod (line 36) | public Object callMethod(C context, Object target, String methodName, ...

FILE: ognl/src/main/java/ognl/ObjectNullHandler.java
  class ObjectNullHandler (line 25) | public class ObjectNullHandler<C extends OgnlContext<C>> implements Null...
    method nullMethodResult (line 26) | public Object nullMethodResult(C context, Object target, String method...
    method nullPropertyValue (line 30) | public Object nullPropertyValue(C context, Object target, Object prope...

FILE: ognl/src/main/java/ognl/ObjectPropertyAccessor.java
  class ObjectPropertyAccessor (line 32) | public class ObjectPropertyAccessor<C extends OgnlContext<C>> implements...
    method getPossibleProperty (line 43) | public Object getPossibleProperty(C context, Object target, String nam...
    method setPossibleProperty (line 69) | public Object setPossibleProperty(C context, Object target, String nam...
    method hasGetProperty (line 92) | public boolean hasGetProperty(C context, Object target, Object oname) ...
    method hasSetProperty (line 100) | public boolean hasSetProperty(C context, Object target, Object oname) ...
    method getProperty (line 108) | public Object getProperty(C context, Object target, Object oname) thro...
    method setProperty (line 119) | public void setProperty(C context, Object target, Object oname, Object...
    method getPropertyClass (line 127) | public Class<?> getPropertyClass(C context, Object target, Object inde...
    method getSourceAccessor (line 149) | public String getSourceAccessor(C context, Object target, Object index) {
    method getSourceSetter (line 189) | public String getSourceSetter(C context, Object target, Object index) {

FILE: ognl/src/main/java/ognl/Ognl.java
  class Ognl (line 65) | public abstract class Ognl {
    method applyExpressionMaxLength (line 79) | public static synchronized void applyExpressionMaxLength(Integer expre...
    method freezeExpressionMaxLength (line 97) | public static synchronized void freezeExpressionMaxLength() {
    method thawExpressionMaxLength (line 108) | public static synchronized void thawExpressionMaxLength() {
    method parseExpression (line 121) | public static Object parseExpression(String expression) throws OgnlExc...
    method compileExpression (line 149) | public static <C extends OgnlContext<C>> Node<C> compileExpression(C c...
    method createDefaultContext (line 164) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method createDefaultContext (line 182) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method createDefaultContext (line 196) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method createDefaultContext (line 216) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method createDefaultContext (line 238) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method createDefaultContext (line 251) | public static <C extends OgnlContext<C>> C createDefaultContext(Object...
    method addDefaultContext (line 265) | @Deprecated(forRemoval = true)
    method addDefaultContext (line 288) | @Deprecated(forRemoval = true)
    method addDefaultContext (line 312) | @Deprecated(forRemoval = true)
    method addDefaultContext (line 324) | public static <C extends OgnlContext<C>> C addDefaultContext(Object ro...
    method addDefaultContext (line 341) | public static <C extends OgnlContext<C>> C addDefaultContext(Object ro...
    method getBuilderProvider (line 353) | public static <C extends OgnlContext<C>> OgnlContext.Builder<C> getBui...
    method withBuilderProvider (line 384) | public static <C extends OgnlContext<C>> void withBuilderProvider(Ognl...
    method getTypeConverter (line 394) | public static <C extends OgnlContext<C>> TypeConverter<C> getTypeConve...
    method setRoot (line 408) | public static <C extends OgnlContext<C>> void setRoot(C context, Objec...
    method getRoot (line 418) | public static <C extends OgnlContext<C>> Object getRoot(C context) {
    method getLastEvaluation (line 428) | public static <C extends OgnlContext<C>> Evaluation<C> getLastEvaluati...
    method getValue (line 445) | public static <C extends OgnlContext<C>> Object getValue(Object tree, ...
    method getValue (line 463) | public static <C extends OgnlContext<C>> Object getValue(Object tree, ...
    method getValue (line 502) | public static <C extends OgnlContext<C>> Object getValue(ExpressionAcc...
    method getValue (line 516) | public static <C extends OgnlContext<C>> Object getValue(ExpressionAcc...
    method getValue (line 535) | public static <C extends OgnlContext<C>> Object getValue(String expres...
    method getValue (line 555) | public static <C extends OgnlContext<C>> Object getValue(String expres...
    method getValue (line 570) | public static Object getValue(Object tree, Object root)
    method getValue (line 587) | @SuppressWarnings("unchecked")
    method getValue (line 607) | public static Object getValue(String expression, Object root) throws O...
    method getValue (line 627) | public static Object getValue(String expression, Object root, Class<?>...
    method setValue (line 644) | @SuppressWarnings("unchecked")
    method setValue (line 665) | public static <C extends OgnlContext<C>> void setValue(ExpressionAcces...
    method setValue (line 682) | public static <C extends OgnlContext<C>> void setValue(String expressi...
    method setValue (line 698) | @SuppressWarnings("unchecked")
    method setValue (line 719) | public static void setValue(String expression, Object root, Object value)
    method isConstant (line 733) | public static <C extends OgnlContext<C>> boolean isConstant(Object tre...
    method isConstant (line 745) | public static <C extends OgnlContext<C>> boolean isConstant(String exp...
    method isConstant (line 757) | @SuppressWarnings("unchecked")
    method isConstant (line 770) | @SuppressWarnings("unchecked")
    method isSimpleProperty (line 775) | public static <C extends OgnlContext<C>> boolean isSimpleProperty(Obje...
    method isSimpleProperty (line 779) | public static <C extends OgnlContext<C>> boolean isSimpleProperty(Stri...
    method isSimpleProperty (line 783) | public static <C extends OgnlContext<C>> boolean isSimpleProperty(Obje...
    method isSimpleProperty (line 787) | public static <C extends OgnlContext<C>> boolean isSimpleProperty(Stri...
    method isSimpleNavigationChain (line 791) | public static <C extends OgnlContext<C>> boolean isSimpleNavigationCha...
    method isSimpleNavigationChain (line 795) | public static <C extends OgnlContext<C>> boolean isSimpleNavigationCha...
    method isSimpleNavigationChain (line 799) | public static <C extends OgnlContext<C>> boolean isSimpleNavigationCha...
    method isSimpleNavigationChain (line 803) | public static <C extends OgnlContext<C>> boolean isSimpleNavigationCha...
    method Ognl (line 810) | private Ognl() {

FILE: ognl/src/main/java/ognl/OgnlCache.java
  class OgnlCache (line 51) | public class OgnlCache {
    method getMethodParameterTypes (line 149) | public Class<?>[] getMethodParameterTypes(Method method) throws CacheE...
    method getParameterTypes (line 153) | public Class<?>[] getParameterTypes(Constructor<?> constructor) throws...
    method getConstructor (line 157) | public List<Constructor<?>> getConstructor(Class<?> clazz) throws Cach...
    method getField (line 161) | public Map<String, Field> getField(Class<?> clazz) throws CacheExcepti...
    method getMethod (line 165) | public Map<String, List<Method>> getMethod(DeclaredMethodCacheEntry de...
    method getPropertyDescriptor (line 169) | public Map<String, PropertyDescriptor> getPropertyDescriptor(Class<?> ...
    method getMethodAccessor (line 173) | public <C extends OgnlContext<C>> MethodAccessor<C> getMethodAccessor(...
    method setMethodAccessor (line 181) | public void setMethodAccessor(Class<?> clazz, MethodAccessor accessor) {
    method setPropertyAccessor (line 185) | public void setPropertyAccessor(Class<?> clazz, PropertyAccessor acces...
    method getPropertyAccessor (line 189) | public <C extends OgnlContext<C>> PropertyAccessor<C> getPropertyAcces...
    method setClassCacheInspector (line 203) | public void setClassCacheInspector(ClassCacheInspector inspector) {
    method getGenericMethodParameterTypes (line 209) | public Class<?>[] getGenericMethodParameterTypes(GenericMethodParamete...
    method getMethodPerm (line 213) | @Deprecated(since = "3.4.6", forRemoval = true)
    method getMethodAccess (line 218) | public MethodAccessEntryValue getMethodAccess(Method method) throws Ca...
    method clear (line 222) | public void clear() {
    method getElementsAccessor (line 233) | public ElementsAccessor getElementsAccessor(Class<?> clazz) throws Ogn...
    method setElementsAccessor (line 241) | public void setElementsAccessor(Class<?> clazz, ElementsAccessor acces...
    method getNullHandler (line 245) | public <C extends OgnlContext<C>> NullHandler<C> getNullHandler(Class<...
    method setNullHandler (line 253) | public void setNullHandler(Class<?> clazz, NullHandler handler) {

FILE: ognl/src/main/java/ognl/OgnlContext.java
  class OgnlContext (line 37) | public class OgnlContext<C extends OgnlContext<C>> implements Map<String...
    method OgnlContext (line 107) | @Deprecated(forRemoval = true)
    method OgnlContext (line 112) | public OgnlContext(MemberAccess<C> memberAccess, ClassResolver<C> clas...
    method OgnlContext (line 116) | public OgnlContext(MemberAccess<C> memberAccess, ClassResolver<C> clas...
    method OgnlContext (line 120) | public OgnlContext(MemberAccess<C> memberAccess) {
    method OgnlContext (line 133) | public OgnlContext(MemberAccess<C> memberAccess, ClassResolver<C> clas...
    method setValues (line 155) | public void setValues(Map<String, Object> values) {
    method withValues (line 166) | @SuppressWarnings("unchecked")
    method getValues (line 177) | public Map<String, Object> getValues() {
    method getClassResolver (line 181) | public ClassResolver<C> getClassResolver() {
    method getTypeConverter (line 185) | public TypeConverter<C> getTypeConverter() {
    method getMemberAccess (line 189) | public MemberAccess<C> getMemberAccess() {
    method setRoot (line 196) | @Deprecated(forRemoval = true)
    method getRoot (line 201) | public Object getRoot() {
    method getTraceEvaluations (line 208) | @Deprecated
    method isTraceEvaluations (line 213) | public boolean isTraceEvaluations() {
    method setTraceEvaluations (line 217) | public void setTraceEvaluations(boolean value) {
    method getLastEvaluation (line 221) | public Evaluation<C> getLastEvaluation() {
    method setLastEvaluation (line 225) | public void setLastEvaluation(Evaluation<C> value) {
    method getKeepLastEvaluation (line 232) | @Deprecated
    method isKeepLastEvaluation (line 243) | public boolean isKeepLastEvaluation() {
    method setKeepLastEvaluation (line 253) | public void setKeepLastEvaluation(boolean value) {
    method isIgnoreReadMethods (line 263) | public boolean isIgnoreReadMethods() {
    method setIgnoreReadMethods (line 273) | public void setIgnoreReadMethods(boolean value) {
    method setCurrentObject (line 277) | public void setCurrentObject(Object value) {
    method getCurrentObject (line 281) | public Object getCurrentObject() {
    method setCurrentAccessor (line 285) | public void setCurrentAccessor(Class<?> type) {
    method getCurrentAccessor (line 289) | public Class<?> getCurrentAccessor() {
    method getPreviousAccessor (line 296) | public Class<?> getPreviousAccessor() {
    method getFirstAccessor (line 306) | public Class<?> getFirstAccessor() {
    method getCurrentType (line 318) | public Class<?> getCurrentType() {
    method setCurrentType (line 325) | public void setCurrentType(Class<?> type) {
    method getPreviousType (line 335) | public Class<?> getPreviousType() {
    method setPreviousType (line 345) | public void setPreviousType(Class<?> type) {
    method getFirstType (line 352) | public Class<?> getFirstType() {
    method setCurrentNode (line 359) | public void setCurrentNode(Node<C> value) {
    method getCurrentNode (line 363) | public Node<C> getCurrentNode() {
    method getCurrentEvaluation (line 373) | public Evaluation<C> getCurrentEvaluation() {
    method setCurrentEvaluation (line 377) | public void setCurrentEvaluation(Evaluation<C> value) {
    method getRootEvaluation (line 387) | public Evaluation<C> getRootEvaluation() {
    method setRootEvaluation (line 391) | public void setRootEvaluation(Evaluation<C> value) {
    method getEvaluation (line 403) | public Evaluation<C> getEvaluation(int relativeIndex) {
    method pushEvaluation (line 421) | public void pushEvaluation(Evaluation<C> value) {
    method popEvaluation (line 436) | public Evaluation<C> popEvaluation() {
    method incrementLocalReferenceCounter (line 449) | public int incrementLocalReferenceCounter() {
    method addLocalReference (line 453) | public void addLocalReference(String key, LocalReference reference) {
    method getLocalReferences (line 461) | public Map<String, LocalReference> getLocalReferences() {
    method size (line 466) | @Override
    method isEmpty (line 471) | @Override
    method containsKey (line 476) | @Override
    method containsValue (line 481) | @Override
    method get (line 486) | @Override
    method put (line 523) | @Override
    method remove (line 563) | @Override
    method putAll (line 603) | @Override
    method clear (line 610) | @Override
    method keySet (line 629) | @Override
    method values (line 634) | public Collection<Object> values() {
    method entrySet (line 638) | @Override
    method equals (line 643) | @Override
    method hashCode (line 653) | @Override
    method withRoot (line 658) | public C withRoot(Object value) {
    class Builder (line 671) | public static class Builder<C extends OgnlContext<C>> {
      method Builder (line 680) | public Builder(Function<Builder<C>, C> provider) {
      method withMemberAccess (line 684) | public Builder<C> withMemberAccess(MemberAccess<C> memberAccess) {
      method withClassResolver (line 692) | public Builder<C> withClassResolver(ClassResolver<C> classResolver) {
      method withTypeConverter (line 697) | public Builder<C> withTypeConverter(TypeConverter<C> converter) {
      method withRoot (line 702) | public Builder<C> withRoot(Object value) {
      method withInitialContext (line 707) | public Builder<C> withInitialContext(Map<String, Object> initialCont...
      method getMemberAccess (line 712) | public MemberAccess<C> getMemberAccess() {
      method getClassResolver (line 716) | public ClassResolver<C> getClassResolver() {
      method getTypeConverter (line 720) | public TypeConverter<C> getTypeConverter() {
      method getInitialContext (line 724) | public Map<String, Object> getInitialContext() {
      method getRoot (line 728) | public Object getRoot() {
      method build (line 732) | public C build() {

FILE: ognl/src/main/java/ognl/OgnlException.java
  class OgnlException (line 24) | public class OgnlException extends Exception {
    method OgnlException (line 36) | public OgnlException() {
    method OgnlException (line 45) | public OgnlException(String msg) {
    method OgnlException (line 55) | public OgnlException(String msg, Throwable reason) {
    method OgnlException (line 69) | protected OgnlException(String message, Throwable reason, boolean enab...
    method getReason (line 78) | public Throwable getReason() {
    method getEvaluation (line 88) | public Evaluation getEvaluation() {
    method setEvaluation (line 97) | public void setEvaluation(Evaluation value) {
    method toString (line 106) | public String toString() {

FILE: ognl/src/main/java/ognl/OgnlOps.java
  class OgnlOps (line 33) | public abstract class OgnlOps implements NumericTypes {
    method compareWithConversion (line 51) | public static int compareWithConversion(Object v1, Object v2) {
    method isEqual (line 108) | public static boolean isEqual(Object object1, Object object2) {
    method booleanValue (line 138) | public static boolean booleanValue(boolean value) {
    method booleanValue (line 142) | public static boolean booleanValue(int value) {
    method booleanValue (line 146) | public static boolean booleanValue(float value) {
    method booleanValue (line 150) | public static boolean booleanValue(long value) {
    method booleanValue (line 154) | public static boolean booleanValue(double value) {
    method booleanValue (line 166) | public static boolean booleanValue(Object value) {
    method longValue (line 196) | public static long longValue(Object value)
    method doubleValue (line 213) | public static double doubleValue(Object value)
    method bigIntValue (line 232) | public static BigInteger bigIntValue(Object value)
    method bigDecValue (line 251) | public static BigDecimal bigDecValue(Object value)
    method stringValue (line 270) | public static String stringValue(Object value, boolean trim) {
    method stringValue (line 291) | public static String stringValue(Object value) {
    method getNumericType (line 302) | public static int getNumericType(Object value) {
    method toArray (line 319) | public static Object toArray(char value, Class<?> toType) {
    method toArray (line 323) | public static Object toArray(byte value, Class<?> toType) {
    method toArray (line 327) | public static Object toArray(int value, Class<?> toType) {
    method toArray (line 331) | public static Object toArray(long value, Class<?> toType) {
    method toArray (line 335) | public static Object toArray(float value, Class<?> toType) {
    method toArray (line 339) | public static Object toArray(double value, Class<?> toType) {
    method toArray (line 343) | public static Object toArray(boolean value, Class<?> toType) {
    method convertValue (line 347) | public static Object convertValue(char value, Class<?> toType) {
    method convertValue (line 351) | public static Object convertValue(byte value, Class<?> toType) {
    method convertValue (line 355) | public static Object convertValue(int value, Class<?> toType) {
    method convertValue (line 359) | public static Object convertValue(long value, Class<?> toType) {
    method convertValue (line 363) | public static Object convertValue(float value, Class<?> toType) {
    method convertValue (line 367) | public static Object convertValue(double value, Class<?> toType) {
    method convertValue (line 371) | public static Object convertValue(boolean value, Class<?> toType) {
    method convertValue (line 375) | public static Object convertValue(char value, Class<?> toType, boolean...
    method convertValue (line 379) | public static Object convertValue(byte value, Class<?> toType, boolean...
    method convertValue (line 383) | public static Object convertValue(int value, Class<?> toType, boolean ...
    method convertValue (line 387) | public static Object convertValue(long value, Class<?> toType, boolean...
    method convertValue (line 391) | public static Object convertValue(float value, Class<?> toType, boolea...
    method convertValue (line 395) | public static Object convertValue(double value, Class<?> toType, boole...
    method convertValue (line 399) | public static Object convertValue(boolean value, Class<?> toType, bool...
    method toArray (line 403) | public static Object toArray(char value, Class<?> toType, boolean prev...
    method toArray (line 407) | public static Object toArray(byte value, Class<?> toType, boolean prev...
    method toArray (line 411) | public static Object toArray(int value, Class<?> toType, boolean preve...
    method toArray (line 415) | public static Object toArray(long value, Class<?> toType, boolean prev...
    method toArray (line 419) | public static Object toArray(float value, Class<?> toType, boolean pre...
    method toArray (line 423) | public static Object toArray(double value, Class<?> toType, boolean pr...
    method toArray (line 427) | public static Object toArray(boolean value, Class<?> toType, boolean p...
    method convertValue (line 440) | public static Object convertValue(Object value, Class<?> toType) {
    method toArray (line 444) | public static Object toArray(Object value, Class<?> toType) {
    method toArray (line 448) | public static Object toArray(Object value, Class<?> toType, boolean pr...
    method convertValue (line 479) | public static Object convertValue(Object value, Class<?> toType, boole...
    method getIntValue (line 558) | public static int getIntValue(Object value) {
    method getNumericType (line 584) | public static int getNumericType(Object v1, Object v2) {
    method getNumericType (line 597) | public static int getNumericType(int t1, int t2, boolean canBeNonNumer...
    method getNumericType (line 626) | public static int getNumericType(Object v1, Object v2, boolean canBeNo...
    method newInteger (line 639) | public static Number newInteger(int type, long value) {
    method newReal (line 677) | public static Number newReal(int type, double value) {
    method binaryOr (line 682) | public static Object binaryOr(Object v1, Object v2) {
    method binaryXor (line 688) | public static Object binaryXor(Object v1, Object v2) {
    method binaryAnd (line 694) | public static Object binaryAnd(Object v1, Object v2) {
    method equal (line 700) | public static boolean equal(Object v1, Object v2) {
    method less (line 705) | public static boolean less(Object v1, Object v2) {
    method greater (line 709) | public static boolean greater(Object v1, Object v2) {
    method in (line 713) | public static boolean in(Object v1, Object v2)
    method shiftLeft (line 730) | public static Object shiftLeft(Object v1, Object v2) {
    method shiftRight (line 736) | public static Object shiftRight(Object v1, Object v2) {
    method unsignedShiftRight (line 742) | public static Object unsignedShiftRight(Object v1, Object v2) {
    method add (line 749) | public static Object add(Object v1, Object v2) {
    method subtract (line 773) | public static Object subtract(Object v1, Object v2) {
    method multiply (line 783) | public static Object multiply(Object v1, Object v2) {
    method divide (line 793) | public static Object divide(Object v1, Object v2) {
    method remainder (line 803) | public static Object remainder(Object v1, Object v2) {
    method negate (line 811) | public static Object negate(Object value) {
    method bitNegate (line 821) | public static Object bitNegate(Object value) {
    method getEscapeString (line 829) | public static String getEscapeString(String value) {
    method getEscapedChar (line 838) | public static String getEscapedChar(char ch) {
    method returnValue (line 894) | public static Object returnValue(Object ignore, Object returnValue) {
    method castToRuntime (line 905) | public static RuntimeException castToRuntime(Throwable t) {

FILE: ognl/src/main/java/ognl/OgnlParserTreeConstants.java
  type OgnlParserTreeConstants (line 4) | public interface OgnlParserTreeConstants {

FILE: ognl/src/main/java/ognl/OgnlRuntime.java
  class OgnlRuntime (line 65) | public class OgnlRuntime {
    method isUnsafeClass (line 165) | private static boolean isUnsafeClass(final Class<?> clazz) {
    method clearCache (line 395) | public static void clearCache() {
    method clearAdditionalCache (line 414) | public static void clearAdditionalCache() {
    method getMajorJavaVersion (line 425) | public static int getMajorJavaVersion() {
    method getNumericValueGetter (line 429) | public static String getNumericValueGetter(Class<?> type) {
    method getPrimitiveWrapperClass (line 433) | public static Class<?> getPrimitiveWrapperClass(Class<?> primitiveClas...
    method getNumericCast (line 437) | public static String getNumericCast(Class<? extends Number> type) {
    method getNumericLiteral (line 441) | public static String getNumericLiteral(Class<?> type) {
    method setCompiler (line 445) | public static void setCompiler(OgnlExpressionCompiler compiler) {
    method getCompiler (line 449) | public static OgnlExpressionCompiler getCompiler() {
    method compileExpression (line 453) | public static <C extends OgnlContext<C>> void compileExpression(C cont...
    method getTargetClass (line 466) | public static Class<?> getTargetClass(Object o) {
    method getBaseName (line 477) | public static String getBaseName(Object o) {
    method getClassBaseName (line 487) | public static String getClassBaseName(Class<?> c) {
    method getClassName (line 493) | public static String getClassName(Object o, boolean fullyQualified) {
    method getClassName (line 501) | public static String getClassName(Class<?> c, boolean fullyQualified) {
    method getPackageName (line 511) | public static String getPackageName(Object o) {
    method getClassPackageName (line 521) | public static String getClassPackageName(Class<?> c) {
    method getPointerString (line 534) | public static String getPointerString(int num) {
    method getPointerString (line 559) | public static String getPointerString(Object o) {
    method getUniqueDescriptor (line 572) | public static String getUniqueDescriptor(Object object, boolean fullyQ...
    method getUniqueDescriptor (line 599) | public static String getUniqueDescriptor(Object object) {
    method getParameterTypes (line 609) | public static Class<?>[] getParameterTypes(Method method) throws Cache...
    method findParameterTypes (line 622) | public static Class<?>[] findParameterTypes(Class<?> type, Method meth...
    method getParameterTypes (line 637) | public static Class<?>[] getParameterTypes(Constructor<?> constructor)...
    method invokeMethod (line 641) | public static Object invokeMethod(Object target, Method method, Object...
    method getArgClass (line 723) | public static Class<?> getArgClass(Object arg) {
    method getArgClasses (line 747) | public static Class<?>[] getArgClasses(Object[] args) {
    method isTypeCompatible (line 767) | public static boolean isTypeCompatible(Object object, Class<?> c) {
    method isTypeCompatible (line 778) | public static boolean isTypeCompatible(Class<?> parameterClass, Class<...
    class ArgsCompatbilityReport (line 868) | public static class ArgsCompatbilityReport {
      method ArgsCompatbilityReport (line 872) | public ArgsCompatbilityReport(int score, boolean[] conversionNeeded) {
    method areArgsCompatible (line 880) | public static boolean areArgsCompatible(Object[] args, Class<?>[] clas...
    method areArgsCompatible (line 890) | public static ArgsCompatbilityReport areArgsCompatible(Class<?>[] args...
    method isMoreSpecific (line 951) | public static boolean isMoreSpecific(Class<?>[] classes1, Class<?>[] c...
    method getModifierString (line 968) | public static String getModifierString(int modifiers) {
    method classForName (line 992) | public static <C extends OgnlContext<C>> Class classForName(C context,...
    method isInstance (line 1010) | public static <C extends OgnlContext<C>> boolean isInstance(C context,...
    method getPrimitiveDefaultValue (line 1020) | public static Object getPrimitiveDefaultValue(Class<?> forClass) {
    method getNumericDefaultValue (line 1024) | public static Object getNumericDefaultValue(Class<?> forClass) {
    method getConvertedType (line 1028) | public static <C extends OgnlContext<C>> Object getConvertedType(C con...
    method getConvertedTypes (line 1033) | public static <C extends OgnlContext<C>> boolean getConvertedTypes(C c...
    method getConvertedConstructorAndArgs (line 1059) | public static <C extends OgnlContext<C>> Constructor<?> getConvertedCo...
    method getAppropriateMethod (line 1093) | public static <C extends OgnlContext<C>> Method getAppropriateMethod(C...
    method getConvertedMethodAndArgs (line 1129) | public static <C extends OgnlContext<C>> Method getConvertedMethodAndA...
    class MatchingMethod (line 1147) | private static class MatchingMethod {
      method MatchingMethod (line 1154) | private MatchingMethod(Method method, int score, ArgsCompatbilityRep...
    method isLikelyAccessible (line 1171) | static boolean isLikelyAccessible(Class<?> clazz) {
    method findBestMethod (line 1211) | private static MatchingMethod findBestMethod(List<Method> methods, Cla...
    method callAppropriateMethod (line 1340) | public static <C extends OgnlContext<C>> Object callAppropriateMethod(...
    method callStaticMethod (line 1428) | public static <C extends OgnlContext<C>> Object callStaticMethod(C con...
    method callMethod (line 1451) | public static <C extends OgnlContext<C>> Object callMethod(C context, ...
    method callConstructor (line 1460) | public static <C extends OgnlContext<C>> Object callConstructor(C cont...
    method getMethodValue (line 1514) | public static <C extends OgnlContext<C>> Object getMethodValue(C conte...
    method setMethodValue (line 1550) | public static <C extends OgnlContext<C>> boolean setMethodValue(C cont...
    method getConstructors (line 1572) | public static List<Constructor<?>> getConstructors(Class<?> targetClas...
    method getMethods (line 1576) | public static Map<String, List<Method>> getMethods(Class<?> targetClas...
    method isDefaultMethod (line 1593) | private static boolean isDefaultMethod(Method method) {
    method isNonDefaultPublicInterfaceMethod (line 1609) | private static boolean isNonDefaultPublicInterfaceMethod(Method method) {
    method getMethods (line 1615) | public static List<Method> getMethods(Class<?> targetClass, String nam...
    method getFields (line 1619) | public static Map<String, Field> getFields(Class<?> targetClass) {
    method getField (line 1623) | public static Field getField(Class<?> inClass, String name) {
    method getFieldValue (line 1649) | public static <C extends OgnlContext<C>> Object getFieldValue(C contex...
    method setFieldValue (line 1689) | public static <C extends OgnlContext<C>> boolean setFieldValue(C conte...
    method isFieldAccessible (line 1718) | public static <C extends OgnlContext<C>> boolean isFieldAccessible(C c...
    method isFieldAccessible (line 1722) | public static <C extends OgnlContext<C>> boolean isFieldAccessible(C c...
    method hasField (line 1726) | public static <C extends OgnlContext<C>> boolean hasField(C context, O...
    method getStaticField (line 1746) | public static <C extends OgnlContext<C>> Object getStaticField(C conte...
    method getDeclaredMethods (line 1794) | public static List<Method> getDeclaredMethods(Class<?> targetClass, St...
    method isMethodCallable (line 1830) | public static boolean isMethodCallable(Method m) {
    method isMethodCallable_BridgeOrNonSynthetic (line 1854) | static boolean isMethodCallable_BridgeOrNonSynthetic(Method m) {
    method getGetMethod (line 1865) | public static Method getGetMethod(Class<?> targetClass, String propert...
    method _getGetMethod (line 1895) | private static Method _getGetMethod(Class<?> targetClass, String prope...
    method isMethodAccessible (line 1931) | public static <C extends OgnlContext<C>> boolean isMethodAccessible(C ...
    method hasGetMethod (line 1935) | public static <C extends OgnlContext<C>> boolean hasGetMethod(C contex...
    method getSetMethod (line 1947) | public static <C extends OgnlContext<C>> Method getSetMethod(C context...
    method _getSetMethod (line 1982) | private static Method _getSetMethod(OgnlContext context, Class<?> targ...
    method hasSetMethod (line 2017) | public static boolean hasSetMethod(OgnlContext context, Object target,...
    method hasGetProperty (line 2021) | public static boolean hasGetProperty(OgnlContext context, Object targe...
    method hasSetProperty (line 2028) | public static boolean hasSetProperty(OgnlContext context, Object targe...
    method getPropertyDescriptors (line 2041) | public static Map<String, PropertyDescriptor> getPropertyDescriptors(C...
    method getPropertyDescriptor (line 2054) | public static PropertyDescriptor getPropertyDescriptor(Class<?> target...
    method getPropertyDescriptorsArray (line 2061) | public static PropertyDescriptor[] getPropertyDescriptorsArray(Class<?...
    method getPropertyDescriptorFromArray (line 2074) | public static PropertyDescriptor getPropertyDescriptorFromArray(Class<...
    method setMethodAccessor (line 2089) | public static void setMethodAccessor(Class<?> clazz, MethodAccessor ac...
    method getMethodAccessor (line 2093) | public static <C extends OgnlContext<C>> MethodAccessor<C> getMethodAc...
    method setPropertyAccessor (line 2098) | public static <C extends OgnlContext<C>> void setPropertyAccessor(Clas...
    method getPropertyAccessor (line 2102) | public static <C extends OgnlContext<C>> PropertyAccessor<C> getProper...
    method getElementsAccessor (line 2107) | public static ElementsAccessor getElementsAccessor(Class<?> clazz)
    method setElementsAccessor (line 2112) | public static void setElementsAccessor(Class<?> clazz, ElementsAccesso...
    method getNullHandler (line 2116) | public static <C extends OgnlContext<C>> NullHandler<C> getNullHandler...
    method setNullHandler (line 2121) | public static void setNullHandler(Class<?> clazz, NullHandler handler) {
    method getProperty (line 2125) | public static <C extends OgnlContext<C>> Object getProperty(C context,...
    method setProperty (line 2139) | public static <C extends OgnlContext<C>> void setProperty(C context, O...
    method getIndexedPropertyType (line 2165) | public static int getIndexedPropertyType(Class<?> sourceClass, String ...
    method getIndexedProperty (line 2185) | public static <C extends OgnlContext<C>> Object getIndexedProperty(C c...
    method setIndexedProperty (line 2212) | public static <C extends OgnlContext<C>> void setIndexedProperty(C con...
    method getEvaluationPool (line 2239) | public static <C extends OgnlContext<C>> EvaluationPool<C> getEvaluati...
    method setClassCacheInspector (line 2249) | public static void setClassCacheInspector(ClassCacheInspector inspecto...
    method getMethod (line 2253) | public static <C extends OgnlContext<C>> Method getMethod(C context, C...
    method getReadMethod (line 2338) | public static Method getReadMethod(Class<?> target, String name) {
    method getReadMethod (line 2342) | public static Method getReadMethod(Class<?> target, String name, Class...
    method getWriteMethod (line 2424) | public static Method getWriteMethod(Class<?> target, String name) {
    method getWriteMethod (line 2428) | public static Method getWriteMethod(Class<?> target, String name, Clas...
    method getProperty (line 2510) | public static PropertyDescriptor getProperty(Class<?> target, String n...
    method isBoolean (line 2528) | public static boolean isBoolean(String expression) {
    method shouldConvertNumericTypes (line 2554) | public static <C extends OgnlContext<C>> boolean shouldConvertNumericT...
    method getChildSource (line 2576) | public static <C extends OgnlContext<C>> String getChildSource(C conte...
    class ClassPropertyMethodCache (line 2640) | private static final class ClassPropertyMethodCache {
      method ClassPropertyMethodCache (line 2658) | ClassPropertyMethodCache() {
      method get (line 2662) | Method get(Class<?> clazz, String propertyName) {
      method put (line 2670) | void put(Class<?> clazz, String propertyName, Method method) {
      method clear (line 2688) | void clear() {
    method detectMajorJavaVersion (line 2703) | static int detectMajorJavaVersion() {
    method parseMajorJavaVersion (line 2726) | static int parseMajorJavaVersion(String versionString) {
    method getUseStricterInvocationValue (line 2773) | public static boolean getUseStricterInvocationValue() {
    method getUseFirstMatchGetSetLookupValue (line 2786) | public static boolean getUseFirstMatchGetSetLookupValue() {
    method isAccessible (line 2800) | private static <C extends OgnlContext<C>> boolean isAccessible(C conte...

FILE: ognl/src/main/java/ognl/PrimitiveDefaults.java
  class PrimitiveDefaults (line 26) | class PrimitiveDefaults {
    method PrimitiveDefaults (line 30) | PrimitiveDefaults() {
    method get (line 46) | Object get(Class<?> cls) {

FILE: ognl/src/main/java/ognl/PrimitiveTypes.java
  class PrimitiveTypes (line 24) | class PrimitiveTypes {
    method PrimitiveTypes (line 28) | PrimitiveTypes() {
    method get (line 39) | Class<?> get(String className) {

FILE: ognl/src/main/java/ognl/PrimitiveWrapperClasses.java
  class PrimitiveWrapperClasses (line 27) | class PrimitiveWrapperClasses {
    method PrimitiveWrapperClasses (line 31) | PrimitiveWrapperClasses() {
    method get (line 50) | Class<?> get(Class<?> cls) {

FILE: ognl/src/main/java/ognl/PropertyAccessor.java
  type PropertyAccessor (line 38) | public interface PropertyAccessor<C extends OgnlContext<C>> {
    method getProperty (line 49) | Object getProperty(C context, Object target, Object name) throws OgnlE...
    method setProperty (line 60) | void setProperty(C context, Object target, Object name, Object value) ...
    method getSourceAccessor (line 71) | String getSourceAccessor(C context, Object target, Object index);
    method getSourceSetter (line 82) | String getSourceSetter(C context, Object target, Object index);

FILE: ognl/src/main/java/ognl/SetPropertyAccessor.java
  class SetPropertyAccessor (line 27) | public class SetPropertyAccessor<C extends OgnlContext<C>> extends Objec...
    method getProperty (line 29) | public Object getProperty(C context, Object target, Object name) throw...

FILE: ognl/src/main/java/ognl/SimpleNode.java
  class SimpleNode (line 27) | public abstract class SimpleNode<C extends OgnlContext<C>> implements No...
    method SimpleNode (line 43) | public SimpleNode(int i) {
    method SimpleNode (line 47) | public SimpleNode(OgnlParser p, int i) {
    method jjtOpen (line 52) | public void jjtOpen() {
    method jjtClose (line 55) | public void jjtClose() {
    method jjtSetParent (line 58) | public void jjtSetParent(Node<C> n) {
    method jjtGetParent (line 62) | public Node<C> jjtGetParent() {
    method jjtAddChild (line 66) | public void jjtAddChild(Node<C> n, int i) {
    method jjtGetChild (line 77) | public Node<C> jjtGetChild(int i) {
    method jjtGetNumChildren (line 81) | public int jjtGetNumChildren() {
    method toString (line 91) | public String toString() {
    method toString (line 97) | public String toString(String prefix) {
    method toGetSourceString (line 101) | public String toGetSourceString(C context, Object target) {
    method toSetSourceString (line 105) | public String toSetSourceString(C context, Object target) {
    method dump (line 113) | public void dump(PrintWriter writer, String prefix) {
    method getIndexInParent (line 126) | public int getIndexInParent() {
    method getNextSibling (line 143) | public Node<C> getNextSibling() {
    method evaluateGetValueBody (line 157) | protected Object evaluateGetValueBody(C context, Object source)
    method evaluateSetValueBody (line 176) | protected void evaluateSetValueBody(C context, Object target, Object v...
    method getValue (line 183) | public final Object getValue(C context, Object source)
    method getValueBody (line 222) | protected abstract Object getValueBody(C context, Object source)
    method setValue (line 225) | public final void setValue(C context, Object target, Object value)
    method setValueBody (line 263) | protected void setValueBody(C context, Object target, Object value)
    method isNodeConstant (line 275) | public boolean isNodeConstant(C context)
    method isConstant (line 280) | public boolean isConstant(C context)
    method isNodeSimpleProperty (line 285) | public boolean isNodeSimpleProperty(C context)
    method isSimpleProperty (line 290) | public boolean isSimpleProperty(C context)
    method isSimpleNavigationChain (line 295) | public boolean isSimpleNavigationChain(C context)
    method isEvalChain (line 300) | public boolean isEvalChain(C context) throws OgnlException {
    method isSequence (line 314) | public boolean isSequence(C context) throws OgnlException {
    method isOperation (line 328) | public boolean isOperation(C context) throws OgnlException {
    method isChain (line 342) | public boolean isChain(C context) throws OgnlException {
    method isSimpleMethod (line 356) | public boolean isSimpleMethod(C context) throws OgnlException {
    method lastChild (line 360) | protected boolean lastChild(C context) {
    method flattenTree (line 368) | protected void flattenTree() {
    method getAccessor (line 400) | public ExpressionAccessor getAccessor() {
    method setAccessor (line 404) | public void setAccessor(ExpressionAccessor accessor) {

FILE: ognl/src/main/java/ognl/TypeConverter.java
  type TypeConverter (line 26) | public interface TypeConverter<C extends OgnlContext<C>> {
    method convertValue (line 41) | Object convertValue(C context, Object target, Member member, String pr...

FILE: ognl/src/main/java/ognl/enhance/ContextClassLoader.java
  class ContextClassLoader (line 23) | public class ContextClassLoader<C extends OgnlContext<C>> extends ClassL...
    method ContextClassLoader (line 27) | public ContextClassLoader(ClassLoader parentClassLoader, C context) {
    method findClass (line 32) | protected Class<?> findClass(String name) throws ClassNotFoundException {

FILE: ognl/src/main/java/ognl/enhance/EnhancedClassLoader.java
  class EnhancedClassLoader (line 21) | public class EnhancedClassLoader extends ClassLoader {
    method EnhancedClassLoader (line 23) | public EnhancedClassLoader(ClassLoader parentClassLoader) {
    method defineClass (line 27) | public Class<?> defineClass(String enhancedClassName, byte[] byteCode) {

FILE: ognl/src/main/java/ognl/enhance/ExpressionAccessor.java
  type ExpressionAccessor (line 29) | public interface ExpressionAccessor<C extends OgnlContext<C>> {
    method get (line 38) | Object get(C context, Object target);
    method set (line 47) | void set(C context, Object target, Object value);
    method setExpression (line 55) | void setExpression(Node<C> expression);

FILE: ognl/src/main/java/ognl/enhance/ExpressionCompiler.java
  class ExpressionCompiler (line 61) | public class ExpressionCompiler<C extends OgnlContext<C>> implements Ogn...
    method ExpressionCompiler (line 84) | public ExpressionCompiler() {
    method addCastString (line 96) | public static <C extends OgnlContext<C>> void addCastString(C context,...
    method getCastString (line 119) | public static String getCastString(Class<?> type) {
    method getRootExpression (line 137) | public static <C extends OgnlContext<C>> String getRootExpression(Node...
    method shouldCast (line 179) | public static <C extends OgnlContext<C>> boolean shouldCast(Node<C> ex...
    method castExpression (line 192) | public String castExpression(C context, Node<C> expression, String bod...
    method getClassName (line 220) | public String getClassName(Class<?> clazz) {
    method getClassName (line 230) | private String getClassName(Class<?> clazz, Class<?>[] interfaces) {
    method getSuperOrInterfaceClass (line 249) | public Class<?> getSuperOrInterfaceClass(Method method, Class<?> clazz) {
    method containsMethod (line 288) | public boolean containsMethod(Method method, Class<?> clazz) {
    method getInterfaceClass (line 335) | public Class<?> getInterfaceClass(Class<?> clazz) {
    method getInterfaceClass (line 346) | private Class<?> getInterfaceClass(Class<?> clazz, Class<?>[] interfac...
    method getRootExpressionClass (line 370) | public Class<?> getRootExpressionClass(Node<C> rootNode, C context) {
    method compileExpression (line 384) | public void compileExpression(C context, Node<C> expression, Object ro...
    method instantiateClass (line 466) | protected Class<?> instantiateClass(final ClassPool pool, final CtClas...
    method generateGetter (line 472) | protected String generateGetter(C context, CtClass newClass, ClassPool...
    method createLocalReference (line 541) | public String createLocalReference(C context, String expression, Class...
    method createLocalReferences (line 552) | private void createLocalReferences(C context, ClassPool pool, CtClass ...
    method generateSetter (line 582) | protected String generateSetter(C context, CtClass newClass, ClassPool...
    method generateOgnlGetter (line 635) | protected String generateOgnlGetter(CtClass clazz, CtMethod valueGette...
    method generateOgnlSetter (line 655) | protected String generateOgnlSetter(CtClass clazz, CtMethod valueSette...
    method getClassLoader (line 672) | protected EnhancedClassLoader getClassLoader(C context) {
    method getCtClass (line 694) | protected CtClass getCtClass(Class<?> searchClass) throws NotFoundExce...
    method getClassPool (line 707) | protected ClassPool getClassPool(C context, EnhancedClassLoader loader) {

FILE: ognl/src/main/java/ognl/enhance/LocalReference.java
  type LocalReference (line 25) | public interface LocalReference {
    method getName (line 32) | String getName();
    method getExpression (line 39) | String getExpression();
    method getType (line 46) | Class<?> getType();

FILE: ognl/src/main/java/ognl/enhance/OgnlExpressionCompiler.java
  type OgnlExpressionCompiler (line 30) | public interface OgnlExpressionCompiler<C extends OgnlContext<C>> {
    method compileExpression (line 51) | void compileExpression(C context, Node<C> expression, Object root)
    method getClassName (line 61) | String getClassName(Class<?> clazz);
    method getInterfaceClass (line 72) | Class<?> getInterfaceClass(Class<?> clazz);
    method getSuperOrInterfaceClass (line 81) | Class<?> getSuperOrInterfaceClass(Method method, Class<?> clazz);
    method getRootExpressionClass (line 92) | Class<?> getRootExpressionClass(Node<C> rootNode, C context);
    method castExpression (line 109) | String castExpression(C context, Node<C> expression, String body);
    method createLocalReference (line 128) | String createLocalReference(C context, String expression, Class<?> type);

FILE: ognl/src/main/java/ognl/enhance/OgnlLocalReference.java
  class OgnlLocalReference (line 26) | public class OgnlLocalReference implements LocalReference {
    method OgnlLocalReference (line 32) | public OgnlLocalReference(String name, String expression, Class<?> cla...
    method getName (line 38) | public String getName() {
    method getExpression (line 42) | public String getExpression() {
    method getType (line 46) | public Class<?> getType() {
    method equals (line 50) | public boolean equals(Object o) {
    method hashCode (line 65) | public int hashCode() {
    method toString (line 73) | public String toString() {

FILE: ognl/src/main/java/ognl/enhance/OrderedReturn.java
  type OrderedReturn (line 28) | public interface OrderedReturn {
    method getCoreExpression (line 35) | String getCoreExpression();
    method getLastExpression (line 42) | String getLastExpression();

FILE: ognl/src/main/java/ognl/enhance/UnsupportedCompilationException.java
  class UnsupportedCompilationException (line 31) | public class UnsupportedCompilationException extends RuntimeException {
    method UnsupportedCompilationException (line 35) | public UnsupportedCompilationException(String message) {
    method UnsupportedCompilationException (line 39) | public UnsupportedCompilationException(String message, Throwable cause) {

FILE: ognl/src/main/java/ognl/internal/Cache.java
  type Cache (line 21) | public interface Cache<K, V> {
    method clear (line 23) | void clear();
    method getSize (line 25) | int getSize();
    method get (line 27) | V get(K key) throws CacheException;
    method put (line 29) | V put(K key, V value);

FILE: ognl/src/main/java/ognl/internal/CacheException.java
  class CacheException (line 21) | public class CacheException extends RuntimeException {
    method CacheException (line 25) | public CacheException(Throwable e) {

FILE: ognl/src/main/java/ognl/internal/CacheFactory.java
  type CacheFactory (line 24) | public interface CacheFactory {
    method createCache (line 26) | <K, V> Cache<K, V> createCache(CacheEntryFactory<K, V> entryFactory);
    method createClassCache (line 28) | <V> ClassCache<V> createClassCache();
    method createClassCache (line 30) | <V> ClassCache<V> createClassCache(ClassCacheEntryFactory<V> entryFact...

FILE: ognl/src/main/java/ognl/internal/ClassCache.java
  type ClassCache (line 26) | public interface ClassCache<V> extends Cache<Class<?>, V> {
    method setClassInspector (line 28) | void setClassInspector(ClassCacheInspector inspector);

FILE: ognl/src/main/java/ognl/internal/ClassCacheHandler.java
  class ClassCacheHandler (line 21) | public class ClassCacheHandler {
    method ClassCacheHandler (line 23) | private ClassCacheHandler() {
    method getHandler (line 26) | public static <T> T getHandler(Class<?> forClass, ClassCache<T> handle...

FILE: ognl/src/main/java/ognl/internal/HashMapCache.java
  class HashMapCache (line 26) | public class HashMapCache<K, V> implements Cache<K, V> {
    method HashMapCache (line 32) | public HashMapCache(CacheEntryFactory<K, V> cacheEntryFactory) {
    method clear (line 36) | public void clear() {
    method getSize (line 42) | public int getSize() {
    method get (line 48) | public V get(K key) throws CacheException {
    method shouldCreate (line 62) | protected boolean shouldCreate(CacheEntryFactory<K, V> cacheEntryFacto...
    method put (line 66) | public V put(K key, V value) {
    method contains (line 74) | public boolean contains(K key) {

FILE: ognl/src/main/java/ognl/internal/HashMapCacheFactory.java
  class HashMapCacheFactory (line 25) | public class HashMapCacheFactory implements CacheFactory {
    method createCache (line 27) | public <K, V> Cache<K, V> createCache(CacheEntryFactory<K, V> entryFac...
    method createClassCache (line 31) | public <V> ClassCache<V> createClassCache() {
    method createClassCache (line 35) | public <V> ClassCache<V> createClassCache(ClassCacheEntryFactory<V> en...

FILE: ognl/src/main/java/ognl/internal/HashMapClassCache.java
  class HashMapClassCache (line 24) | public class HashMapClassCache<T> extends HashMapCache<Class<?>, T> impl...
    method HashMapClassCache (line 28) | public HashMapClassCache(CacheEntryFactory<Class<?>, T> entryFactory) {
    method setClassInspector (line 32) | public void setClassInspector(ClassCacheInspector inspector) {
    method put (line 36) | public T put(Class<?> key, T value) {

FILE: ognl/src/main/java/ognl/internal/entry/CacheEntry.java
  type CacheEntry (line 21) | public interface CacheEntry {

FILE: ognl/src/main/java/ognl/internal/entry/CacheEntryFactory.java
  type CacheEntryFactory (line 23) | public interface CacheEntryFactory<K, V> {
    method create (line 25) | V create(K key) throws CacheException;

FILE: ognl/src/main/java/ognl/internal/entry/ClassCacheEntryFactory.java
  type ClassCacheEntryFactory (line 21) | public interface ClassCacheEntryFactory<T> extends CacheEntryFactory<Cla...

FILE: ognl/src/main/java/ognl/internal/entry/DeclaredMethodCacheEntry.java
  class DeclaredMethodCacheEntry (line 21) | public class DeclaredMethodCacheEntry extends MethodCacheEntry {
    type MethodType (line 25) | public enum MethodType {
    method DeclaredMethodCacheEntry (line 29) | public DeclaredMethodCacheEntry(Class<?> targetClass) {
    method DeclaredMethodCacheEntry (line 33) | public DeclaredMethodCacheEntry(Class<?> targetClass, MethodType type) {
    method equals (line 38) | @Override
    method hashCode (line 56) | @Override

FILE: ognl/src/main/java/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java
  class DeclaredMethodCacheEntryFactory (line 24) | public class DeclaredMethodCacheEntryFactory extends MethodCacheEntryFac...
    method shouldCache (line 26) | @Override

FILE: ognl/src/main/java/ognl/internal/entry/FieldCacheEntryFactory.java
  class FieldCacheEntryFactory (line 27) | public class FieldCacheEntryFactory implements ClassCacheEntryFactory<Ma...
    method create (line 29) | public Map<String, Field> create(Class<?> key) throws CacheException {

FILE: ognl/src/main/java/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java
  class GenericMethodParameterTypeCacheEntry (line 23) | public class GenericMethodParameterTypeCacheEntry implements CacheEntry {
    method GenericMethodParameterTypeCacheEntry (line 28) | public GenericMethodParameterTypeCacheEntry(Method method, Class<?> ty...
    method equals (line 33) | @Override
    method hashCode (line 47) | @Override

FILE: ognl/src/main/java/ognl/internal/entry/GenericMethodParameterTypeFactory.java
  class GenericMethodParameterTypeFactory (line 29) | public class GenericMethodParameterTypeFactory implements CacheEntryFact...
    method create (line 31) | public Class<?>[] create(GenericMethodParameterTypeCacheEntry entry) t...
    method resolveType (line 71) | private Class<?> resolveType(ParameterizedType param, TypeVariable<?> ...

FILE: ognl/src/main/java/ognl/internal/entry/MethodAccessCacheEntryFactory.java
  class MethodAccessCacheEntryFactory (line 26) | public class MethodAccessCacheEntryFactory implements CacheEntryFactory<...
    method create (line 34) | public MethodAccessEntryValue create(Method method) throws CacheExcept...

FILE: ognl/src/main/java/ognl/internal/entry/MethodAccessEntryValue.java
  class MethodAccessEntryValue (line 21) | public class MethodAccessEntryValue {
    method MethodAccessEntryValue (line 26) | public MethodAccessEntryValue(boolean accessible) {
    method MethodAccessEntryValue (line 30) | public MethodAccessEntryValue(boolean accessible, boolean notPublic) {
    method isAccessible (line 35) | public boolean isAccessible() {
    method isNotPublic (line 39) | public boolean isNotPublic() {

FILE: ognl/src/main/java/ognl/internal/entry/MethodCacheEntry.java
  class MethodCacheEntry (line 21) | public class MethodCacheEntry implements CacheEntry {
    method MethodCacheEntry (line 25) | public MethodCacheEntry(Class<?> targetClass) {
    method equals (line 29) | @Override
    method hashCode (line 43) | @Override

FILE: ognl/src/main/java/ognl/internal/entry/MethodCacheEntryFactory.java
  class MethodCacheEntryFactory (line 30) | public abstract class MethodCacheEntryFactory<T extends MethodCacheEntry...
    method create (line 32) | public Map<String, List<Method>> create(T key) throws CacheException {
    method shouldCache (line 40) | protected abstract boolean shouldCache(T key, Method method);
    method collectMethods (line 42) | private void collectMethods(T key, Class<?> c, Map<String, List<Method...

FILE: ognl/src/main/java/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java
  class PropertyDescriptorCacheEntryFactory (line 35) | public class PropertyDescriptorCacheEntryFactory implements ClassCacheEn...
    method create (line 37) | public Map<String, PropertyDescriptor> create(Class<?> targetClass) th...
    method findClosestMatchingMethod (line 66) | static Method findClosestMatchingMethod(
    method findObjectIndexedPropertyDescriptors (line 87) | private static void findObjectIndexedPropertyDescriptors(
    method indexMethodCheck (line 152) | private static boolean indexMethodCheck(List<Method> methods) {

FILE: ognl/src/test/java/ClassInDefaultPackage.java
  class ClassInDefaultPackage (line 1) | @SuppressWarnings("unused")

FILE: ognl/src/test/java/com/sun/test/AnotherInternalClass.java
  class AnotherInternalClass (line 25) | public class AnotherInternalClass {
    method getValue (line 26) | public String getValue() {

FILE: ognl/src/test/java/ognl/DefaultMemberAccess.java
  class DefaultMemberAccess (line 33) | public class DefaultMemberAccess<C extends OgnlContext<C>> implements Me...
    method DefaultMemberAccess (line 40) | public DefaultMemberAccess(boolean allowAllAccess) {
    method DefaultMemberAccess (line 44) | public DefaultMemberAccess(boolean allowPrivateAccess, boolean allowPr...
    method getAllowPrivateAccess (line 51) | public boolean getAllowPrivateAccess() {
    method setAllowPrivateAccess (line 55) | public void setAllowPrivateAccess(boolean value) {
    method getAllowProtectedAccess (line 59) | public boolean getAllowProtectedAccess() {
    method setAllowProtectedAccess (line 63) | public void setAllowProtectedAccess(boolean value) {
    method getAllowPackageProtectedAccess (line 67) | public boolean getAllowPackageProtectedAccess() {
    method setAllowPackageProtectedAccess (line 71) | public void setAllowPackageProtectedAccess(boolean value) {
    method setup (line 75) | public Object setup(C context, Object target, Member member, String pr...
    method restore (line 89) | public void restore(C context, Object target, Member member, String pr...
    method isAccessible (line 112) | public boolean isAccessible(C context, Object target, Member member, S...

FILE: ognl/src/test/java/ognl/ExcludedObjectMemberAccess.java
  class ExcludedObjectMemberAccess (line 26) | public class ExcludedObjectMemberAccess extends DefaultMemberAccess {
    method ExcludedObjectMemberAccess (line 29) | public ExcludedObjectMemberAccess(boolean allowAllAccess) {
    method ExcludedObjectMemberAccess (line 33) | public ExcludedObjectMemberAccess(boolean allowPrivateAccess, boolean ...
    method isAccessible (line 37) | public boolean isAccessible(OgnlContext context, Object target, Member...
    method exclude (line 45) | public void exclude(Object obj) {
    method removeExclusion (line 49) | public void removeExclusion(Object obj) {

FILE: ognl/src/test/java/ognl/ObjectPropertyAccessorTest.java
  class ObjectPropertyAccessorTest (line 34) | class ObjectPropertyAccessorTest {
    method setUp (line 38) | @BeforeEach
    class SimplePublicClass (line 47) | public static class SimplePublicClass {
      method setGender (line 53) | @SuppressWarnings("unused")
      method setEmail (line 58) | @SuppressWarnings("unused")
      method setName (line 63) | @SuppressWarnings("unused")
      method setname (line 68) | @SuppressWarnings("unused")
      method setAge (line 73) | @SuppressWarnings("unused")
      method setage (line 78) | @SuppressWarnings("unused")
    class KafkaFetcher (line 84) | public static class KafkaFetcher {
      method hasCompletedFutures (line 87) | @SuppressWarnings("unused")
    method testGetPossibleProperty (line 93) | @Test
    method testSetPossibleProperty (line 103) | @Test

FILE: ognl/src/test/java/ognl/OgnlContextTest.java
  class OgnlContextTest (line 36) | class OgnlContextTest {
    method createOgnlContext (line 38) | private static OgnlContext createOgnlContext() {
    method traceEvaluation_shouldBeEnabled (line 42) | @Test
    method keepLastEvaluation_shouldBeEnabled (line 51) | @Test
    method allValues_shouldBeStored (line 59) | @Test
    method classResolver_shouldNotBeNull (line 71) | @Test
    method typeConverted_shouldNotBeNull (line 79) | @Test
    method memberAccess_shouldNotBeNull (line 87) | @Test
    method root_shouldInitAccessorAndType (line 95) | @Test
    method currentEvaluation_shouldNotBeNull (line 118) | @Test
    method ignoreReadMethod (line 133) | @Test
    method reservedKeywords (line 147) | @Test
    method memberAccessIsRequired (line 198) | @Test
    method defaultClassResolverAndTypeConverter (line 208) | @Test

FILE: ognl/src/test/java/ognl/OgnlRuntimeAccessibilityTest.java
  class OgnlRuntimeAccessibilityTest (line 35) | class OgnlRuntimeAccessibilityTest {
    method interfaceIsAlwaysAccessible (line 37) | @Test
    method standardJdkClassesAreAccessible (line 46) | @Test
    method javaUtilClassesAreAccessible (line 55) | @Test
    method sunPackageClassesAreInaccessible (line 63) | @Test
    method comSunPackageClassesAreInaccessible (line 87) | @Test
    method customClassesAreAccessible (line 99) | @Test
    method innerClassesAreAccessible (line 106) | @Test
    method simulatedSunPackageClassIsInaccessible (line 112) | @Test
    method simulatedComSunPackageClassIsInaccessible (line 119) | @Test
    method interfaceInSunPackageIsAccessible (line 126) | @Test
    class TestHelperClass (line 134) | public static class TestHelperClass {
      class InnerClass (line 135) | public static class InnerClass {

FILE: ognl/src/test/java/ognl/OgnlRuntimeMethodsTest.java
  class OgnlRuntimeMethodsTest (line 62) | class OgnlRuntimeMethodsTest {
    method setUp (line 66) | @BeforeEach
    method test_Get_Super_Or_Interface_Class (line 71) | @Test
    method test_Get_Private_Class (line 81) | @Test
    method test_Complicated_Inheritance (line 91) | @Test
    method test_Get_Read_Method (line 101) | @Test
    method test_Get_Read_Field (line 109) | @Test
    class TestGetters (line 119) | @SuppressWarnings("unused")
      method isEditorDisabled (line 121) | public boolean isEditorDisabled() {
      method isDisabled (line 125) | public boolean isDisabled() {
      method isNotAvailable (line 129) | public boolean isNotAvailable() {
      method isAvailable (line 133) | public boolean isAvailable() {
    method test_Get_Read_Method_Multiple (line 138) | @Test
    method test_Get_Read_Method_Multiple_Boolean_Getters (line 146) | @Test
    method test_Find_Method_Mixed_Boolean_Getters (line 159) | @Test
    method test_Get_Appropriate_Method (line 167) | @Test
    method test_Call_Static_Method_Invalid_Class (line 176) | @Test
    method test_Setter_Returns (line 184) | @Test
    method test_Call_Method_VarArgs (line 195) | @Test
    method test_Class_Cache_Inspector (line 207) | @Test
    class TestCacheInspector (line 238) | static class TestCacheInspector implements ClassCacheInspector {
      method shouldCache (line 239) | public boolean shouldCache(Class<?> type) {
    method test_Set_Generic_Parameter_Types (line 244) | @Test
    method test_Get_Generic_Parameter_Types (line 254) | @Test
    method test_Find_Parameter_Types (line 262) | @Test
    method test_Find_Parameter_Types_Superclass (line 272) | @Test
    method test_Get_Declared_Methods_With_Synthetic_Methods (line 282) | @Test
    method test_Get_Property_Descriptors_With_Synthetic_Methods (line 292) | @Test
    class GenericParent (line 300) | public static class GenericParent<T> {
      method save (line 301) | @SuppressWarnings("unused")
    class StringChild (line 306) | public static class StringChild extends GenericParent<String> {
    class LongChild (line 309) | public static class LongChild extends GenericParent<Long> {
    method testOGNLParameterDiscovery (line 315) | @Test
    method testBangOperator (line 328) | @Test
    method testGetStaticField (line 334) | @Test
    method testGetStaticFieldEnum (line 340) | @Test
    method testGetStaticFieldEnumStatic (line 346) | @Test
    method testAbstractConcreteMethodScoringNoSysErr (line 358) | @Test
    class AbstractTestClass (line 373) | abstract static class AbstractTestClass<T> {
      method testMethod (line 374) | @SuppressWarnings("unused")
    class ConcreteTestClass (line 381) | static class ConcreteTestClass extends AbstractTestClass<String> {
      method testMethod (line 382) | public String testMethod(String element, int i) {
    class ProtectedParent (line 390) | protected static class ProtectedParent {
      method setName (line 391) | @SuppressWarnings("unused")
      method getName (line 395) | public String getName() {
    class PublicChild (line 403) | public static class PublicChild extends ProtectedParent {
    method testSyntheticBridgeReadMethod (line 411) | @Test
    method testSyntheticBridgeWriteMethod (line 421) | @Test
    class SimplePublicClass (line 429) | public static class SimplePublicClass {
      method getName (line 432) | public String getName() {
    class SimpleNestingClass (line 440) | public static class SimpleNestingClass {
      class NestedClass (line 441) | static class NestedClass {
      method getNestedName (line 446) | public String getNestedName() {
    method testConfirmStandardMethodCallability (line 454) | @Test
    method testConfirmBridgeMethodCallability (line 471) | @Test
    method testConfirmNoSyntheticMethod (line 499) | @Test
    class SimpleFieldClass (line 514) | public static class SimpleFieldClass {
    method testSetFieldValueWhenCheckAccess (line 522) | @Test
    method testSetFieldValueWhenNotCheckAccess (line 547) | @Test

FILE: ognl/src/test/java/ognl/OgnlRuntimeTest.java
  class OgnlRuntimeTest (line 33) | public class OgnlRuntimeTest {
    method testMajorJavaVersionParse (line 38) | @Test
    method testMajorJavaVersionCheck (line 79) | @Test
    method testUseStricterInvocationStateFlag (line 91) | @Test
    method testStricterInvocationMode (line 119) | @Test
    method testStricterInvocationBlocksUnsafe (line 163) | @Test
    method testAccessibleObjectHandlerDefault (line 190) | @Test
    method testUseFirstMatchGetSetStateFlag (line 202) | @Test
    method testForArray (line 229) | @Test // Success
    method testForVarArgs (line 238) | @Test // Fail
    class Bean (line 247) | static class Bean {
      method setChars (line 252) | @SuppressWarnings("unused")
      method getChars (line 257) | @SuppressWarnings("unused")
      method setStrings (line 262) | @SuppressWarnings("unused")
      method getStrings (line 267) | @SuppressWarnings("unused")
      method setMix (line 272) | @SuppressWarnings("unused")
      method getIndex (line 278) | public Integer getIndex() {
    method shouldInvokeSyntheticBridgeMethod (line 283) | @Test
    method shouldInvokeSuperclassMethod (line 289) | @Test
    method shouldInvokeInterfaceMethod (line 295) | @Test
    type I1 (line 300) | public interface I1 {
      method getId (line 301) | @SuppressWarnings("unused")
    type I2 (line 305) | public interface I2 {
      method getId (line 306) | @SuppressWarnings("unused")
    method shouldMultipleInterfaceWithTheSameMethodBeFine (line 310) | @Test
    type I3 (line 321) | public interface I3<T> {
      method get (line 322) | T get();
    type I4 (line 325) | public interface I4 {
      method get (line 326) | Long get();
    method shouldTwoMethodsWithDifferentReturnTypeBeFine (line 329) | @Test
    method shouldSameMethodOfDifferentParentsBeCallable (line 341) | @Test

FILE: ognl/src/test/java/ognl/test/ASTChainTest.java
  class ASTChainTest (line 29) | class ASTChainTest {
    method getIndexedValue (line 31) | @Test

FILE: ognl/src/test/java/ognl/test/ASTMethodTest.java
  class ASTMethodTest (line 43) | class ASTMethodTest {
    method setUp (line 47) | @BeforeEach
    method contextTypes (line 52) | @Test
    method isSimpleMethod (line 97) | @Test

FILE: ognl/src/test/java/ognl/test/ASTPropertyTest.java
  class ASTPropertyTest (line 45) | class ASTPropertyTest {
    method setUp (line 49) | @BeforeEach
    method test_Get_Indexed_Property_Type (line 54) | @Test
    method test_Get_Value_Body (line 84) | @Test
    method test_Get_Source (line 114) | @Test
    method test_Set_Source (line 143) | @Test
    method test_Indexed_Object_Type (line 168) | @Test
    method test_Complicated_List (line 225) | @Test
    method test_Set_Chain_Indexed_Property (line 245) | @Test
    method test_Set_Generic_Property (line 258) | @Test
    method test_Get_Generic_Property (line 275) | @Test
    method test_Set_Get_Multiple_Generic_Types_Property (line 292) | @Test

FILE: ognl/src/test/java/ognl/test/ASTSequenceTest.java
  class ASTSequenceTest (line 30) | class ASTSequenceTest {
    method isSequence (line 32) | @Test

FILE: ognl/src/test/java/ognl/test/ArithmeticAndLogicalOperatorsOnEnumsTest.java
  class ArithmeticAndLogicalOperatorsOnEnumsTest (line 33) | class ArithmeticAndLogicalOperatorsOnEnumsTest {
    type EnumNoBody (line 40) | public enum EnumNoBody {ENUM1, ENUM2;}
    type EnumEmptyBody (line 42) | public enum EnumEmptyBody {ENUM1 {}, ENUM2 {};}
    type EnumBasicBody (line 44) | public enum EnumBasicBody {
      method value (line 46) | public final Integer value() {
      method value (line 51) | public final Integer value() {
    method setUp (line 57) | @BeforeEach
    method enumNoBodyEquality (line 66) | @Test
    method enumNoBodyInequality (line 71) | @Test
    method enumNoBodyEqualityEnum2 (line 76) | @Test
    method enumNoBodyInequalityEnum2 (line 81) | @Test
    method enumNoBodyDifferentEnums (line 86) | @Test
    method enumNoBodyDifferentEnumsEquality (line 91) | @Test
    method enumEmptyBodyEquality (line 96) | @Test
    method enumEmptyBodyInequality (line 101) | @Test
    method enumEmptyBodyEqualityEnum2 (line 106) | @Test
    method enumEmptyBodyInequalityEnum2 (line 111) | @Test
    method enumEmptyBodyDifferentEnums (line 116) | @Test
    method enumEmptyBodyDifferentEnumsEquality (line 121) | @Test
    method enumBasicBodyEquality (line 126) | @Test
    method enumBasicBodyInequality (line 131) | @Test
    method enumBasicBodyEqualityEnum2 (line 136) | @Test
    method enumBasicBodyInequalityEnum2 (line 141) | @Test
    method enumBasicBodyDifferentEnums (line 146) | @Test
    method enumBasicBodyDifferentEnumsEquality (line 151) | @Test
    method enumNoBodyAndEnumEmptyBodyEquality (line 156) | @Test
    method enumNoBodyAndEnumEmptyBodyInequality (line 163) | @Test
    method enumNoBodyAndEnumBasicBodyEquality (line 170) | @Test
    method enumNoBodyAndEnumBasicBodyInequality (line 177) | @Test
    method enumEmptyBodyAndEnumBasicBodyEquality (line 184) | @Test
    method enumEmptyBodyAndEnumBasicBodyInequality (line 191) | @Test

FILE: ognl/src/test/java/ognl/test/ArithmeticAndLogicalOperatorsTest.java
  class ArithmeticAndLogicalOperatorsTest (line 33) | class ArithmeticAndLogicalOperatorsTest {
    method setUp (line 38) | @BeforeEach
    method doubleValuedArithmeticExpressions (line 47) | @Test
    method bigDecimalValuedArithmeticExpressions (line 60) | @Test
    method integerValuedArithmeticExpressions (line 74) | @Test
    method bigIntegerValuedArithmeticExpressions (line 99) | @Test
    method logicalExpressions (line 122) | @Test
    method logicalExpressionsStringVersions (line 145) | @Test
    method equalityOnIdentity (line 167) | @Test
    method comparableAndNonComparable (line 173) | @Test
    method expressionsWithVariables (line 179) | @Test

FILE: ognl/src/test/java/ognl/test/ArrayCreationTest.java
  class ArrayCreationTest (line 34) | class ArrayCreationTest {
    method setUp (line 39) | @BeforeEach
    method stringArrayCreation (line 45) | @Test
    method stringArrayWithIntegers (line 50) | @Test
    method testIntegerArrayCreation (line 55) | @Test
    method stringArrayWithSize (line 60) | @Test
    method invalidObjectArrayCreation (line 65) | @Test
    method objectArrayWithSize (line 72) | @Test
    method objectArrayWithElements (line 77) | @Test
    method simpleArrayCreation (line 82) | @Test
    method simpleObjectArrayCreation (line 87) | @Test
    method simpleStringArrayCreation (line 92) | @Test
    method conditionalEntryArrayCreation (line 97) | @Test
    method simpleArrayWithElements (line 102) | @Test

FILE: ognl/src/test/java/ognl/test/ArrayElementsTest.java
  class ArrayElementsTest (line 32) | class ArrayElementsTest {
    method setUp (line 42) | @BeforeEach
    method stringArrayLength (line 54) | @Test
    method stringArrayElement (line 59) | @Test
    method intArrayElement (line 64) | @Test
    method intArrayElementAfterSet (line 69) | @Test
    method intArrayElementAfterSetWithString (line 75) | @Test
    method rootIntValueAfterSetWithString (line 81) | @Test
    method rootArrayAfterSetWithStringArray (line 87) | @Test
    method charArrayElement (line 93) | @Test
    method charArrayElementFromString (line 98) | @Test
    method charArray (line 103) | @Test
    method booleanArray (line 108) | @Test

FILE: ognl/src/test/java/ognl/test/ChainTest.java
  class ChainTest (line 34) | class ChainTest {
    method test_isChain (line 36) | @Test
    method shouldShortCircuitAccessingNullChild (line 59) | @Test
    method shouldEvaluateThisProperty (line 68) | @Test
    class Child (line 76) | public static class Child {
      method Child (line 79) | public Child(String name) {
      method getName (line 83) | public String getName() {
      method toString (line 87) | @Override
    class Parent (line 93) | public static class Parent extends Child {
      method Parent (line 96) | public Parent(Child child) {
      method getChild (line 101) | public Child getChild() {

FILE: ognl/src/test/java/ognl/test/ClassMethodTest.java
  class ClassMethodTest (line 31) | class ClassMethodTest {
    method setUp (line 36) | @BeforeEach
    method testGetClassName (line 42) | @Test
    method testGetClassInterfaces (line 48) | @Test
    method testGetClassInterfacesLength (line 54) | @Test
    method testSystemClassGetInterfaces (line 60) | @Test
    method testClassGetName (line 66) | @Test
    method testImageObserverClassGetName (line 72) | @Test

FILE: ognl/src/test/java/ognl/test/CollectionDirectPropertyTest.java
  class CollectionDirectPropertyTest (line 31) | class CollectionDirectPropertyTest {
    method setUp (line 36) | @BeforeEach
    method testSize (line 42) | @Test
    method testIsEmptyFalse (line 47) | @Test
    method testIsEmptyTrue (line 52) | @Test
    method testIteratorNext (line 57) | @Test
    method testIteratorHasNext (line 62) | @Test
    method testIteratorHasNextAfterTwoNexts (line 67) | @Test
    method testIteratorNextAfterTwoNexts (line 72) | @Test
    method testRootMapTest (line 77) | @Test
    method testRootMapSize (line 82) | @Test
    method testRootMapKeySet (line 87) | @Test
    method testRootMapValues (line 92) | @Test
    method testRootMapKeysSize (line 97) | @Test
    method testRootMapSizeValue (line 102) | @Test
    method testRootMapIsEmpty (line 107) | @Test
    method testRootMapIsEmptyKey (line 112) | @Test

FILE: ognl/src/test/java/ognl/test/CompilingPropertyAccessor.java
  class CompilingPropertyAccessor (line 44) | @Deprecated(since = "3.5.0", forRemoval = true)
    method getPrimitiveWrapperClass (line 81) | public static Class<?> getPrimitiveWrapperClass(Class<?> primitiveClas...
    type Getter (line 85) | public interface Getter {
      method get (line 86) | Object get(OgnlContext context, Object target, String propertyName);
    method generateGetter (line 89) | public static Getter generateGetter(OgnlContext context, String code) ...
    method getGetter (line 132) | private Getter getGetter(OgnlContext context, Object target, String pr...
    method getPossibleProperty (line 179) | public Object getPossibleProperty(OgnlContext context, Object target, ...

FILE: ognl/src/test/java/ognl/test/ConstantTest.java
  class ConstantTest (line 34) | class ConstantTest {
    method setUp (line 39) | @BeforeEach
    method test12345 (line 45) | @Test
    method test0x100 (line 51) | @Test
    method test0xfE (line 57) | @Test
    method test01000 (line 63) | @Test
    method test1234L (line 68) | @Test
    method test12_34 (line 74) | @Test
    method test_1234 (line 80) | @Test
    method test12_34f (line 86) | @Test
    method test12_ (line 92) | @Test
    method test12e_1d (line 98) | @Test
    method test_x (line 104) | @Test
    method test_n (line 110) | @Test
    method test_u048c (line 116) | @Test
    method test_47 (line 122) | @Test
    method test_367 (line 128) | @Test
    method test_367Exception (line 134) | @Test
    method test_xException (line 141) | @Test
    method testHelloWorld (line 148) | @Test
    method testUnicodeString (line 154) | @Test
    method testHelloWorldException (line 160) | @Test
    method testHelloXWorldException (line 167) | @Test
    method testNull (line 174) | @Test
    method testTrue (line 180) | @Test
    method testFalse (line 186) | @Test
    method testArray (line 192) | @Test
    method testHtmlPublic (line 198) | @Test

FILE: ognl/src/test/java/ognl/test/ConstantTreeTest.java
  class ConstantTreeTest (line 30) | class ConstantTreeTest {
    method setUp (line 39) | @BeforeEach
    method testTrue (line 45) | @Test
    method test55 (line 50) | @Test
    method testJavaAwtColorBlack (line 55) | @Test
    method testNonFinalStaticVariable (line 60) | @Test
    method testNonFinalStaticVariablePlus10 (line 65) | @Test
    method test55Plus24PlusJavaAwtEventAltMask (line 70) | @Test
    method testName (line 75) | @Test
    method testNameI (line 80) | @Test
    method testNameIProperty (line 85) | @Test
    method testNameFoo (line 90) | @Test
    method testNameFoo2 (line 95) | @Test
    method testName25 (line 100) | @Test

FILE: ognl/src/test/java/ognl/test/ContextRootPreservationTest.java
  class ContextRootPreservationTest (line 35) | public class ContextRootPreservationTest {
    class TestRootObject (line 40) | public static class TestRootObject {
      method getContextProperty (line 44) | public String getContextProperty() {
      method setContextProperty (line 48) | public void setContextProperty(String contextProperty) {
      method getTestList (line 52) | public List<String> getTestList() {
      method setTestList (line 56) | public void setTestList(List<String> testList) {
    method setUp (line 61) | @BeforeEach
    method testContextRootPreservationWithListSelection (line 67) | @Test
    method testIssue390ReproduceBug (line 87) | @Test
    method testContextRootPreservationWithListProjection (line 110) | @Test
    method testContextRootPreservationWithNestedExpression (line 125) | @Test
    method testContextRootAccessInLambdaExpression (line 134) | @Test
    method testRootContextNotOverwrittenByListItem (line 153) | @Test
    method testOriginalRootAccessAfterListProcessing (line 166) | @Test
    method testContextVariableAccessDuringListProcessing (line 178) | @Test

FILE: ognl/src/test/java/ognl/test/ContextVariableTest.java
  class ContextVariableTest (line 29) | class ContextVariableTest {
    method setUp (line 34) | @BeforeEach
    method testRoot (line 40) | @Test
    method testThis (line 46) | @Test
    method testSumOfFiveAndSix (line 52) | @Test
    method testSumOfFiveAndSixWithIntermediateAssignment (line 58) | @Test

FILE: ognl/src/test/java/ognl/test/CorrectedObjectNullHandler.java
  class CorrectedObjectNullHandler (line 24) | public class CorrectedObjectNullHandler implements NullHandler {
    method CorrectedObjectNullHandler (line 28) | public CorrectedObjectNullHandler(String defaultValue) {
    method nullMethodResult (line 33) | public Object nullMethodResult(OgnlContext context, Object target, Str...
    method nullPropertyValue (line 40) | public Object nullPropertyValue(OgnlContext context, Object target, Ob...

FILE: ognl/src/test/java/ognl/test/DefaultClassResolverTest.java
  class DefaultClassResolverTest (line 31) | class DefaultClassResolverTest {
    method testClassInDefaultPackageResolution (line 33) | @Test
    method testEnsureClassNotFoundException (line 40) | @Test
    method testEnsureClassNotFoundExceptionReportsSpecifiedName (line 54) | @Test

FILE: ognl/src/test/java/ognl/test/DualModeEvaluationTest.java
  class DualModeEvaluationTest (line 60) | class DualModeEvaluationTest {
    method setUp (line 65) | @BeforeEach
    method getValueInterpreted (line 71) | private Object getValueInterpreted(String expression) throws OgnlExcep...
    method getValueCompiled (line 76) | @SuppressWarnings("unchecked")
    method freshCompiledContext (line 82) | private OgnlContext freshCompiledContext() {
    method assertBothModes (line 88) | private void assertBothModes(String expression, Object expected) throw...
    method assertBothModesMatch (line 95) | private void assertBothModesMatch(String expression) throws Exception {
    method setValueInterpreted (line 104) | private void setValueInterpreted(String expression, Object value) thro...
    method setValueCompiled (line 109) | private void setValueCompiled(String expression, Object value, OgnlCon...
    method assertSetThenGetBothModes (line 114) | private void assertSetThenGetBothModes(String expression, Object setVa...
    class Constants (line 134) | @Nested
      method integerConstant (line 137) | @Test
      method longConstant (line 142) | @Test
      method doubleConstant (line 147) | @Test
      method floatConstant (line 152) | @Test
      method trueConstant (line 157) | @Test
      method falseConstant (line 162) | @Test
      method nullConstant (line 167) | @Test
      method stringConstant (line 172) | @Test
      method charConstant (line 177) | @Test
      method hexConstant (line 182) | @Test
      method octalConstant (line 187) | @Test
    class BigDecimalArithmetic (line 193) | @Nested
      method negation (line 197) | @Test
      method unaryPlus (line 202) | @Test
      method doubleNegation (line 207) | @Test
      method multiplyWithDouble (line 212) | @Test
      method divideWithBigDecimalSuffix (line 217) | @Test
      method divideWithBigDecimalNumerator (line 222) | @Test
      method addition (line 227) | @Test
      method subtraction (line 232) | @Test
    class BigIntegerArithmetic (line 238) | @Nested
      method negation (line 242) | @Test
      method unaryPlus (line 247) | @Test
      method doubleNegation (line 252) | @Test
      method multiply (line 257) | @Test
      method divide (line 262) | @Test
      method addition (line 267) | @Test
      method subtraction (line 272) | @Test
      method modulus (line 277) | @Test
    class IntegerArithmetic (line 283) | @Nested
      method negation (line 286) | @Test
      method unaryPlus (line 291) | @Test
      method doubleNegation (line 296) | @Test
      method multiply (line 301) | @Test
      method divide (line 306) | @Test
      method addition (line 311) | @Test
      method subtraction (line 316) | @Test
      method precedence (line 321) | @Test
      method parentheses (line 326) | @Test
      method modulus (line 331) | @Test
    class DoubleArithmetic (line 337) | @Nested
      method negation (line 340) | @Test
      method unaryPlus (line 345) | @Test
      method doubleNegation (line 350) | @Test
      method multiplyWithDouble (line 355) | @Test
      method divideWithTrailingDot (line 360) | @Test
      method addition (line 365) | @Test
      method floatSubtraction (line 370) | @Test
    class BitwiseOperations (line 376) | @Nested
      method bitwiseNot (line 379) | @Test
      method leftShift (line 384) | @Test
      method rightShift (line 389) | @Test
      method unsignedRightShift (line 394) | @Test
      method bitwiseAndWithDouble (line 399) | @Disabled("Compiler loses double type in bitwise AND, returns int in...
      method bitwiseXor (line 405) | @Test
      method bitwiseOrWithLong (line 410) | @Test
      method bitwiseAndGrouped (line 415) | @Disabled("Compiler widens int to long in grouped bitwise expression")
      method bigIntegerBitwiseNot (line 421) | @Disabled("Compiler does not support BigInteger bitwise operations")
      method bigIntegerLeftShift (line 427) | @Disabled("Compiler does not support BigInteger bitwise operations")
      method bigIntegerRightShift (line 433) | @Disabled("Compiler does not support BigInteger bitwise operations")
    class LogicalExpressions (line 440) | @Nested
      method logicalNot (line 443) | @Test
      method logicalNotNull (line 448) | @Test
      method lessThan (line 453) | @Test
      method greaterThan (line 458) | @Test
      method lessOrEqual (line 463) | @Test
      method greaterOrEqual (line 468) | @Test
      method equality (line 473) | @Test
      method inequality (line 478) | @Test
      method ternary (line 483) | @Test
      method ternaryShortCircuitsOnTrueBranch (line 488) | @Test
      method logicalAndShortCircuits (line 493) | @Test
      method logicalOrShortCircuits (line 498) | @Test
    class PropertyAccess (line 504) | @Nested
      method simpleProperty (line 507) | @Test
      method nestedProperty (line 512) | @Test
      method arrayLength (line 517) | @Test
      method arrayIndex (line 522) | @Test
      method nullObject (line 527) | @Test
      method booleanProperty (line 532) | @Test
      method intProperty (line 537) | @Test
      method staticField (line 542) | @Test
      method mapProperty (line 547) | @Test
      method mapDotAccess (line 552) | @Test
      method mapBracketAccess (line 557) | @Test
      method mapConcatKeyAccess (line 562) | @Test
      method negatedBooleanProperty (line 567) | @Test
      method negatedBeanProperty (line 572) | @Test
      method stringLengthCheck (line 577) | @Test
      method disabledProperty (line 582) | @Test
      method ternaryWithBooleanProperty (line 587) | @Test
      method nullOrBooleanExpression (line 592) | @Test
      method disabledOrReadonly (line 597) | @Test
      method renderNavigationTernary (line 602) | @Test
      method stringConcatenationWithProperty (line 607) | @Test
    class MethodCalls (line 614) | @Nested
      method noArgMethod (line 617) | @Test
      method stringArgMethod (line 622) | @Test
      method toStringOnInteger (line 627) | @Disabled("Compiler generates invalid cast for method call on auto-b...
      method staticMethod (line 633) | @Test
    class NullHandling (line 639) | @Nested
      method nullEqualityToNull (line 642) | @Test
      method nullInequalityToValue (line 647) | @Test
    class InstanceOf (line 653) | @Nested
      method integerInstanceOf (line 656) | @Test
      method doubleNotInstanceOfInteger (line 661) | @Test
    class SetterPaths (line 667) | @Nested
      method setMapNewValue (line 670) | @Test
      method setMapBracketKey (line 675) | @Test
      method setSettableListIndex (line 680) | @Test
      method setIntValueProperty (line 685) | @Test
      method setOpenTransitionWin (line 690) | @Test
      method setStringValue (line 695) | @Test
    class SetterWithConversion (line 701) | @Nested
      method setIntFromDouble (line 704) | @Test
      method setIntFromString (line 709) | @Test
      method setStringFromInt (line 714) | @Test
    class IndexAccess (line 720) | @Nested
      method listWithIndexVariable (line 723) | @Test
      method listWithObjectIndex (line 728) | @Test
      method arrayWithObjectIndex (line 733) | @Test
      method arrayWithMethodIndex (line 738) | @Test
      method ternaryWithArrayLength (line 743) | @Test
      method stringConcatWithIndex (line 749) | @Test
      method mapSplitAccess (line 755) | @Test
      method nestedListAccess (line 760) | @Test
    class ArrayElements (line 766) | @Nested
      method charArrayAccess (line 769) | @Test
      method tapestryCharArray (line 774) | @Test
      method listLiteral (line 779) | @Test
      method booleanListLiteral (line 784) | @Test
    class MethodCallsExtended (line 790) | @Nested
      method formatMethodWithProperty (line 793) | @Test
      method ternaryWithMethodResult (line 798) | @Test
      method printDeliveryConcat (line 803) | @Test
      method nestedMethodCall (line 809) | @Test
    class InterfaceInheritance (line 815) | @Nested
      method myMap (line 818) | @Test
      method myMapDotTest (line 823) | @Test
      method myMapArrayAccess (line 828) | @Test
      method myMapListAccess (line 833) | @Test
      method myMapFirstElement (line 838) | @Test
      method myMapLastElement (line 843) | @Test
      method mapCompFormClientId (line 848) | @Test
      method myTestTheMapKey (line 853) | @Test
    class DynamicSubscripts (line 859) | @Nested
      method mapFirstElement (line 862) | @Test
      method mapLastElement (line 867) | @Test
      method listMidElement (line 872) | @Test
      method arrayLastElement (line 877) | @Test
    class ComplexExpressions (line 883) | @Nested
      method subExpressionWithThis (line 886) | @Test
      method subExpressionWithTernary (line 891) | @Test
      method firstElementSubExpression (line 896) | @Test
      method lastElementSubExpression (line 901) | @Test
      method lastElementWithRootRef (line 906) | @Test
      method arrayPlusMapSize (line 911) | @Test
      method nestedTernary (line 916) | @Test
      method selectedLocaleTernary (line 922) | @Test
      method listLiteralWithProperties (line 928) | @Test
      method getAssetWithTernary (line 933) | @Test
    class PrimitiveNullHandling (line 939) | @Nested
      method setNullOnIntProperty (line 942) | @Test
      method setNullOnBooleanProperty (line 947) | @Test
      method setValueOnIntProperty (line 952) | @Test
      method setValueOnBooleanProperty (line 957) | @Test
    class MethodCallsWithSimple (line 963) | @Nested
      method setUp (line 969) | @BeforeEach
      method assertSimpleBothModes (line 975) | private void assertSimpleBothModes(String expression, Object expecte...
      method assertSimpleBothModesMatch (line 986) | private void assertSimpleBothModesMatch(String expression) throws Ex...
      method hashCode_ (line 999) | @Test
      method booleanTernary (line 1004) | @Test
      method isDisabled (line 1009) | @Test
      method isTruck (line 1014) | @Test
      method isEditorDisabled (line 1019) | @Test
      method messagesFormat (line 1024) | @Test
      method varArgsNoArgs (line 1029) | @Test
      method varArgsWithArgs (line 1034) | @Test
      method enumMethodArg (line 1039) | @Test
    class RootArrayAccess (line 1045) | @Nested
      method setUp (line 1052) | @BeforeEach
      method stringArrayLength (line 1058) | @Test
      method stringArrayRootElement (line 1071) | @Test
      method intArrayRootElement (line 1084) | @Test
    class MethodCallsWithConversion (line 1098) | @Nested
      method formatWithArray (line 1101) | @Test
      method formatWithIntValue (line 1106) | @Test
      method formatWithMapSize (line 1111) | @Test
    class PrimitiveNullHandlingWithSimple (line 1117) | @Nested
      method setUp (line 1123) | @BeforeEach
      method setNullOnFloatValue (line 1131) | @Test
      method setNullOnIntValue (line 1154) | @Test
      method setNullOnBooleanValue (line 1174) | @Test
    class InterfaceInheritanceWithCustomSetup (line 1201) | @Nested
      method setUp (line 1207) | @BeforeEach
      method assertIBothModes (line 1221) | private void assertIBothModes(String expression, Object expected) th...
      method assertIBothModesMatch (line 1232) | private void assertIBothModesMatch(String expression) throws Excepti...
      method beansTestBean (line 1245) | @Test
      method beansEvenOddNext (line 1250) | @Disabled("Compiler evaluates expression during compilation for type...
      method mapCustomListTotal (line 1256) | @Test
      method mapCompGetCount (line 1261) | @Test
      method contentProviderHasChildren (line 1266) | @Test
      method myMapNull (line 1271) | @Test
      method myMapAssignNull (line 1276) | @Test
      method myMapNullThenTest (line 1281) | @Test
      method myMapBracketAccess (line 1286) | @Test
      method myMapNullSetValue (line 1291) | @Test
    class IndexedProperties (line 1300) | @Nested
      method setUp (line 1306) | @BeforeEach
      method assertIndexedBothModes (line 1312) | private void assertIndexedBothModes(String expression, Object expect...
      method assertIndexedBothModesMatch (line 1323) | private void assertIndexedBothModesMatch(String expression) throws E...
      method getValues (line 1336) | @Test
      method bracketValues (line 1341) | @Test
      method getValuesIndex0 (line 1346) | @Test
      method valuesIndex0 (line 1351) | @Test
      method valuesFirst (line 1356) | @Test
      method valuesMid (line 1361) | @Test
      method valuesLast (line 1366) | @Test
      method getTitleWithListSize (line 1371) | @Test
      method sourceTotal (line 1376) | @Test
      method listLongValue (line 1381) | @Test
    class IndexAccessExtended (line 1390) | @Nested
      method arrayGenericIndex (line 1393) | @Test
      method booleanArraySelfObjectIndex (line 1398) | @Test
      method booleanArrayGetObjectIndex (line 1403) | @Test
      method tabSearchCriteriaDisplayName (line 1408) | @Test
      method tabSearchCriteriaSelections (line 1413) | @Test
      method mapBarValueSetGet (line 1418) | @Test
      method mapValueId (line 1423) | @Test
      method indexerLineIndex (line 1428) | @Test
    class SetterWithConversionExtended (line 1437) | @Nested
      method setStringFromFloat (line 1440) | @Test
      method setAnotherStringFromInt (line 1445) | @Test
      method setAnotherStringFromDouble (line 1450) | @Test
      method setAnotherIntFromString (line 1455) | @Test
      method setAnotherIntFromDouble (line 1460) | @Test
      method setIntFromLargeDouble (line 1465) | @Test
    class SetterPathsExtended (line 1474) | @Nested
      method setSettableListSpecialIndex (line 1477) | @Test
      method setMapNewValue (line 1482) | @Test
    class MethodCallsWithSimpleExtended (line 1491) | @Nested
      method setUp (line 1497) | @BeforeEach
      method assertSimpleBothModesMatch (line 1503) | private void assertSimpleBothModesMatch(String expression) throws Ex...
      method assertSimpleBothModes (line 1516) | private void assertSimpleBothModes(String expression, Object expecte...
      method messagesFormatArrayArg (line 1527) | @Test
      method messagesFormatTwoArrayArgs (line 1532) | @Test
      method messagesFormatTwoArgs (line 1537) | @Test
      method getValueIsTrue (line 1542) | @Test
      method getDisplayValue (line 1547) | @Test
      method testMethodsGetBean (line 1552) | @Test
      method testMethodsTestProperty (line 1557) | @Test
      method testMethodsArgsTest1 (line 1562) | @Test
      method testMethodsArgsTest2 (line 1567) | @Test
      method testMethodsArgsTest3 (line 1572) | @Test
      method testMethodsShowListObjectList (line 1577) | @Test
      method testMethodsShowListStringList (line 1582) | @Test
      method testMethodsShowListStringArray (line 1587) | @Test
      method testMethodsAvg (line 1592) | @Test
    class PropertyTestExpressions (line 1601) | @Nested
      method testStringNotNull (line 1604) | @Test
      method negatedRenderNavAndReadonly (line 1609) | @Test
      method mapSizeFromStaticField (line 1614) | @Test
      method mapSizeStringAccess (line 1619) | @Test
      method mapConcatSizeAccess (line 1624) | @Test
      method mapList (line 1629) | @Test
      method mapArrayFirst (line 1634) | @Test
      method mapListSecond (line 1639) | @Test
      method mapArrayLast (line 1644) | @Test
      method mapBracketAccess (line 1649) | @Test
      method flyingMonkey (line 1654) | @Test
      method openTransitionWin (line 1659) | @Test
      method disableButtonConcat (line 1664) | @Test
      method propertyBean3Value (line 1670) | @Test
      method propertyBean3ValueConcat (line 1675) | @Test
      method getPropertyGetBean3 (line 1680) | @Test
      method getIndexedPropertyViaMap (line 1685) | @Test
      method stringLengthNotNull (line 1690) | @Test
    class Generics (line 1699) | @Nested
      method setUp (line 1705) | @BeforeEach
      method genericServiceGetFullMessageFor (line 1711) | @Test
      method genericIdsSetGet (line 1723) | @Test
    class IndexedSetObjectTests (line 1747) | @Nested
      method setUp (line 1753) | @BeforeEach
      method thingXValSetGet (line 1759) | @Test
    class ArrayElementSetOperations (line 1784) | @Nested
      method intArraySetWithInt (line 1787) | @Test
      method intArraySetWithString (line 1810) | @Test
      method rootIntValueSetWithString (line 1833) | @Test

FILE: ognl/src/test/java/ognl/test/GenericsTest.java
  class GenericsTest (line 31) | class GenericsTest {
    method setUp (line 36) | @BeforeEach
    method testIds (line 42) | @Test

FILE: ognl/src/test/java/ognl/test/InExpressionTest.java
  class InExpressionTest (line 31) | class InExpressionTest {
    method test_String_In (line 33) | @Test

FILE: ognl/src/test/java/ognl/test/IndexAccessTest.java
  class IndexAccessTest (line 33) | class IndexAccessTest {
    method setUp (line 39) | @BeforeEach
    method testListIndex (line 46) | @Test
    method testListObjectIndex (line 52) | @Test
    method testArrayObjectIndex (line 58) | @Test
    method testArrayGetObjectIndex (line 64) | @Test
    method testArrayGenericIndex (line 70) | @Test
    method testBooleanArraySelfObjectIndex (line 76) | @Test
    method testBooleanArrayGetObjectIndex (line 82) | @Test
    method testBooleanArrayNullIndex (line 88) | @Test
    method testListSizeMinusOne (line 95) | @Test
    method testToggleToggleSelected (line 102) | @Test
    method testToggleDisplay (line 108) | @Test
    method testMapMapKeySplit (line 114) | @Test
    method testBooleanValuesIndex1Index2 (line 120) | @Test
    method testTabSearchCriteriaDisplayName (line 126) | @Test
    method testTabSearchCriteriaSelections (line 132) | @Test
    method testTabSearchCriteriaSelectionsSetValue (line 138) | @Test
    method testMapBarValue (line 145) | @Test
    method testIndexedSetThingXVal (line 152) | @Test

FILE: ognl/src/test/java/ognl/test/IndexedPropertyTest.java
  class IndexedPropertyTest (line 30) | class IndexedPropertyTest {
    method setUp (line 36) | @BeforeEach
    method testGetValues (line 43) | @Test
    method testValues (line 49) | @Test
    method testValuesIndex0 (line 55) | @Test
    method testGetValuesIndex0 (line 61) | @Test
    method testValuesIndex0Direct (line 67) | @Test
    method testValuesCaret (line 73) | @Test
    method testValuesPipe (line 79) | @Test
    method testValuesDollar (line 85) | @Test
    method testSetValuesIndex1 (line 91) | @Test
    method testSetValuesIndex2 (line 98) | @Test
    method testGetTitle (line 105) | @Test
    method testSourceTotal (line 111) | @Test
    method testIndexerLine (line 117) | @Test
    method testListLongValue (line 123) | @Test
    method testMapValueId (line 129) | @Test
    method testPropertyHoodak (line 135) | @Test

FILE: ognl/src/test/java/ognl/test/InheritedMethodsTest.java
  class InheritedMethodsTest (line 36) | class InheritedMethodsTest {
    method test_Base_Inheritance (line 40) | @Test

FILE: ognl/src/test/java/ognl/test/InterfaceInheritanceTest.java
  class InterfaceInheritanceTest (line 38) | class InterfaceInheritanceTest {
    method setUp (line 43) | @BeforeEach
    method testMyMap (line 59) | @Test
    method testMyMapTest (line 65) | @Test
    method testMyMapList (line 71) | @Test
    method testMyMapArray0 (line 77) | @Test
    method testMyMapList1 (line 83) | @Test
    method testMyMapCaret (line 89) | @Test
    method testMyMapDollar (line 95) | @Test
    method testMyMapArrayDollar (line 101) | @Test
    method testMyMapString (line 107) | @Test
    method testMyMapNull (line 113) | @Test
    method testMyMapXNull (line 119) | @Test
    method testMyMapNullTest (line 125) | @Test
    method testMyMapNull25 (line 131) | @Test
    method testMyMapNull50 (line 137) | @Test
    method testBeansTestBean (line 144) | @Test
    method testBeansEvenOddNext (line 150) | @Test
    method testMapCompFormClientId (line 156) | @Test
    method testMapCompGetCount (line 162) | @Test
    method testMapCustomListTotal (line 168) | @Test
    method testMyTestTheMapKey (line 174) | @Test
    method testContentProviderHasChildren (line 180) | @Test
    method testObjectIndexInstanceOf (line 186) | @Test

FILE: ognl/src/test/java/ognl/test/IsTruckTest.java
  class IsTruckTest (line 28) | class IsTruckTest {
    method testIsTruckMethod (line 30) | @Test
  class TruckHolder (line 40) | class TruckHolder {
    method getIsTruck (line 42) | public boolean getIsTruck() {

FILE: ognl/src/test/java/ognl/test/Issue286Test.java
  class Issue286Test (line 42) | class Issue286Test {
    method x509CertificateMethodResolution (line 44) | @Test
    method interfaceMethodPreferredOverImplementation (line 63) | @Test
    method interfaceMethodOnArrayElement (line 76) | @Test
    method interfaceMethodWithParameters (line 89) | @Test
    method multipleInterfacesWithSameMethod (line 101) | @Test
    method publicClassPreferredOverPackagePrivate (line 114) | @Test
    method nestedMethodCallsOnInterface (line 126) | @Test
    method overloadedInterfaceMethods (line 138) | @Test
    method abstractClassInHierarchy (line 155) | @Test
    method genericInterfaceMethod (line 168) | @Test
    method methodReturningCollection (line 181) | @Test
    method extendedInterfaceMethod (line 194) | @Test
    method methodReturningInterface (line 209) | @Test
    method methodWithNullParameter (line 222) | @Test
    method methodWithPrimitiveParameters (line 235) | @Test
    method jdkInterfacePreferredOverConcreteClass (line 249) | @Test
    method methodResolutionWithInheritance (line 270) | @Test
    method packagePrivateImplementation (line 286) | @Test
    method multipleInterfaceInheritance (line 299) | @Test
    method methodResolutionAcrossPackages (line 315) | @Test
    method javaUtilClassMethodResolution (line 331) | @Test
    method stringBuilderMethodResolution (line 350) | @Test
    method getMethodsIncludesInterfaceAndClassMethods (line 366) | @Test
    method charSequenceInterfaceHandling (line 395) | @Test
    method comparableInterfaceMethodResolution (line 410) | @Test
    method simulatedInternalClassVsInterface (line 429) | @Test
    type TestInterface (line 445) | public interface TestInterface {
      method publicMethod (line 446) | String publicMethod();
    class InternalImplementation (line 451) | public static class InternalImplementation implements TestInterface {
      method publicMethod (line 452) | @Override
    type ParameterizedInterface (line 460) | public interface ParameterizedInterface {
      method process (line 461) | String process(String input);
    class ParameterizedImplementation (line 464) | public static class ParameterizedImplementation implements Parameteriz...
      method process (line 465) | @Override
    type FirstInterface (line 471) | public interface FirstInterface {
      method getValue (line 472) | String getValue();
    type SecondInterface (line 475) | public interface SecondInterface {
      method getValue (line 476) | String getValue();
    class MultiInterfaceImplementation (line 479) | public static class MultiInterfaceImplementation implements FirstInter...
      method getValue (line 480) | @Override
    type BaseInterface (line 486) | public interface BaseInterface {
      method baseMethod (line 487) | String baseMethod();
    class PublicImplementation (line 490) | public static class PublicImplementation implements BaseInterface {
      method baseMethod (line 491) | @Override
    type ContainerInterface (line 497) | public interface ContainerInterface {
      method getChild (line 498) | TestInterface getChild();
    class ContainerImplementation (line 501) | public static class ContainerImplementation implements ContainerInterf...
      method getChild (line 502) | @Override
    type OverloadedInterface (line 508) | public interface OverloadedInterface {
      method compute (line 509) | Integer compute(int a);
      method compute (line 511) | Integer compute(int a, int b);
    class OverloadedImplementation (line 514) | public static class OverloadedImplementation implements OverloadedInte...
      method compute (line 515) | @Override
      method compute (line 520) | @Override
    type AbstractInterface (line 526) | public interface AbstractInterface {
      method abstractMethod (line 527) | String abstractMethod();
    class AbstractBase (line 530) | public abstract static class AbstractBase implements AbstractInterface {
      method abstractMethod (line 531) | public abstract String abstractMethod();
    class ConcreteImplementation (line 534) | public static class ConcreteImplementation extends AbstractBase {
      method abstractMethod (line 535) | @Override
    type GenericInterface (line 541) | public interface GenericInterface<T> {
      method transform (line 542) | String transform(T input);
    class GenericImplementation (line 545) | public static class GenericImplementation implements GenericInterface<...
      method transform (line 546) | @Override
    type CollectionInterface (line 552) | public interface CollectionInterface {
      method getItems (line 553) | List<String> getItems();
    class CollectionImplementation (line 556) | public static class CollectionImplementation implements CollectionInte...
      method getItems (line 557) | @Override
    type ParentInterface (line 563) | public interface ParentInterface {
      method baseMethod (line 564) | String baseMethod();
    type ExtendedInterface (line 567) | public interface ExtendedInterface extends ParentInterface {
      method extendedMethod (line 568) | String extendedMethod();
    class ExtendedImplementation (line 571) | public static class ExtendedImplementation implements ExtendedInterface {
      method baseMethod (line 572) | @Override
      method extendedMethod (line 577) | @Override
    type FactoryInterface (line 583) | public interface FactoryInterface {
      method create (line 584) | TestInterface create();
    class FactoryImplementation (line 587) | public static class FactoryImplementation implements FactoryInterface {
      method create (line 588) | @Override
    type NullableInterface (line 594) | public interface NullableInterface {
      method handleNull (line 595) | String handleNull(String input);
    class NullableImplementation (line 598) | public static class NullableImplementation implements NullableInterface {
      method handleNull (line 599) | @Override
    type PrimitiveInterface (line 605) | public interface PrimitiveInterface {
      method add (line 606) | int add(int a, int b);
    class PrimitiveImplementation (line 609) | public static class PrimitiveImplementation implements PrimitiveInterf...
      method add (line 610) | @Override
    class PackagePrivateImpl (line 617) | static class PackagePrivateImpl {
      method publicMethod (line 618) | public String publicMethod() {
    type InterfaceA (line 624) | public interface InterfaceA {
      method methodA (line 625) | String methodA();
    type InterfaceB (line 628) | public interface InterfaceB {
      method methodB (line 629) | String methodB();
    type CombinedInterface (line 632) | public interface CombinedInterface extends InterfaceA, InterfaceB {
    class CombinedImplementation (line 635) | public static class CombinedImplementation implements CombinedInterface {
      method methodA (line 636) | @Override
      method methodB (line 641) | @Override

FILE: ognl/src/test/java/ognl/test/Issue472CustomMethodAccessorTest.java
  class Issue472CustomMethodAccessorTest (line 52) | class Issue472CustomMethodAccessorTest {
    class TestRootObject (line 57) | public static class TestRootObject {
      method getTargetValue (line 66) | public String getTargetValue() {
      method getPrefix (line 70) | public String getPrefix() {
      method getMinLength (line 74) | public int getMinLength() {
      method getMaxLength (line 78) | public int getMaxLength() {
      method getTestList (line 82) | public List<String> getTestList() {
      method getPrefixedList (line 86) | public List<String> getPrefixedList() {
      method getLengthList (line 90) | public List<String> getLengthList() {
    method setUp (line 95) | @BeforeEach
    method testRootPropertyAccessInListSelection (line 101) | @Test
    method testRootPropertyAccessWithNonMatchingValue (line 117) | @Test
    method testLambdaAccessingBothRootAndListItem (line 131) | @Test
    method testMultipleRootPropertiesInExpression (line 147) | @Test
    method testListProjectionWithRootAccess (line 162) | @Test

FILE: ognl/src/test/java/ognl/test/Java8Test.java
  class Java8Test (line 33) | class Java8Test<C extends OgnlContext<C>> {
    method testDefaultMethodOnClass (line 35) | @Test
    method testDefaultMethodOnSubClass (line 44) | @Test
    method testGetDeclaredMethods (line 53) | @Test
    method testAccessingDefaultMethod (line 61) | @Test
  class SubClassWithDefaults (line 71) | class SubClassWithDefaults extends ClassWithDefaults {
    method getName (line 73) | public String getName() {
  class ClassWithDefaults (line 79) | class ClassWithDefaults implements SubInterfaceWithDefaults {
  type InterfaceWithDefaults (line 83) | interface InterfaceWithDefaults {
    method defaultMethod (line 84) | default void defaultMethod() {
    method getName (line 87) | default String getName() {
  type SubInterfaceWithDefaults (line 92) | interface SubInterfaceWithDefaults extends InterfaceWithDefaults {

FILE: ognl/src/test/java/ognl/test/LambdaExpressionTest.java
  class LambdaExpressionTest (line 34) | class LambdaExpressionTest {
    method setUp (line 38) | @BeforeEach
    method getExpression (line 43) | private SimpleNode getExpression(Object root, String expressionStr) th...
    method shouldReadArrayLength (line 50) | @Test
    method shouldEvaluateLambda1 (line 64) | @Test
    method shouldEvaluateLambda2 (line 78) | @Test
    method shouldEvaluateLambda3 (line 92) | @Test
    method shouldEvaluateLambda4 (line 106) | @Test
    method shouldEvaluateLambda5 (line 120) | @Test

FILE: ognl/src/test/java/ognl/test/MapCreationTest.java
  class MapCreationTest (line 34) | class MapCreationTest {
    method setUp (line 39) | @BeforeEach
    method testMapCreation1 (line 45) | @Test
    method testMapCreation2 (line 54) | @Test
    method testMapCreation3 (line 66) | @Test
    method testMapCreation4 (line 77) | @Test
    method testMapCreation5 (line 88) | @Test

FILE: ognl/src/test/java/ognl/test/MemberAccessTest.java
  class MemberAccessTest (line 37) | class MemberAccessTest {
    method shouldBlockAccessReadToSpecificProperties (line 42) | @ParameterizedTest()
    method shouldBlockAccessOnWriteToSpecificProperties (line 50) | @Test
    method shouldAllowAccessToOtherProperties (line 55) | @Test
    method setUp (line 62) | @BeforeEach

FILE: ognl/src/test/java/ognl/test/MethodTest.java
  class MethodTest (line 40) | class MethodTest {
    method setUp (line 47) | @BeforeEach
    method testHashCode (line 55) | @Test
    method testGetBooleanValue (line 61) | @Test
    method testGetValueIsTrue (line 67) | @Test
    method testMessagesFormatShowAllCountOne (line 73) | @Test
    method testMessagesFormatShowAllCountArrayOne (line 79) | @Test
    method testMessagesFormatShowAllCountArrayOneTwo (line 85) | @Test
    method testMessagesFormatShowAllCountOneTwo (line 91) | @Test
    method testGetTestValue (line 97) | @Test
    method testGetAIsProperty (line 103) | @Test
    method testIsDisabled (line 109) | @Test
    method testIsTruck (line 115) | @Test
    method testIsEditorDisabled (line 120) | @Test
    method testListAddValue (line 126) | @Test
    method testGetDisplayValue (line 132) | @Test
    method testIsThisVarArgsWorkingWithArgs (line 138) | @Test
    method testIsThisVarArgsWorkingWithoutArgs (line 144) | @Test
    method testGenericServiceGetFullMessageFor (line 150) | @Test
    method testTestMethodsGetBean (line 156) | @Test
    method testTestMethodsTestProperty (line 162) | @Test
    method testTestMethodsArgsTest1 (line 168) | @Test
    method testTestMethodsArgsTest2 (line 174) | @Test
    method testTestMethodsArgsTest3 (line 180) | @Test
    method testTestMethodsShowListObjectList (line 186) | @Test
    method testTestMethodsShowListStringList (line 192) | @Test
    method testTestMethodsShowListStringArray (line 198) | @Test
    method testTestMethodsShowStringList (line 204) | @Test
    method testTestMethodsAvg (line 210) | @Test
    method testNullVarArgs (line 216) | @Test
    class A (line 224) | public static class A {
      method isProperty (line 225) | public boolean isProperty() {
    method getA (line 230) | public static A getA() {

FILE: ognl/src/test/java/ognl/test/MethodWithConversionTest.java
  class MethodWithConversionTest (line 29) | class MethodWithConversionTest {
    method setUp (line 34) | @BeforeEach
    method testSetValues (line 40) | @Test
    method testStringValue (line 48) | @Test
    method testStringValueWithChar (line 56) | @Test
    method testSetStringValue (line 62) | @Test
    method testFloatValue (line 68) | @Test
    method testGetValueIsTrue (line 74) | @Test
    method testMessagesFormat (line 80) | @Test

FILE: ognl/src/test/java/ognl/test/NestedMethodTest.java
  class NestedMethodTest (line 29) | class NestedMethodTest {
    method setUp (line 34) | @BeforeEach
    method testToDisplayPictureUrl (line 40) | @Test
    method testPageCreateRelativeAsset (line 46) | @Test

FILE: ognl/src/test/java/ognl/test/NullHandlerTest.java
  class NullHandlerTest (line 30) | class NullHandlerTest {
    method shouldBlockAccessReadToSpecificProperties (line 34) | @ParameterizedTest()
    method setUp (line 45) | @BeforeEach

FILE: ognl/src/test/java/ognl/test/NullRootTest.java
  class NullRootTest (line 30) | class NullRootTest {
    method testNullValue (line 32) | @Test
    method testEmptyRoot (line 41) | @Test
    method testNullRoot (line 49) | @Test

FILE: ognl/src/test/java/ognl/test/NullSafeCollectionTest.java
  class NullSafeCollectionTest (line 43) | class NullSafeCollectionTest {
    method setUp (line 47) | @BeforeEach
    method nullSafeExpressionParsing (line 52) | @ParameterizedTest
    method nullSafeProjectionAndSelection (line 65) | @ParameterizedTest
    method projectionSelectionTestCases (line 79) | static Stream<Arguments> projectionSelectionTestCases() {
    method nullSafePropertyAccess (line 91) | @ParameterizedTest
    method propertyAccessTestCases (line 101) | static Stream<Arguments> propertyAccessTestCases() {
    method dynamicSubscriptAccess (line 110) | @ParameterizedTest
    method dynamicSubscriptTestCases (line 121) | static Stream<Arguments> dynamicSubscriptTestCases() {
    method createMap (line 129) | private static Map<String, String> createMap(String key, String value) {

FILE: ognl/src/test/java/ognl/test/NullSafeCompilationTest.java
  class NullSafeCompilationTest (line 37) | class NullSafeCompilationTest {
    class User (line 41) | static class User {
      method User (line 45) | User(String name, Profile profile) {
      method getName (line 50) | public String getName() {
      method getProfile (line 54) | public Profile getProfile() {
    class Profile (line 59) | static class Profile {
      method Profile (line 63) | Profile(String bio, Address address) {
      method getBio (line 68) | public String getBio() {
      method getAddress (line 72) | public Address getAddress() {
    class Address (line 77) | static class Address {
      method Address (line 80) | Address(String city) {
      method getCity (line 84) | public String getCity() {
    method setUp (line 89) | @BeforeEach
    method nullSafeWithCompiledExpression (line 94) | @Test
    method nullSafeToGetSourceString (line 110) | @Test
    method expressionToString (line 122) | @ParameterizedTest
    method toStringTestCases (line 132) | static Stream<Arguments> toStringTestCases() {
    method toStringComplexExpression (line 140) | @Test

FILE: ognl/src/test/java/ognl/test/NullSafeIntegrationTest.java
  class NullSafeIntegrationTest (line 42) | class NullSafeIntegrationTest {
    class User (line 46) | static class User {
      method User (line 50) | User(String name, Profile profile) {
      method getName (line 55) | public String getName() {
      method getProfile (line 59) | public Profile getProfile() {
    class Profile (line 64) | static class Profile {
      method Profile (line 69) | Profile(String bio, Address address) {
      method getBio (line 74) | public String getBio() {
      method getAddress (line 78) | public Address getAddress() {
      method isVerified (line 82) | public boolean isVerified() {
    class Address (line 87) | static class Address {
      method Address (line 91) | Address(String city, String street) {
      method getCity (line 96) | public String getCity() {
      method getStreet (line 100) | public String getStreet() {
    method setUp (line 105) | @BeforeEach
    method nullSafeWithConditionalOperators (line 112) | @ParameterizedTest
    method conditionalOperatorTestCases (line 120) | static Stream<Arguments> conditionalOperatorTestCases() {
    method nullSafeInAssignmentContext (line 127) | @Test
    method nullSafeWithArithmetic (line 134) | @Test
    method deepNullSafeChains (line 145) | @ParameterizedTest
    method nullSafeOnLiterals (line 157) | @Test
    method nullSafeOnStaticMethod (line 164) | @Test
    method nullSafeWithThis (line 171) | @Test
    method nullSafeWithRoot (line 180) | @Test
    method nullSafeDoesNotAffectRegularAccess (line 188) | @Test
    method nullSafeBackwardCompatibility (line 201) | @Test
    method nullSafeIndependentOfShortCircuit (line 210) | @Test
    method nullSafeWithIntermediateNull (line 222) | @Test
    method nullSafeChainWithMultipleNullChecks (line 232) | @Test
    method nullSafeWithNestedPropertyAccess (line 242) | @Test

FILE: ognl/src/test/java/ognl/test/NullSafeOperatorTest.java
  class NullSafeOperatorTest (line 42) | class NullSafeOperatorTest {
    class User (line 47) | public static class User {
      method User (line 52) | public User(String name, Profile profile) {
      method getName (line 57) | public String getName() {
      method setName (line 61) | public void setName(String name) {
      method getProfile (line 65) | public Profile getProfile() {
      method setProfile (line 69) | public void setProfile(Profile profile) {
      method getTags (line 73) | public List<String> getTags() {
      method setTags (line 77) | public void setTags(List<String> tags) {
    class Profile (line 82) | public static class Profile {
      method Profile (line 86) | public Profile(String bio, Address address) {
      method getBio (line 91) | public String getBio() {
      method setBio (line 95) | public void setBio(String bio) {
      method getAddress (line 99) | public Address getAddress() {
      method setAddress (line 103) | public void setAddress(Address address) {
    class Address (line 108) | public static class Address {
      method Address (line 112) | public Address(String city, String street) {
      method getCity (line 117) | public String getCity() {
      method setCity (line 121) | public void setCity(String city) {
      method getStreet (line 125) | public String getStreet() {
      method setStreet (line 129) | public void setStreet(String street) {
    method setUp (line 134) | @BeforeEach
    method nullRootWithNullSafeOperator (line 139) | @Test
    method nullSafeOnNullRoot (line 146) | @Test
    method successfulNavigation (line 152) | @ParameterizedTest
    method successfulNavigationTestCases (line 160) | static Stream<Arguments> successfulNavigationTestCases() {
    method nullSafeOnNullProperty (line 168) | @Test
    method chainedNullSafeOperators (line 175) | @ParameterizedTest
    method chainedNullSafeTestCases (line 186) | static Stream<Arguments> chainedNullSafeTestCases() {
    method nullSafeMethodCallOnNull (line 210) | @Test
    method nullSafeMethodCallOnNonNull (line 216) | @Test
    method nullSafeMethodChainWithNullIntermediate (line 223) | @Test
    method methodWithArgumentsNullSafe (line 230) | @Test
    method nullSafeMethodWithArgumentsOnNull (line 237) | @Test
    method nullSafeWithVariableReference (line 243) | @Test
    method nullSafeWithNonNullVariable (line 250) | @Test
    method nullSafeWithNestedVariables (line 258) | @Test
    method nullSafeMapAccess (line 266) | @Test
    method nullSafeMapAccessWithNonNullValue (line 274) | @Test
    method nullSafeIndexedMapAccess (line 283) | @Test
    method nullSafeScenarios (line 293) | @ParameterizedTest
    method nullSafeTestCases (line 300) | static Stream<Arguments> nullSafeTestCases() {
    method parserAcceptsDotQuestion (line 327) | @Test
    method complexNullSafeExpression (line 335) | @Test

FILE: ognl/src/test/java/ognl/test/NullStringCatenationTest.java
  class NullStringCatenationTest (line 31) | class NullStringCatenationTest {
    method setUp (line 41) | @BeforeEach
    method testCatenateNullToString (line 47) | @Test
    method testCatenateNullObjectToString (line 53) | @Test
    method testCatenateNullObjectToNumber (line 59) | @Test
    method testConditionalCatenation (line 66) | @Test
    method testConditionalCatenationWithInt (line 72) | @Test
    method testCatenateWidth (line 78) | @Test
    method testCatenateLongAndIndex (line 84) | @Test
    method testCatenateWithStaticField (line 90) | @Test
    method testConditionalCatenationWithMethodCall (line 96) | @Test
    method testCatenateBeanIdAndInt (line 102) | @Test

FILE: ognl/src/test/java/ognl/test/NumberFormatExceptionTest.java
  class NumberFormatExceptionTest (line 35) | class NumberFormatExceptionTest {
    method setUp (line 40) | @BeforeEach
    method testFloatValueValid (line 46) | @Test
    method testFloatValueInvalid (line 52) | @Test
    method testIntValueValid (line 59) | @Test
    method testIntValueInvalidString (line 66) | @Test
    method testIntValueEmptyString (line 71) | @Test
    method testIntValueWhitespaceString (line 76) | @Test
    method testIntValueValidWhitespaceString (line 81) | @Test
    method testBigIntValueValid (line 88) | @Test
    method testBigIntValueNull (line 95) | @Test
    method testBigIntValueEmptyString (line 102) | @Test
    method testBigIntValueInvalidString (line 107) | @Test
    method testBigDecValueValid (line 112) | @Test
    method testBigDecValueNull (line 119) | @Test
    method testBigDecValueEmptyString (line 126) | @Test
    method testBigDecValueInvalidString (line 131) | @Test

FILE: ognl/src/test/java/ognl/test/NumericConversionTest.java
  class NumericConversionTest (line 29) | class NumericConversionTest {
    method runTest (line 31) | private void runTest(Object value, Class<?> toClass, Object expectedVa...
    method testIntegerConversions (line 45) | @Test
    method testDoubleConversions (line 60) | @Test
    method testBooleanConversions (line 75) | @Test
    method testByteConversions (line 90) | @Test
    method testCharacterConversions (line 105) | @Test
    method testShortConversions (line 120) | @Test
    method testLongConversions (line 135) | @Test
    method testFloatConversions (line 150) | @Test
    method testBigIntegerConversions (line 165) | @Test
    method testBigDecimalConversions (line 180) | @Test

FILE: ognl/src/test/java/ognl/test/ObjectIndexedPropertyTest.java
  class ObjectIndexedPropertyTest (line 33) | class ObjectIndexedPropertyTest {
    method setUp (line 38) | @BeforeEach
    method testGetNonIndexedPropertyThroughAttributesMap (line 44) | @Test
    method testGetIndexedProperty (line 50) | @Test
    method testSetIndexedProperty (line 56) | @Test
    method testGetPropertyBackThroughMapToConfirm (line 63) | @Test
    method testGetIndexedPropertyFromIndexedThenThroughOther (line 70) | @Test
    method testGetPropertyBackThroughMapToConfirmFromIndexed (line 76) | @Test
    method testIllegalDynamicSubscriptAccessToObjectIndexedProperty (line 82) | @Test
    method testBeanIndexedValue (line 87) | @Test

FILE: ognl/src/test/java/ognl/test/ObjectIndexedTest.java
  class ObjectIndexedTest (line 32) | class ObjectIndexedTest {
    method setUp (line 36) | @BeforeEach
    method testObjectIndexAccess (line 41) | @Test
    method testObjectIndexInSubclass (line 52) | @Test
    method testMultipleObjectIndexGetters (line 63) | @Test
    method testMultipleObjectIndexSetters (line 72) | @Test
    method testMultipleObjectIndexMethodPairs (line 81) | @Test
    type TestInterface (line 90) | interface TestInterface {
      method getSunk (line 91) | String getSunk(String index);
      method setSunk (line 93) | void setSunk(String index, String sunk);
    class Test1 (line 96) | static class Test1 implements TestInterface {
      method getSunk (line 97) | public String getSunk(String index) {
      method setSunk (line 101) | public void setSunk(String index, String sunk) {
    class Test2 (line 106) | static class Test2 extends Test1 {
      method getSunk (line 107) | public String getSunk(String index) {
      method setSunk (line 111) | public void setSunk(String index, String sunk) {
    class Test3 (line 116) | static class Test3 extends Test1 {
      method getSunk (line 117) | public String getSunk(String index) {
      method setSunk (line 121) | public void setSunk(String index, String sunk) {
      method getSunk (line 125) | public String getSunk(Object index) {
    class Test4 (line 130) | static class Test4 extends Test1 {
      method getSunk (line 131) | public String getSunk(String index) {
      method setSunk (line 135) | public void setSunk(String index, String sunk) {
      method setSunk (line 139) | public void setSunk(Object index, String sunk) {
    class Test5 (line 144) | static class Test5 extends Test1 {
      method getSunk (line 145) | public String getSunk(String index) {
      method setSunk (line 149) | public void setSunk(String index, String sunk) {
      method getSunk (line 153) | public String getSunk(Object index) {
      method setSunk (line 157) | public void setSunk(Object index, String sunk) {

FILE: ognl/src/test/java/ognl/test/OgnlContextCreateTest.java
  class OgnlContextCreateTest (line 33) | class OgnlContextCreateTest<C extends OgnlContext<C>> {
    method createContext (line 35) | @Test
    method createContextWithRoot (line 42) | @Test
    method createContextWithNullRoot (line 51) | @Test
    method createContextWithClassResolver (line 60) | @Test
    method addContextWithClassResolver (line 69) | @Test
    method createContextWithNullRootAndClassResolver (line 79) | @Test
    method addContextWithNullRootAndClassResolver (line 88) | @Test
    method createContextWithClassResolverAndTypeConverter (line 98) | @Test
    method addContextWithClassResolverAndTypeConverter (line 109) | @Test
    method addContextWithClassResolverAndNoTypeConverter (line 122) | @Test
    method addContextWithNoClassResolverAndNoTypeConverter (line 135) | @Test
    method createContextWithNullRootAndClassResolverAndTypeConverter (line 148) | @Test
    method addContextWithNullRootAndClassResolverAndTypeConverter (line 159) | @Test
    method prepareValues (line 172) | private Map<String, Object> prepareValues() {
    class MyClassResolver (line 178) | private static class MyClassResolver<C extends OgnlContext<C>> extends...
      method classForName (line 179) | @Override
    class MyClass (line 188) | private static class MyClass {
      method getValue (line 189) | public static String getValue() {
    class MyTypeConverter (line 194) | private static class MyTypeConverter<C extends OgnlContext<C>> extends...
      method convertValue (line 195) | @Override

FILE: ognl/src/test/java/ognl/test/OgnlExceptionTest.java
  class OgnlExceptionTest (line 30) | class OgnlExceptionTest {
    method test_Throwable_Reason (line 32) | @Test
    method throwException (line 42) | void throwException() throws OgnlException {

FILE: ognl/src/test/java/ognl/test/OgnlOpsTest.java
  class OgnlOpsTest (line 31) | class OgnlOpsTest {
    method testEqualStringsEqual (line 33) | @Test
    method testEqualStringsNotEqual (line 41) | @Test
    method testEqualFloatsEqual (line 49) | @Test
    method testEqualFloatsNotEqual (line 57) | @Test
    method testEqualLongsEqual (line 65) | @Test
    method testEqualLongsNotEqual (line 73) | @Test
    method testEqualBigLongsEqual (line 81) | @Test
    method testEqualBigLongsNotEqual (line 89) | @Test
    method testEqualNullsEqual (line 97) | @Test
    method testEqualNullsNotEqual (line 102) | @Test
    method testShiftLeft (line 109) | @Test
    method testShiftRight (line 115) | @Test
    method testUnsignedShiftRight (line 121) | @Test
    method testAdd (line 127) | @Test
    method testSubtract (line 134) | @Test
    method testMultiply (line 141) | @Test
    method testDivide (line 148) | @Test
    method testRemainder (line 155) | @Test
    method testNegate (line 161) | @Test
    method testBitNegate (line 168) | @Test
    method testGetEscapeString (line 174) | @Test
    method testGetEscapedChar (line 180) | @Test
    method testReturnValue (line 186) | @Test
    method testCastToRuntime (line 191) | @Test

FILE: ognl/src/test/java/ognl/test/OperationTest.java
  class OperationTest (line 33) | class OperationTest {
    method test_isOperation (line 35) | @Test

FILE: ognl/src/test/java/ognl/test/OperatorTest.java
  class OperatorTest (line 29) | class OperatorTest {
    method setUp (line 33) | @BeforeEach
    method testStringComparisons (line 38) | @Test
    method assertExpression (line 57) | private void assertExpression(String expressionString, Object expected...

FILE: ognl/src/test/java/ognl/test/PackageKeywordTest.java
  class PackageKeywordTest (line 39) | class PackageKeywordTest {
    method setUp (line 44) | @BeforeEach
    method javaUtilUUID (line 53) | @Test
    method classReferenceWithAtomicInteger (line 63) | @Test
    method parseExpressionWithOrInPackage (line 74) | @Test
    method parseExpressionWithAndInPackage (line 86) | @Test
    method parseExpressionWithNotInPackage (line 98) | @Test
    method parseExpressionWithInInPackage (line 110) | @Test
    method parseExpressionWithMultipleKeywordsInPackage (line 122) | @Test

FILE: ognl/src/test/java/ognl/test/PrimitiveArrayTest.java
  class PrimitiveArrayTest (line 29) | class PrimitiveArrayTest {
    method setUp (line 34) | @BeforeEach
    method testBooleanArrayCreation (line 40) | @Test
    method testCharArrayCreation (line 52) | @Test
    method testByteArrayCreation (line 61) | @Test
    method testShortArrayCreation (line 67) | @Test
    method testIntArrayCreation (line 73) | @Test
    method testLongArrayCreation (line 88) | @Test
    method testFloatArrayCreation (line 94) | @Test
    method testDoubleArrayCreation (line 100) | @Test

FILE: ognl/src/test/java/ognl/test/PrimitiveNullHandlingTest.java
  class PrimitiveNullHandlingTest (line 29) | class PrimitiveNullHandlingTest {
    method setUp (line 34) | @BeforeEach
    method testFloatValue (line 42) | @Test
    method testIntValue (line 53) | @Test
    method testBooleanValue (line 64) | @Test

FILE: ognl/src/test/java/ognl/test/PrivateAccessorTest.java
  class PrivateAccessorTest (line 30) | class PrivateAccessorTest {
    method setUp (line 35) | @BeforeEach
    method testPrivateAccessorIntValue (line 41) | @Test
    method testPrivateAccessorIntValue2 (line 54) | @Test
    method testPrivateAccessorIntValue3 (line 64) | @Test
    method testPrivateAccessorBooleanValue (line 75) | @Test

FILE: ognl/src/test/java/ognl/test/PrivateMemberTest.java
  class PrivateMemberTest (line 32) | class PrivateMemberTest {
    method getPrivateProperty (line 41) | private String getPrivateProperty() {
    method getPrivateStaticProperty (line 45) | private static String getPrivateStaticProperty() {
    method getPrivateFinalProperty (line 49) | private String getPrivateFinalProperty() {
    method getPrivateStaticFinalProperty (line 53) | private static String getPrivateStaticFinalProperty() {
    method setUp (line 57) | @BeforeEach
    method testPrivateAccessor (line 62) | @Test
    method testPrivateField (line 68) | @Test
    method testPrivateFinalAccessor (line 74) | @Test
    method testPrivateFinalField (line 80) | @Test
    method testPrivateStaticAccessor (line 86) | @Test
    method testPrivateStaticFieldNormalAccess (line 92) | @Test
    method testPrivateStaticFieldStaticAccess (line 103) | @Test
    method testPrivateStaticFinalAccessor (line 109) | @Test
    method testPrivateStaticFinalFieldNormalAccess (line 115) | @Test
    method testPrivateStaticFinalFieldStaticAccess (line 126) | @Test
    method testPrivateFieldSet (line 132) | @Test
    method testPrivateFinalFieldSet (line 149) | @Test
    method testPrivateStaticFieldSet (line 167) | @Test
    method testPrivateStaticFinalFieldSet (line 185) | @Test
    method testPrivateFieldSetFail (line 203) | @Test
    method testPrivateFinalFieldSetFail (line 214) | @Test
    method testPrivateStaticFieldSetFail (line 225) | @Test
    method testPrivateStaticFinalFieldSetFail (line 236) | @Test
    method testPrivateAccessorFail (line 247) | @Test
    method testPrivateFieldFail (line 259) | @Test
    method testPrivateFinalAccessorFail (line 271) | @Test
    method testPrivateFinalFieldFail (line 283) | @Test
    method testPrivateStaticAccessorFail (line 295) | @Test
    method testPrivateStaticFieldNormalAccessFail (line 307) | @Test
    method testPrivateStaticFieldStaticAccessFail (line 319) | @Test
    method testPrivateStaticFinalAccessorFail (line 331) | @Test
    method testPrivateStaticFinalFieldNormalAccessFail (line 343) | @Test
    method testPrivateStaticFinalFieldStaticAccessFail (line 355) | @Test

FILE: ognl/src/test/java/ognl/test/ProjectionSelectionTest.java
  class ProjectionSelectionTest (line 32) | class ProjectionSelectionTest {
    method setUp (line 36) | @BeforeEach
    method testProjectionClass (line 41) | @Test
    method testSelection (line 48) | @Test
    method testFactorial (line 63) | @Test

FILE: ognl/src/test/java/ognl/test/PropertyAccessorTest.java
  class PropertyAccessorTest (line 32) | class PropertyAccessorTest<C extends OgnlContext<C>> {
    method setUp (line 36) | @BeforeEach
    method shouldAccessProperty_usingCustomAccessor (line 42) | @Test
    class Child (line 52) | static class Child {
      method Child (line 55) | public Child(String name) {
      method getName (line 59) | public String getName() {
    class Parent (line 64) | public static class Parent {
      method Parent (line 67) | public Parent(Child child) {
      method getChild (line 71) | public Child getChild() {
    class ChildPropertyAccessor (line 76) | public static class ChildPropertyAccessor<C extends OgnlContext<C>> im...
      method setProperty (line 77) | public void setProperty(C context, Object target, Object name, Objec...
      method getProperty (line 80) | public Object getProperty(C context, Object target, Object name) thr...
      method getSourceAccessor (line 87) | public String getSourceAccessor(C context, Object target, Object ind...
      method getSourceSetter (line 91) | public String getSourceSetter(C context, Object target, Object index) {

FILE: ognl/src/test/java/ognl/test/PropertyArithmeticAndLogicalOperatorsTest.java
  class PropertyArithmeticAndLogicalOperatorsTest (line 33) | class PropertyArithmeticAndLogicalOperatorsTest {
    method setUp (line 40) | @BeforeEach
    method testBooleanExpressions (line 48) | @Test
    method testIntegerExpressions (line 58) | @Test
    method testDoubleExpressions (line 76) | @Test

FILE: ognl/src/test/java/ognl/test/PropertySetterTest.java
  class PropertySetterTest (line 32) | class PropertySetterTest {
    type TestInterface (line 36) | public interface TestInterface {
      method getProperty (line 37) | String getProperty();
    class TestObject (line 40) | public static class TestObject implements TestInterface {
      method TestObject (line 43) | public TestObject(String property) {
      method getProperty (line 47) | public String getProperty() {
      method setProperty (line 51) | public void setProperty(String property) {
      method getIntegerProperty (line 55) | public Integer getIntegerProperty() {
    method getKey (line 60) | public String getKey() {
    method getObject (line 64) | public TestObject getObject() {
    method getInterfaceObject (line 68) | public TestInterface getInterfaceObject() {
    method getPropertyKey (line 72) | public String getPropertyKey() {
    method testEnhancedOgnl (line 76) | @Test

FILE: ognl/src/test/java/ognl/test/PropertyTest.java
  class PropertyTest (line 38) | class PropertyTest {
    method setUp (line 52) | @BeforeEach
    method testBooleanExpressions (line 60) | @Test
    method testMapExpressions (line 67) | @Test
    method testStringExpressions (line 78) | @Test
    method testArrayExpressions (line 84) | @Test
    method testConditionalExpressions (line 103) | @Test
    method testIntegerExpressions (line 113) | @Test
    method testBooleanExpressions2 (line 120) | @Test
    method testMiscExpressions (line 128) | @Test
    method formatValue (line 164) | public static String formatValue(int millis, boolean b1, boolean b2) {

FILE: ognl/src/test/java/ognl/test/ProtectedInnerClassTest.java
  class ProtectedInnerClassTest (line 29) | class ProtectedInnerClassTest {
    method setUp (line 34) | @BeforeEach
    method testListSize (line 40) | @Test
    method testListElement (line 46) | @Test

FILE: ognl/src/test/java/ognl/test/ProtectedMemberTest.java
  class ProtectedMemberTest (line 32) | class ProtectedMemberTest {
    method setUp (line 40) | @BeforeEach
    method getProtectedProperty (line 46) | protected String getProtectedProperty() {
    method getProtectedFinalProperty (line 50) | protected String getProtectedFinalProperty() {
    method getProtectedStaticProperty (line 54) | protected static String getProtectedStaticProperty() {
    method getProtectedStaticFinalProperty (line 58) | protected static String getProtectedStaticFinalProperty() {
    method testProtectedAccessor (line 62) | @Test
    method testProtectedField (line 67) | @Test
    method testProtectedFinalAccessor (line 72) | @Test
    method testProtectedFinalField (line 77) | @Test
    method testProtectedStaticAccessor (line 82) | @Test
    method testProtectedStaticFieldNormalAccess (line 87) | @Test
    method testProtectedStaticFieldStaticAccess (line 97) | @Test
    method testProtectedStaticFinalAccessor (line 102) | @Test
    method testProtectedStaticFinalFieldNormalAccess (line 107) | @Test
    method testProtectedStaticFinalFieldStaticAccess (line 117) | @Test
    method testProtectedFieldSet (line 122) | @Test
  
Condensed preview — 336 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,843K chars).
[
  {
    "path": ".claude/settings.json",
    "chars": 497,
    "preview": "{\n  \"permissions\": {\n    \"allow\": [\n      \"WebSearch\",\n      \"WebFetch(domain:github.com)\",\n      \"WebFetch(domain:raw.g"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 836,
    "preview": "# These are supported funding model platforms\n\ngithub: [lukaszlenart] # Replace with up to 4 GitHub Sponsors-enabled use"
  },
  {
    "path": ".github/workflows/maven.yml",
    "chars": 2227,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".github/workflows/ognl-3-4-x.yml",
    "chars": 1553,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".github/workflows/performance-baseline.yml",
    "chars": 1881,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".github/workflows/performance.yml",
    "chars": 1947,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".github/workflows/sonar.yml",
    "chars": 2042,
    "preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE f"
  },
  {
    "path": ".gitignore",
    "chars": 144,
    "preview": "*.iml\n*.ipr\n*.iws\ntarget\n.idea\nbuild\n.java-version\n.mvn/wrapper/maven-wrapper.jar\n.DS_Store\n**/.DS_Store\n.claude/setting"
  },
  {
    "path": ".mvn/wrapper/MavenWrapperDownloader.java",
    "chars": 4473,
    "preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements.  See the NOTICE fi"
  },
  {
    "path": ".mvn/wrapper/maven-wrapper.properties",
    "chars": 117,
    "preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip"
  },
  {
    "path": "CLAUDE.md",
    "chars": 3727,
    "preview": "# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## "
  },
  {
    "path": "KEYS",
    "chars": 5169,
    "preview": "This file contains the PGP keys of various Apache developers.\nPlease don't use them for email unless you have to. Their "
  },
  {
    "path": "LICENSE.txt",
    "chars": 11357,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "README.md",
    "chars": 5834,
    "preview": "<p align=\"center\">\n  <img src=\"docs/ognl-logo.svg\" alt=\"OGNL\" width=\"400\"/>\n</p>\n\n# Object-Graph Navigation Language - O"
  },
  {
    "path": "SECURITY.md",
    "chars": 570,
    "preview": "# Security Policy\n\n## Supported Versions\n\nUse only the supported versions\n\n| Version | Supported          |\n| ------- | "
  },
  {
    "path": "benchmarks/etc/ognl-runtime-benchmark-baseline.json",
    "chars": 146596,
    "preview": "[\n    {\n        \"jmhVersion\" : \"1.37\",\n        \"benchmark\" : \"ognl.benchmarks.OgnlPerformanceBenchmarks.constantExpressi"
  },
  {
    "path": "benchmarks/pom.xml",
    "chars": 7737,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "benchmarks/src/main/java/ognl/DefaultMemberAccess.java",
    "chars": 3878,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "benchmarks/src/main/java/ognl/Run.java",
    "chars": 7158,
    "preview": "package ognl;\n\nimport com.fasterxml.jackson.databind.JsonNode;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimpor"
  },
  {
    "path": "benchmarks/src/main/java/ognl/benchmarks/OgnlPerformanceBenchmarks.java",
    "chars": 6880,
    "preview": "package ognl.benchmarks;\n\nimport ognl.DefaultMemberAccess;\nimport ognl.Ognl;\nimport ognl.OgnlContext;\nimport ognl.OgnlEx"
  },
  {
    "path": "benchmarks/src/main/java/ognl/benchmarks/OgnlRuntimePerformanceBenchmarks.java",
    "chars": 16121,
    "preview": "package ognl.benchmarks;\n\nimport ognl.OgnlRuntime;\nimport org.openjdk.jmh.annotations.*;\nimport org.openjdk.jmh.infra.Bl"
  },
  {
    "path": "docs/DeveloperGuide.md",
    "chars": 20279,
    "preview": "---\nauthor:\n- Drew Davidson\n- Łukasz Lenart\ntitle: OGNL Developer Guide\n---\n\n# Introduction\n\nOGNL as a language allows f"
  },
  {
    "path": "docs/ISSUE_103_ANALYSIS.md",
    "chars": 7979,
    "preview": "# Issue #103: Class Reference Parser Fails with \"or\" in Package Names\n\n## Problem Summary\n\nThe OGNL parser fails to pars"
  },
  {
    "path": "docs/LanguageGuide.md",
    "chars": 61366,
    "preview": "---\nauthor:\n- Drew Davidson\ntitle: OGNL Language Guide\n---\n\n# Introduction\n\nOGNL stands for **O**bject **G**raph **N**av"
  },
  {
    "path": "docs/NullSafeOperator.md",
    "chars": 17149,
    "preview": "# Null-Safe Navigation Operator (?.)\n\n## Overview\n\nThe null-safe navigation operator `?.` provides a safe way to navigat"
  },
  {
    "path": "docs/VersionNotes.md",
    "chars": 12354,
    "preview": "# Version Notes\n\n## Release notes - version 3.4.3, 3.3.5 (2024-04-19)\n* Fixes potential security vulnerability in access"
  },
  {
    "path": "docs/plans/ISSUE_18_COMPILED_MODE_PARITY.md",
    "chars": 6254,
    "preview": "# Issue #18 — Compiled vs Interpreted Mode Parity\n\n## Context\n\nIssue [#18](https://github.com/orphan-oss/ognl/issues/18)"
  },
  {
    "path": "docs/plans/JDK25_FORWARD_COMPATIBILITY.md",
    "chars": 12671,
    "preview": "# OGNL JDK 25 Forward-Compatibility Implementation Plan\n\n> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:"
  },
  {
    "path": "mvnw",
    "chars": 9113,
    "preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
  },
  {
    "path": "mvnw.cmd",
    "chars": 5810,
    "preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
  },
  {
    "path": "ognl/pom.xml",
    "chars": 8209,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTAdd.java",
    "chars": 11021,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTAnd.java",
    "chars": 5345,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTAssign.java",
    "chars": 4593,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTBitAnd.java",
    "chars": 1754,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTBitNegate.java",
    "chars": 1739,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTBitOr.java",
    "chars": 1593,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTChain.java",
    "chars": 16506,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTConst.java",
    "chars": 5532,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTCtor.java",
    "chars": 10845,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTDivide.java",
    "chars": 1472,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTEq.java",
    "chars": 1581,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTEval.java",
    "chars": 2951,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTGreater.java",
    "chars": 1601,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTGreaterEq.java",
    "chars": 1602,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTIn.java",
    "chars": 2572,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTInstanceof.java",
    "chars": 2462,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTKeyValue.java",
    "chars": 1605,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTLess.java",
    "chars": 1586,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTLessEq.java",
    "chars": 1599,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTList.java",
    "chars": 6102,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTMap.java",
    "chars": 3054,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTMethod.java",
    "chars": 19678,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTMultiply.java",
    "chars": 1602,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTNegate.java",
    "chars": 1986,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTNot.java",
    "chars": 1900,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTNotEq.java",
    "chars": 1593,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTNotIn.java",
    "chars": 2400,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTOr.java",
    "chars": 4953,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTProject.java",
    "chars": 2216,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTProperty.java",
    "chars": 22247,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTRemainder.java",
    "chars": 1484,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTRootVarRef.java",
    "chars": 2165,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTSelect.java",
    "chars": 2285,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTSelectFirst.java",
    "chars": 2322,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTSelectLast.java",
    "chars": 2328,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTSequence.java",
    "chars": 4434,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTShiftLeft.java",
    "chars": 1483,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTShiftRight.java",
    "chars": 1488,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTStaticField.java",
    "chars": 5020,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTStaticMethod.java",
    "chars": 8141,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTSubtract.java",
    "chars": 1480,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTTest.java",
    "chars": 4427,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTThisVarRef.java",
    "chars": 1860,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTUnsignedShiftRight.java",
    "chars": 2474,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTVarRef.java",
    "chars": 3179,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ASTXor.java",
    "chars": 1587,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/AbstractMemberAccess.java",
    "chars": 1236,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/AccessibleObjectHandler.java",
    "chars": 1411,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ArrayElementsAccessor.java",
    "chars": 1490,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ArrayPropertyAccessor.java",
    "chars": 7211,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/BooleanExpression.java",
    "chars": 2457,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ClassCacheInspector.java",
    "chars": 1299,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ClassResolver.java",
    "chars": 1089,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/CollectionElementsAccessor.java",
    "chars": 1179,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ComparisonExpression.java",
    "chars": 2988,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/DefaultClassResolver.java",
    "chars": 2334,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/DefaultTypeConverter.java",
    "chars": 1414,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/DynamicSubscript.java",
    "chars": 2161,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ElementsAccessor.java",
    "chars": 1858,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/EnumerationElementsAccessor.java",
    "chars": 1194,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/EnumerationIterator.java",
    "chars": 1436,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/EnumerationPropertyAccessor.java",
    "chars": 2122,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/Evaluation.java",
    "chars": 12621,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/EvaluationPool.java",
    "chars": 2123,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ExpressionNode.java",
    "chars": 4971,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ExpressionSyntaxException.java",
    "chars": 1185,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/InappropriateExpressionException.java",
    "chars": 1294,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/IteratorElementsAccessor.java",
    "chars": 1203,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/IteratorEnumeration.java",
    "chars": 1267,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/IteratorPropertyAccessor.java",
    "chars": 1979,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/JJTOgnlParserState.java",
    "chars": 3695,
    "preview": "/* Generated By:JavaCC: Do not edit this line. JJTOgnlParserState.java Version 4.1d1 */\npackage ognl;\n\npublic class JJTO"
  },
  {
    "path": "ognl/src/main/java/ognl/JavaSource.java",
    "chars": 2187,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ListPropertyAccessor.java",
    "chars": 9690,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/MapElementsAccessor.java",
    "chars": 1180,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/MapPropertyAccessor.java",
    "chars": 4962,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/MemberAccess.java",
    "chars": 2850,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/MethodAccessor.java",
    "chars": 2259,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/MethodFailedException.java",
    "chars": 1329,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NoSuchPropertyException.java",
    "chars": 1904,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/Node.java",
    "chars": 3903,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NodeType.java",
    "chars": 1309,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NullHandler.java",
    "chars": 2039,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumberElementsAccessor.java",
    "chars": 1689,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericCasts.java",
    "chars": 1541,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericDefaults.java",
    "chars": 1693,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericExpression.java",
    "chars": 3701,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericLiterals.java",
    "chars": 1712,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericTypes.java",
    "chars": 2292,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/NumericValues.java",
    "chars": 1852,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ObjectElementsAccessor.java",
    "chars": 1578,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ObjectIndexedPropertyDescriptor.java",
    "chars": 4351,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ObjectMethodAccessor.java",
    "chars": 2028,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ObjectNullHandler.java",
    "chars": 1278,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/ObjectPropertyAccessor.java",
    "chars": 10270,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/Ognl.java",
    "chars": 41455,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlCache.java",
    "chars": 11070,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlContext.java",
    "chars": 24877,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlException.java",
    "chars": 3633,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlOps.java",
    "chars": 35415,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlParserTreeConstants.java",
    "chars": 2824,
    "preview": "/* Generated By:JavaCC: Do not edit this line. OgnlParserTreeConstants.java Version 4.1d1 */\npackage ognl;\n\npublic inter"
  },
  {
    "path": "ognl/src/main/java/ognl/OgnlRuntime.java",
    "chars": 120653,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/PrimitiveDefaults.java",
    "chars": 1900,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/PrimitiveTypes.java",
    "chars": 1501,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/PrimitiveWrapperClasses.java",
    "chars": 2299,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/PropertyAccessor.java",
    "chars": 4059,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/SetPropertyAccessor.java",
    "chars": 1900,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/SimpleNode.java",
    "chars": 12341,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/TypeConverter.java",
    "chars": 1940,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/ContextClassLoader.java",
    "chars": 1418,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/EnhancedClassLoader.java",
    "chars": 1175,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/ExpressionAccessor.java",
    "chars": 2267,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/ExpressionCompiler.java",
    "chars": 27171,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/LocalReference.java",
    "chars": 1478,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/OgnlExpressionCompiler.java",
    "chars": 6344,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/OgnlLocalReference.java",
    "chars": 2529,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/OrderedReturn.java",
    "chars": 1595,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/enhance/UnsupportedCompilationException.java",
    "chars": 1531,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/Cache.java",
    "chars": 974,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/CacheException.java",
    "chars": 1044,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/CacheFactory.java",
    "chars": 1162,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/ClassCache.java",
    "chars": 1076,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/ClassCacheHandler.java",
    "chars": 2634,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/HashMapCache.java",
    "chars": 2239,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/HashMapCacheFactory.java",
    "chars": 1376,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/HashMapClassCache.java",
    "chars": 1463,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/CacheEntry.java",
    "chars": 870,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/CacheEntryFactory.java",
    "chars": 966,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/ClassCacheEntryFactory.java",
    "chars": 924,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/DeclaredMethodCacheEntry.java",
    "chars": 1790,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/DeclaredMethodCacheEntryFactory.java",
    "chars": 1388,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/FieldCacheEntryFactory.java",
    "chars": 1393,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/GenericMethodParameterTypeCacheEntry.java",
    "chars": 1691,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/GenericMethodParameterTypeFactory.java",
    "chars": 3316,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/MethodAccessCacheEntryFactory.java",
    "chars": 1852,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/MethodAccessEntryValue.java",
    "chars": 1347,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/MethodCacheEntry.java",
    "chars": 1434,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/MethodCacheEntryFactory.java",
    "chars": 2306,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/internal/entry/PropertyDescriptorCacheEntryFactory.java",
    "chars": 7898,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/main/java/ognl/package.html",
    "chars": 1676,
    "preview": "<html>\n<!--\n/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. "
  },
  {
    "path": "ognl/src/main/javacc/ognl.jj",
    "chars": 75723,
    "preview": "/*@bgen(jjtree) Generated By:JJTree: Do not edit this line. src/java/ognl/ognl.jj */\n/*@egen*/\n\n/*\n * Licensed to the Ap"
  },
  {
    "path": "ognl/src/main/jjtree/ognl.jjt",
    "chars": 17850,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ClassInDefaultPackage.java",
    "chars": 100,
    "preview": "@SuppressWarnings(\"unused\")\nclass ClassInDefaultPackage {\n    public static final int CONST = 99;\n}\n"
  },
  {
    "path": "ognl/src/test/java/com/sun/test/AnotherInternalClass.java",
    "chars": 1065,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/DefaultMemberAccess.java",
    "chars": 4957,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/ExcludedObjectMemberAccess.java",
    "chars": 1787,
    "preview": "/*\n * Copyright 2020 OGNL Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may "
  },
  {
    "path": "ognl/src/test/java/ognl/ObjectPropertyAccessorTest.java",
    "chars": 5516,
    "preview": "/*\n * Copyright 2020 OGNL Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may "
  },
  {
    "path": "ognl/src/test/java/ognl/OgnlContextTest.java",
    "chars": 7532,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/OgnlRuntimeAccessibilityTest.java",
    "chars": 5457,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/OgnlRuntimeMethodsTest.java",
    "chars": 22815,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/OgnlRuntimeTest.java",
    "chars": 16912,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ASTChainTest.java",
    "chars": 1497,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ASTMethodTest.java",
    "chars": 4480,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ASTPropertyTest.java",
    "chars": 11079,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ASTSequenceTest.java",
    "chars": 1645,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ArithmeticAndLogicalOperatorsOnEnumsTest.java",
    "chars": 8364,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ArithmeticAndLogicalOperatorsTest.java",
    "chars": 11781,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ArrayCreationTest.java",
    "chars": 4085,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ArrayElementsTest.java",
    "chars": 3762,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ChainTest.java",
    "chars": 3220,
    "preview": "/*\n * Copyright 2020 OGNL Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may "
  },
  {
    "path": "ognl/src/test/java/ognl/test/ClassMethodTest.java",
    "chars": 2840,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/CollectionDirectPropertyTest.java",
    "chars": 3758,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/CompilingPropertyAccessor.java",
    "chars": 9000,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ConstantTest.java",
    "chars": 5981,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ConstantTreeTest.java",
    "chars": 2986,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ContextRootPreservationTest.java",
    "chars": 7954,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/ContextVariableTest.java",
    "chars": 1958,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/CorrectedObjectNullHandler.java",
    "chars": 1550,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/DefaultClassResolverTest.java",
    "chars": 2672,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  },
  {
    "path": "ognl/src/test/java/ognl/test/DualModeEvaluationTest.java",
    "chars": 60374,
    "preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOT"
  }
]

// ... and 136 more files (download for full content)

About this extraction

This page contains the full source code of the jkuhnert/ognl GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 336 files (1.7 MB), approximately 401.6k tokens, and a symbol index with 3143 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!