maxLengthValue = length;
}
}
for (int i = 0; i < props.length; i++) {
ConfigProperty prop = props[i];
StringBuffer buffer = new StringBuffer();
// �����Ŀ�������ļ��в����ڣ�����ʾ?
boolean absent = !getKeys().contains(prop.getName());
// ����DZ�����, ����ʾ*��
boolean required = prop.isRequired();
// �����Ŀ������shared properties�У�����ʾS
boolean shared = propSet.isShared(prop.getName());
if (shared) {
if (absent) {
buffer.append("s");
} else {
buffer.append("S");
}
} else {
if (absent) {
buffer.append("?");
} else {
buffer.append(" ");
}
}
if (required) {
buffer.append("* ");
} else {
buffer.append(" ");
}
// ��ʾproperty���
buffer.append(i + 1).append(" - ");
// ��ʾproperty����
buffer.append(prop.getName());
// ��ʾpropertyֵ
String value = getPropertyValue(prop, true);
if (value != null) {
for (int j = 0; j < (maxLength - prop.getName().length()); j++) {
buffer.append(' ');
}
buffer.append(" = ").append(value);
}
// ��ʾproperty����
if (prop.getDescription() != null) {
int length = (value == null) ? prop.getName().length() : (Math.max(prop.getName().length(), maxLength)
+ " = ".length() + value.length());
for (int j = 0; j < (maxLengthValue - length); j++) {
buffer.append(' ');
}
buffer.append(" # ").append(prop.getDescription());
}
// ���ֵ�DZ��ʽ����ͬʱ��ʾ���ʽ�ļ���ֵ
String evaluatedValue = evaluatePropertyValue(prop, true);