com.ctrip.framework.apollo.spring.config.ConfigPropertySource Maven / Gradle / Ivy
The newest version!
package com.ctrip.framework.apollo.spring.config;
import com.ctrip.framework.apollo.ConfigChangeListener;
import java.util.Set;
import org.springframework.core.env.EnumerablePropertySource;
import com.ctrip.framework.apollo.Config;
/**
* Property source wrapper for Config
*
* @author Jason Song([email protected])
*/
public class ConfigPropertySource extends EnumerablePropertySource {
private static final String[] EMPTY_ARRAY = new String[0];
ConfigPropertySource(String name, Config source) {
super(name, source);
}
@Override
public String[] getPropertyNames() {
Set propertyNames = this.source.getPropertyNames();
if (propertyNames.isEmpty()) {
return EMPTY_ARRAY;
}
return propertyNames.toArray(new String[propertyNames.size()]);
}
@Override
public Object getProperty(String name) {
return this.source.getProperty(name, null);
}
public void addChangeListener(ConfigChangeListener listener) {
this.source.addChangeListener(listener);
}
}