package com.googlecode.gwtphonegap.server.log.rebind; import java.util.List; import com.google.gwt.core.ext.BadPropertyValueException; import com.google.gwt.core.ext.ConfigurationProperty; import com.google.gwt.core.ext.Generator; import com.google.gwt.core.ext.GeneratorContext; import com.google.gwt.core.ext.PropertyOracle; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; public class PhoneGapLogThresholdGenerator extends Generator { /** * */ private static final String BASE = "com.googlecode.gwtphonegap.client.log.PhoneGapLogThreshold"; @Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { PropertyOracle propertyOracle = context.getPropertyOracle(); ConfigurationProperty property = null; String level = "INFO"; try { property = propertyOracle.getConfigurationProperty("phonegap.logging.threshold"); List<String> values = property.getValues(); if (values.size() < 1) { logger.log(TreeLogger.WARN, "can not resolve phonegap.logging.threshold variable - defaulting to INFO"); } else { level = values.get(0); } } catch (BadPropertyValueException e) { logger.log(TreeLogger.WARN, "can not resolve phonegap.logging.threshold variable - defaulting to INFO", e); } if ("INFO".equalsIgnoreCase(level)) { return BASE + ".Info"; } if ("ALL".equalsIgnoreCase(level)) { return BASE + ".Info"; } if ("FINEST".equalsIgnoreCase(level)) { return BASE + ".Finest"; } if ("FINER".equalsIgnoreCase(level)) { return BASE + ".Finer"; } if ("FINE".equalsIgnoreCase(level)) { return BASE + ".Fine"; } if ("CONFIG".equalsIgnoreCase(level)) { return BASE + ".Config"; } if ("WARNING".equalsIgnoreCase(level)) { return BASE + ".Warning"; } if ("SEVERE".equalsIgnoreCase(level)) { return BASE + ".Severe"; } if ("SEVERE".equalsIgnoreCase(level)) { return BASE + ".All"; } logger.log(TreeLogger.WARN, "unkown value for phonegap.logging.threshold: '" + level + "' - defaulting to INFO"); return BASE + ".Info"; } }