public List<String> orderByJapiNumber(Set<String> src) {
    Map<String, String> res = new TreeMap<String, String>();
    for (String sk : src) {
      ZendyDataClass ck = this.getZendyClassFor(sk);
      res.put(ck.japiNumber("") + " " + sk, sk);
    }

    return res.values().stream().collect(Collectors.toList());
  }
  public void dump() {
    for (String lk : this.orderByJapiNumber(this.getZendyClassLinks())) {
      ZendyDataClass vk = this.getZendyClassFor(lk);
      System.out.println(lk + " -> " + vk.reflectClass().getName());

      for (String mj : this.getZendyLinksFor(vk)) {
        System.out.println(mj + " -> " + this.getZendyMethodFor(mj).reflectMethodName());
      } // for each action
    } // for each controller

    return;
  }
  protected void addReflectedMethods(String path, ZendyDataClass group) {
    for (Method mk : group.reflectClass().getMethods())
      if (checkZendyMethod(mk)) {
        ZendyDataMethod sk = ZendyDataMethod.start(mk, group);
        String uj = translateZendyMethod(mk);
        lut.put(path + uj, sk);
      } // for each spring method

    return;
  }
  public List<String> getZendyLinksFor(ZendyDataClass gr) {
    List<String> res = new ArrayList<String>();

    for (String nk : lut.keySet()) {
      Object vk = lut.get(nk);
      if (vk instanceof ZendyDataMethod
          && ((ZendyDataMethod) vk).reflectClass() == gr.reflectClass()) res.add(nk);
    }

    return res;
  }
  protected void addReflectedControllers(Class<?> c0) {
    for (Class<?> ck : Class2.fetchClasses(c0))
      if (checkZendyClass(ck)) {
        ZendyDataClass sk = ZendyDataClass.start(ck);
        String uj = translateZendyClass(ck);
        lut.put(uj, sk);
        lutClasses.put(uj, sk);
        addReflectedMethods(uj, sk);
      }

    return;
  }
 public List<ZendyDataMethod> getZendyMethodsFor(Class<?> cl) {
   return getZendyMethodsFor(ZendyDataClass.start(cl));
 }
 public List<String> getZendyLinksFor(Class<?> cl) {
   return getZendyLinksFor(ZendyDataClass.start(cl));
 }