Как мне написать комментарий к файлу PropertiesConfiguration? - PullRequest
1 голос
/ 30 августа 2011

Учитывая один из этих экземпляров: org.apache.commons.configuration.PropertiesConfiguration Я хочу написать комментарий.Как?

pc = new PropertiesConfiguration();

writeComment("this is a comment about the stuff below"); // HOW DO I WRITE THIS?
pc.addProperty("label0", myString);
writeComment("end of the stuff that needed a comment.");

Редактировать: у меня есть грубое решение.Надеюсь, это можно улучшить.


Вот лучшее, что я мог сделать.Он оставляет постороннюю строку в файле.

pc = new PropertiesConfiguration();
writeComment(pc, "The following needed a comment so this is a comment.");
pc.addProperty(label0, stuff0);
writeComment(pc, "End of the stuff that needed a comment.");

...
 private void writeComment(PropertiesConfiguration pc, String s)
 {
    String propertyName = String.format("%s%d", "comment", this.commentNumber++);

    pc.getLayout().setComment(propertyName, s + " (" + propertyName + ")");

    // make a dummy property 
    pc.addProperty(propertyName, "."); 
         // put in a dummy right-hand-side value so the = sign is not lonely 
 }

Одна из проблем этого подхода заключается в том, что документ PropertiesConfiguration немного расплывчат в макете.В нем прямо не говорится, что комментарий будет отображаться над фиктивной строкой, поэтому существует риск того, что PropertiesConfiguration может свободно переупорядочить файл при последующих вызовах.Я даже не видел гарантии того, что порядок строки свойств сохраняется, поэтому я не могу гарантировать, что комментарий (и фиктивная строка) всегда будет выше свойства, к которому относится комментарий: свойство label0.Конечно, я здесь немного параноик.Тем не менее, документ говорит, что макеты не гарантированно останутся неизменными. Надеюсь, кто-то может придумать что-то без фиктивной строки и документа Java или веб-сайта с гарантией на положение комментария относительно свойства, к которому он предназначен, чтобы прокомментировать. Редактировать: Вы можете спросить, почему я бы создалфиктивное свойство вместо простого добавления комментария к одному из свойств, которое уже будет в файле.Причина в том, что я хочу, чтобы комментарий представил блок свойств, и возможны изменения (новые или переключение в порядке).Я не хочу создавать проблему обслуживания.В моем комментарии должно быть написано «это раздел результатов анализа данных» или «это раздел графика», и мне никогда не придется возвращаться к нему.

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

Конфигурация свойств JavaDoc документы

 Blank lines and lines starting with character '#' or '!' are skipped. 

РЕДАКТИРОВАТЬ : Хорошо, вы хотите написать комментарий из кода. Возможно - если вам просто нужно написать файл свойств - вы можете использовать PropertiesConfiguration.PropertiesWriter и его writeComment метод, подобный этому:

FileWriter writer = new FileWriter("test.properties");
PropertiesWriter propWriter = new PropertiesWriter(writer, ';');

propWriter.writeComment("Example properties");
propWriter.writeProperty("prop1","foo");
propWriter.writeProperty("prop2", "bar");

propWriter.close();

Файл свойств будет выглядеть так:

# Example properties
prop1 = foo
prop2 = bar

Обновление

В итоге: PropertiesConfiguration не предоставляет нужную вам функциональность.

0 голосов
/ 30 августа 2011

Комментарий как этот?

# This is comment
...