in core/bootstrap/src/main/java/org/yaml/snakeyaml/TypeDescription.java [324:378]
public Set<Property> getProperties() {
if (dumpProperties != null) {
return dumpProperties;
}
if (propertyUtils != null) {
if (includes != null) {
dumpProperties = new LinkedHashSet<Property>();
for (String propertyName : includes) {
if (!excludes.contains(propertyName)) {
dumpProperties.add(getProperty(propertyName));
}
}
return dumpProperties;
}
final Set<Property> readableProps = (beanAccess == null)
? propertyUtils.getProperties(type)
: propertyUtils.getProperties(type, beanAccess);
if (properties.isEmpty()) {
if (excludes.isEmpty()) {
return dumpProperties = readableProps;
}
dumpProperties = new LinkedHashSet<Property>();
for (Property property : readableProps) {
if (!excludes.contains(property.getName())) {
dumpProperties.add(property);
}
}
return dumpProperties;
}
if (!delegatesChecked) {
checkDelegates();
}
dumpProperties = new LinkedHashSet<Property>();
for (Property property : properties.values()) {
if (!excludes.contains(property.getName()) && property.isReadable()) {
dumpProperties.add(property);
}
}
for (Property property : readableProps) {
if (!excludes.contains(property.getName())) {
dumpProperties.add(property);
}
}
return dumpProperties;
}
return null;
}