Copyright 2016 Netflix, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
/** * Copyright 2016 Netflix, Inc. * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
package com.netflix.hystrix.strategy.properties.archaius; import com.netflix.config.PropertyWrapper; import com.netflix.hystrix.strategy.properties.HystrixDynamicProperties; import com.netflix.hystrix.strategy.properties.HystrixDynamicProperty;
This class should not be imported from any class in core or else Archaius will be loaded.
Author:agentgt
@ExcludeFromJavadoc
/** * This class should not be imported from any class in core or else Archaius will be loaded. * @author agentgt * @ExcludeFromJavadoc */
/* package */ public class HystrixDynamicPropertiesArchaius implements HystrixDynamicProperties {
@ExcludeFromJavadoc
/** * @ExcludeFromJavadoc */
@Override public HystrixDynamicProperty<String> getString(String name, String fallback) { return new StringDynamicProperty(name, fallback); }
@ExcludeFromJavadoc
/** * @ExcludeFromJavadoc */
@Override public HystrixDynamicProperty<Integer> getInteger(String name, Integer fallback) { return new IntegerDynamicProperty(name, fallback); }
@ExcludeFromJavadoc
/** * @ExcludeFromJavadoc */
@Override public HystrixDynamicProperty<Long> getLong(String name, Long fallback) { return new LongDynamicProperty(name, fallback); }
@ExcludeFromJavadoc
/** * @ExcludeFromJavadoc */
@Override public HystrixDynamicProperty<Boolean> getBoolean(String name, Boolean fallback) { return new BooleanDynamicProperty(name, fallback); } private abstract static class ArchaiusDynamicProperty<T> extends PropertyWrapper<T> implements HystrixDynamicProperty<T> { protected ArchaiusDynamicProperty(String propName, T defaultValue) { super(propName, defaultValue); } @Override public T get() { return getValue(); } } private static class StringDynamicProperty extends ArchaiusDynamicProperty<String> { protected StringDynamicProperty(String propName, String defaultValue) { super(propName, defaultValue); } @Override public String getValue() { return prop.getString(defaultValue); } } private static class IntegerDynamicProperty extends ArchaiusDynamicProperty<Integer> { protected IntegerDynamicProperty(String propName, Integer defaultValue) { super(propName, defaultValue); } @Override public Integer getValue() { return prop.getInteger(defaultValue); } } private static class LongDynamicProperty extends ArchaiusDynamicProperty<Long> { protected LongDynamicProperty(String propName, Long defaultValue) { super(propName, defaultValue); } @Override public Long getValue() { return prop.getLong(defaultValue); } } private static class BooleanDynamicProperty extends ArchaiusDynamicProperty<Boolean> { protected BooleanDynamicProperty(String propName, Boolean defaultValue) { super(propName, defaultValue); } @Override public Boolean getValue() { return prop.getBoolean(defaultValue); } } }