package angularBeans.util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.logging.Logger; import com.google.gson.ExclusionStrategy; /*** * Angular Beans Configuration Util * * <br><br> * * <b>Properties:</b> ng.properties * * @author Tiago Carvalho */ public class NGConfiguration { private static String ANGULAR_BEANS_PROPERTIES = "ng.properties"; private static String GSON_EXCLUSION_STRATEGY = "gson.exclusionStrategy"; public static String getProperty(String property) { try(InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(ANGULAR_BEANS_PROPERTIES)){ if(is != null){ Properties props = new Properties(); props.load(is); return props.getProperty(property); } } catch (IOException e){ Logger.getLogger(NGConfiguration.class.getName()).severe(e.toString()); } return null; } public static ExclusionStrategy[] getGsonExclusionStrategy() { try{ String exclusionStrategyName = NGConfiguration.getProperty(GSON_EXCLUSION_STRATEGY); if(exclusionStrategyName != null && exclusionStrategyName.length() > 0){ return new ExclusionStrategy[]{(ExclusionStrategy) Class.forName(exclusionStrategyName).newInstance()}; } } catch (Exception e){ Logger.getLogger(NGConfiguration.class.getName()).severe(e.toString()); } // Needs to return empty array explicitly instead of null because of GsonBuilder's setExclusionStrategies() varargs return new ExclusionStrategy[]{}; } }