test_class.file: integration/client-cli/admin-cli/src/test/java/org/keycloak/client/admin/cli/util/ReturnFieldsTest.java
test_class.identifier: ReturnFieldsTest
test_case.body: @Test
      public void testNested() {
          String spec = "field1,field2(sub1,sub2(subsub1)),field3";
          ReturnFields fspec = new ReturnFields(spec);
  
          String val = traverse(fspec);
          Assert.assertEquals(spec, val.toString());
  
  
          // check catching errors
  
          String[] specs = {
                  "(",
                  ")",
                  "field1,(",
                  "field1,)",
                  "field1,field2(",
                  "field1,field2)",
                  "field1,field2()",
                  "field1,field2(sub1)(",
                  "field1,field2(sub1))",
                  "field1,field2(sub1),"
          };
  
          for (String filter : specs) {
              try {
                  fspec = new ReturnFields(filter);
                  Assert.fail("Parsing of fields spec should have failed! : " + filter);
              } catch (Exception e) {
                  //e.printStackTrace();
              }
          }
      }
test_case.class_method_signature: ReturnFieldsTest.testNested()
test_case.full_signature: @Test public void testNested()
test_case.identifier: testNested
test_case.invocations: traverse assertEquals toString fail
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNested()
focal_class.declarator: ALL = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return NONE;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return true;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              return Collections.singletonList("*").iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return false;
          }
  
          public boolean isAll() {
              return true;
          }
  
          @Override
          public String toString() {
              return "[ReturnFields ALL]";
          }
      }
focal_class.modifier: public static
focal_class.original_string: public static ReturnFields ALL = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return NONE;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return true;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              return Collections.singletonList("*").iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return false;
          }
  
          public boolean isAll() {
              return true;
          }
  
          @Override
          public String toString() {
              return "[ReturnFields ALL]";
          }
      };
focal_class.type: ReturnFields
focal_class.var_name: ALL
focal_class.declarator: NONE = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return this;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return false;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              List<String> emptyList = Collections.emptyList();
              return emptyList.iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return true;
          }
  
          @Override
          public boolean isAll() {
              return false;
          }
  
          @Override
          public String toString() {
              return "[ReturnFields NONE]";
          }
      }
focal_class.modifier: public static
focal_class.original_string: public static ReturnFields NONE = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return this;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return false;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              List<String> emptyList = Collections.emptyList();
              return emptyList.iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return true;
          }
  
          @Override
          public boolean isAll() {
              return false;
          }
  
          @Override
          public String toString() {
              return "[ReturnFields NONE]";
          }
      };
focal_class.type: ReturnFields
focal_class.var_name: NONE
focal_class.declarator: ALL_RECURSIVELY = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return this;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return true;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              List<String> emptyList = Collections.emptyList();
              return emptyList.iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return false;
          }
  
          @Override
          public boolean isAll() {
              return true;
          }
      }
focal_class.modifier: public static
focal_class.original_string: public static ReturnFields ALL_RECURSIVELY = new ReturnFields() {
          @Override
          public ReturnFields child(String field) {
              return this;
          }
  
          @Override
          public boolean included(String... pathSegments) {
              return true;
          }
  
          @Override
          public boolean excluded(String field) {
              return false;
          }
  
          @Override
          public Iterator<String> iterator() {
              List<String> emptyList = Collections.emptyList();
              return emptyList.iterator();
          }
  
          @Override
          public boolean isEmpty() {
              return false;
          }
  
          @Override
          public boolean isAll() {
              return true;
          }
      };
focal_class.type: ReturnFields
focal_class.var_name: ALL_RECURSIVELY
focal_class.declarator: fields = new LinkedHashMap<>()
focal_class.modifier: private
focal_class.original_string: private HashMap<String, ReturnFields> fields = new LinkedHashMap<>();
focal_class.type: HashMap<String, ReturnFields>
focal_class.var_name: fields
focal_class.file: integration/client-cli/admin-cli/src/main/java/org/keycloak/client/admin/cli/util/ReturnFields.java
focal_class.identifier: ReturnFields
focal_class.interfaces: implements Iterable<String>
focal_class.class_method_signature: ReturnFields.ReturnFields()
focal_class.full_signature: public  ReturnFields()
focal_class.identifier: ReturnFields
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ReturnFields()
focal_class.class_method_signature: ReturnFields.ReturnFields(String spec)
focal_class.full_signature: public  ReturnFields(String spec)
focal_class.identifier: ReturnFields
focal_class.modifiers: public
focal_class.parameters: (String spec)
focal_class.signature:  ReturnFields(String spec)
focal_class.class_method_signature: ReturnFields.error(String spec, int i)
focal_class.full_signature: private void error(String spec, int i)
focal_class.identifier: error
focal_class.modifiers: private
focal_class.parameters: (String spec, int i)
focal_class.return: void
focal_class.signature: void error(String spec, int i)
focal_class.class_method_signature: ReturnFields.child(String field)
focal_class.full_signature: public ReturnFields child(String field)
focal_class.identifier: child
focal_class.modifiers: public
focal_class.parameters: (String field)
focal_class.return: ReturnFields
focal_class.signature: ReturnFields child(String field)
focal_class.class_method_signature: ReturnFields.included(String... pathSegments)
focal_class.full_signature: public boolean included(String... pathSegments)
focal_class.identifier: included
focal_class.modifiers: public
focal_class.parameters: (String... pathSegments)
focal_class.return: boolean
focal_class.signature: boolean included(String... pathSegments)
focal_class.class_method_signature: ReturnFields.excluded(String field)
focal_class.full_signature: public boolean excluded(String field)
focal_class.identifier: excluded
focal_class.modifiers: public
focal_class.parameters: (String field)
focal_class.return: boolean
focal_class.signature: boolean excluded(String field)
focal_class.class_method_signature: ReturnFields.iterator()
focal_class.full_signature: public Iterator<String> iterator()
focal_class.identifier: iterator
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Iterator<String>
focal_class.signature: Iterator<String> iterator()
focal_class.class_method_signature: ReturnFields.isEmpty()
focal_class.full_signature: public boolean isEmpty()
focal_class.identifier: isEmpty
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isEmpty()
focal_class.class_method_signature: ReturnFields.isAll()
focal_class.full_signature: public boolean isAll()
focal_class.identifier: isAll
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isAll()
focal_class.class_method_signature: ReturnFields.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: @Override
      public String toString() {
          return "[ReturnFieldsImpl: fields=" + this.fields + "]";
      }
focal_method.class_method_signature: ReturnFields.toString()
focal_method.full_signature: @Override public String toString()
focal_method.identifier: toString
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: String
focal_method.signature: String toString()