package org.apereo.cas; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.data.mongodb.core.MongoOperations; import java.util.List; /** * This is {@link MongoDbPropertySource}. * * @author Misagh Moayyed * @since 5.0.0 */ public class MongoDbPropertySource extends EnumerablePropertySource<MongoOperations> { private final List<MongoDbProperty> list; public MongoDbPropertySource(final String context, final MongoOperations mongo) { super(context, mongo); list = getSource().findAll(MongoDbProperty.class, MongoDbProperty.class.getSimpleName()); } @Override public String[] getPropertyNames() { return list.stream().map(MongoDbProperty::getName).toArray(String[]::new); } @Override public Object getProperty(final String s) { return list.stream().filter(prop -> prop.getName().equals(s)) .findFirst().map(MongoDbProperty::getValue) .orElse(null); } }