code: public String[] getDevices(Database database, String wildcard) throws DevFailed {
          //	Get each field of device name
          StringTokenizer stk = new StringTokenizer(wildcard, "/");
          Vector<String> vector = new Vector<String>();
          while (stk.hasMoreTokens())
              vector.add(stk.nextToken());
          if (vector.size()<3)
              Except.throw_exception("TangoApi_DeviceNameNotValid",
                      "Device name not valid", "ATangoApi.Database.getDevices()");
  
          String domain = vector.elementAt(0);
          String family = vector.elementAt(1);
          String member = vector.elementAt(2);
          vector.clear();
  
          //	Check for specifieddomain
          String[] domains = get_device_domain(database, domain);
          if (domains.length==0)
              domains = new String[]{domain};
  
          //	Check for all domains found
          for (String domain_1 : domains) {
              String domain_header = domain_1 + "/";
              //	Get families
              String[] families = get_device_family(database, domain_header + family);
              if (families.length==0)
                  families = new String[]{family};
  
              //	Check for all falilies found
              for (String family_1 : families) {
                  String family_header = domain_header + family_1 + "/";
                  String[] members = get_device_member(database, family_header + member);
  
                  //	Add all members found
                  for (String member_1 : members)
                      vector.add(family_header + member_1);
              }
          }
          //	Copy all from vector to String array
          String[] devices = new String[vector.size()];
          for (int i = 0 ; i<vector.size() ; i++)
              devices[i] = vector.elementAt(i);
          return devices;
      }
docs: /* (non-Javadoc)
  @see fr.esrf.TangoApi.IDatabaseDAO#getDevices(java.lang.String)