+- CompilationUnit[@PackageName = "com.sample.test"]
   +- PackageDeclaration[@Name = "com.sample.test"]
   |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "rx.Observable", @ImportedSimpleName = "Observable", @ModuleImport = false, @PackageName = "rx", @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "rx.Subscriber", @ImportedSimpleName = "Subscriber", @ModuleImport = false, @PackageName = "rx", @Static = false]
   +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "com.sample.test.pmdTest", @CanonicalName = "com.sample.test.pmdTest", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "com.sample.test", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "pmdTest", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
      +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
      +- ClassBody[@Empty = false, @Size = 3]
         +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PRIVATE, @Static = false, @Visibility = Visibility.V_PRIVATE]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE), @ExplicitModifiers = (JModifier.PRIVATE)]
         |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BOOLEAN]
         |  +- VariableDeclarator[@Initializer = false, @Name = "stuff"]
         |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "stuff", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Name = "testSuper", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @Void = false]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Observable"]
         |  |  +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
         |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Boolean"]
         |  +- FormalParameters[@Empty = true, @Size = 0]
         |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     +- ReturnStatement[]
         |        +- MethodCall[@CompileTimeConstant = false, @Image = "map", @MethodName = "map", @ParenthesisDepth = 0, @Parenthesized = false]
         |           +- MethodCall[@CompileTimeConstant = false, @Image = "create", @MethodName = "create", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Observable"]
         |           |  +- ArgumentList[@Empty = false, @Size = 1]
         |           |     +- LambdaExpression[@Arity = 1, @BlockBody = true, @CompileTimeConstant = false, @ExplicitlyTyped = true, @ExpressionBody = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        +- LambdaParameterList[@Empty = false, @Size = 1]
         |           |        |  +- LambdaParameter[@EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_PACKAGE]
         |           |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |        |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Subscriber"]
         |           |        |     |  +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
         |           |        |     |     +- WildcardType[@LowerBound = true, @UpperBound = false]
         |           |        |     |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |           |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = true, @LocalVariable = false, @Name = "subscriber", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
         |           |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |           |           +- ExpressionStatement[]
         |           |              +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |                 +- VariableAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "stuff", @Name = "stuff", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |                 +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "true", @ParenthesisDepth = 0, @Parenthesized = false, @True = true]
         |           +- ArgumentList[@Empty = false, @Size = 1]
         |              +- LambdaExpression[@Arity = 1, @BlockBody = false, @CompileTimeConstant = false, @ExplicitlyTyped = false, @ExpressionBody = true, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- LambdaParameterList[@Empty = false, @Size = 1]
         |                 |  +- LambdaParameter[@EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_PACKAGE]
         |                 |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |                 |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = true, @LocalVariable = false, @Name = "authToken", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
         |                 +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "false", @ParenthesisDepth = 0, @Parenthesized = false, @True = false]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Name = "testSuper2", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @Void = false]
            +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
            +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Observable"]
            |  +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
            |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Boolean"]
            +- FormalParameters[@Empty = true, @Size = 0]
            +- Block[@Empty = false, @Size = 1, @containsComment = false]
               +- ReturnStatement[]
                  +- MethodCall[@CompileTimeConstant = false, @Image = "map", @MethodName = "map", @ParenthesisDepth = 0, @Parenthesized = false]
                     +- MethodCall[@CompileTimeConstant = false, @Image = "create", @MethodName = "create", @ParenthesisDepth = 0, @Parenthesized = false]
                     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
                     |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Observable"]
                     |  +- ArgumentList[@Empty = false, @Size = 1]
                     |     +- LambdaExpression[@Arity = 1, @BlockBody = true, @CompileTimeConstant = false, @ExplicitlyTyped = false, @ExpressionBody = false, @ParenthesisDepth = 0, @Parenthesized = false]
                     |        +- LambdaParameterList[@Empty = false, @Size = 1]
                     |        |  +- LambdaParameter[@EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_PACKAGE]
                     |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
                     |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = true, @LocalVariable = false, @Name = "subscriber", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
                     |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
                     |           +- ExpressionStatement[]
                     |              +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
                     |                 +- VariableAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "stuff", @Name = "stuff", @ParenthesisDepth = 0, @Parenthesized = false]
                     |                 +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "true", @ParenthesisDepth = 0, @Parenthesized = false, @True = true]
                     +- ArgumentList[@Empty = false, @Size = 1]
                        +- LambdaExpression[@Arity = 1, @BlockBody = false, @CompileTimeConstant = false, @ExplicitlyTyped = false, @ExpressionBody = true, @ParenthesisDepth = 0, @Parenthesized = false]
                           +- LambdaParameterList[@Empty = false, @Size = 1]
                           |  +- LambdaParameter[@EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_PACKAGE]
                           |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
                           |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = true, @LocalVariable = false, @Name = "authToken", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
                           +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "false", @ParenthesisDepth = 0, @Parenthesized = false, @True = false]
