int propFindType) {
this(resource.getHref(), null, TYPE_PROPSTAT);
// only property names requested
if (propFindType == PROPFIND_PROPERTY_NAMES) {
PropContainer status200 = getPropContainer(DavServletResponse.SC_OK, true);
DavPropertyName[] propNames = resource.getPropertyNames();
for (int i = 0; i < propNames.length; i++) {
status200.addContent(propNames[i]);
}
// all or a specified set of property and their values requested.
} else {
PropContainer status200 = getPropContainer(DavServletResponse.SC_OK, false);
// clone set of property, since several resources could use this again
propNameSet = new DavPropertyNameSet(propNameSet);
// Add requested properties or all non-protected properties
DavPropertyIterator iter = resource.getProperties().iterator();
while (iter.hasNext()) {
DavProperty property = iter.nextProperty();
if ((propFindType == PROPFIND_ALL_PROP && !property.isProtected()) || propNameSet.remove(property.getName())) {
status200.addContent(property);
}
}
if (!propNameSet.isEmpty() && propFindType != PROPFIND_ALL_PROP) {
PropContainer status404 = getPropContainer(DavServletResponse.SC_NOT_FOUND, true);
DavPropertyNameIterator iter1 = propNameSet.iterator();
while (iter1.hasNext()) {
DavPropertyName propName = iter1.nextPropertyName();
status404.addContent(propName);
}
}
}
}