Jawa / Говнокод #5207 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
private boolean save(Writer writer, int indent) {
  StringBuffer nlb = new StringBuffer("\n");
  for (int i = 0; i < indent; i++) {
   nlb.append("\t");
  }
  String nl = nlb.toString();
  Writer s = writer;
  try {
   if (this.isRoot()) {
    s.append("<?xml version=\"1.0\" encoding=\"");
    s.append(Charset.defaultCharset().displayName());
    s.append("\"?>");
   }
   s.append(nl);
   s.append("<");
   s.append(RegNode.EL_NODE);
   s.append(" ");
   s.append(RegNode.ATT_NAME);
   s.append("=\"");
   s.append(this.getName());
   s.append("\">");
   if (this.getData() != null) {
    s.append(nl);
    s.append("\t<");
    s.append(RegNode.EL_DATA);
    s.append(" ");
    s.append(RegNode.ATT_TYPE);
    s.append("=\"");
    s.append(RegNode.getTypeFor(this.getData()));
    s.append("\" ");
    s.append(RegNode.ATT_ENCODE);
    s.append("=\"");
    s.append(this.getMethod());
    s.append("\">");
    s.append(nl);
    s.append("\t\t");
    s.append(RegNode.encodeData(this.getData(), this.getMethod()));
    s.append(nl);
    s.append("\t</");
    s.append(RegNode.EL_DATA);
    s.append(">");
   }
   for (RegNode child : this.getChildren()) {
    s.append("\t");
    child.save(s, indent + 1);
   }
   s.append(nl);
   s.append("</");
   s.append(RegNode.EL_NODE);
   s.append(">");
   return true;
  } catch (IOException e) {
   e.printStackTrace();
  }
  return false;
 }

не нужен нам ни DOM, ни SAX, ни JAXB!

из класса, пытающегося реализовать себе "Windows Registry"-подобное древовидное хранилище.
каюсь, лисапед тоже мой = )

Запостил: Lure Of Chaos Lure Of Chaos, (Updated )

Комментарии (6) RSS

  • А парсер для этого, или не было?

    алсо

    >На сайте проводится профилактика, поэтому гостям нельзя писать комментарии до 1 января 2011. Говнокод.ру благодарит Вас за понимание!
    >поэтому гостям нельзя писать комментарии до 1 января 2011
    >до 1 января 2011

    >благодарит Вас за понимание
    Ответить
    • парсер DOMовский
      public boolean load(Reader reader) {
        try {
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder builder = factory.newDocumentBuilder();
         Document doc = builder.parse(new InputSource(reader));
         RegNode.RegNode(this, doc.getDocumentElement());
         return true;
        } catch (IOException e) {
         e.printStackTrace();
        } catch (ParserConfigurationException e) {
         e.printStackTrace();
        } catch (SAXException e) {
         e.printStackTrace();
        }
        return false;
       }
      Ответить
      • @SuppressWarnings("all")
         public static RegNode RegNode(RegNode regNode, Node el) {
          RegNode.RegNode(regNode, null,
            el.getAttributes().getNamedItem(RegNode.ATT_NAME).getNodeValue(), null);
          for (int i = 0; i < el.getChildNodes().getLength(); i++) {
           Node child = el.getChildNodes().item(i);
           if (RegNode.EL_DATA.equals(child.getNodeName())) {
            String encode = child.getAttributes().getNamedItem(RegNode.ATT_ENCODE)
              .getNodeValue();
            String type = child.getAttributes().getNamedItem(RegNode.ATT_TYPE)
              .getNodeValue();
            String data = child.getChildNodes().item(0).getNodeValue();
            regNode.setData(RegNode.decodeData(data.trim(), encode, type));
           }
           if (RegNode.EL_NODE.equals(child.getNodeName())) {
            RegNode newRegNode = new RegNode();
            RegNode.RegNode(newRegNode, child);
            newRegNode.setParent(regNode);
           }
          }
          return regNode;
         }
        Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8