* @see Limit\r
* @author pvtroshin\r
* \r
- * Date January 2010\r
+ * @version 1.0 January 2010\r
* @param <T>\r
* executable type\r
*/\r
@XmlAccessorType(XmlAccessType.FIELD)\r
public class LimitsManager<T> {\r
\r
- String runnerClassName;\r
- List<Limit<T>> limit;\r
+ String runnerClassName;\r
+ List<Limit<T>> limit;\r
\r
- /**\r
- * \r
- * @return all limits defined for an executable T\r
- */\r
- public List<Limit<T>> getLimits() {\r
- return limit;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return "LimitsManager [limits=" + limit + ", runnerClassName="\r
- + runnerClassName + "]";\r
- }\r
-\r
- /**\r
- * \r
- * @param presetName\r
- * @return Limit defined for the executable T and presetName. If no limit is\r
- * defined for the presetName then default Limit is returned. If\r
- * presetName is empty or null than the default Limit will be\r
- * returned. If not limit defined for the type T than NULL will be\r
- * returned\r
- */\r
- public Limit<T> getLimitByName(String presetName) {\r
- if (Util.isEmpty(presetName)) {\r
- // return default limit\r
- return getDefaultLimit();\r
- }\r
- for (Limit<T> lim : limit) {\r
- String preset = lim.getPreset();\r
- if (preset == null) {\r
- continue;\r
- }\r
- if (preset.equalsIgnoreCase(presetName)) {\r
- return lim;\r
- }\r
+ /**\r
+ * \r
+ * @return all limits defined for an executable T\r
+ */\r
+ public List<Limit<T>> getLimits() {\r
+ return limit;\r
}\r
- return null;\r
- }\r
\r
- /**\r
- * \r
- * @return the default Limit for an executable type T\r
- */\r
- public Limit<T> getDefaultLimit() {\r
- for (Limit<T> lim : limit) {\r
- if (lim.isDefault) {\r
- return lim;\r
- }\r
+ @Override\r
+ public String toString() {\r
+ return "LimitsManager [limits=" + limit + ", runnerClassName="\r
+ + runnerClassName + "]";\r
}\r
- return null;\r
- }\r
\r
- /**\r
- * Validate Limits\r
- * \r
- * @see Limit\r
- * @see Preset\r
- * @param presets\r
- * @throws ValidationException\r
- * if any of the Limit defined is found to be invalid. That is\r
- * when\r
- * \r
- * 1) No default limit is defined\r
- * \r
- * 2) More than 1 default limit is defined\r
- * \r
- * 3) Limit's preset name does not match any presets for type T\r
- */\r
- public void validate(PresetManager<T> presets) throws ValidationException {\r
- int defaults = 0;\r
- for (Limit<T> lim : limit) {\r
- if (lim.isDefault) {\r
- defaults++;\r
- }\r
- }\r
- if (defaults == 0) {\r
- throw new ValidationException("Default limit is not set!");\r
+ /**\r
+ * \r
+ * @param presetName\r
+ * @return Limit defined for the executable T and presetName. If no limit is\r
+ * defined for the presetName then default Limit is returned. If\r
+ * presetName is empty or null than the default Limit will be\r
+ * returned. If not limit defined for the type T than NULL will be\r
+ * returned\r
+ */\r
+ public Limit<T> getLimitByName(String presetName) {\r
+ if (Util.isEmpty(presetName)) {\r
+ // return default limit\r
+ return getDefaultLimit();\r
+ }\r
+ for (Limit<T> lim : limit) {\r
+ String preset = lim.getPreset();\r
+ if (preset == null) {\r
+ continue;\r
+ }\r
+ if (preset.equalsIgnoreCase(presetName)) {\r
+ return lim;\r
+ }\r
+ }\r
+ return null;\r
}\r
- if (defaults > 1) {\r
- throw new ValidationException(\r
- "Default limit is set more than once!");\r
+\r
+ /**\r
+ * \r
+ * @return the default Limit for an executable type T\r
+ */\r
+ public Limit<T> getDefaultLimit() {\r
+ for (Limit<T> lim : limit) {\r
+ if (lim.isDefault) {\r
+ return lim;\r
+ }\r
+ }\r
+ return null;\r
}\r
- if (presets != null) {\r
- for (Limit<T> lim : limit) {\r
- lim.validate();\r
- String presetName = lim.getPreset();\r
- // skip "special" preset\r
- if (presetName != null\r
- && !presetName\r
- .equals(PresetManager.LOCAL_ENGINE_LIMIT_PRESET)) {\r
- Preset<T> preset = presets.getPresetByName(presetName);\r
- if (preset == null) {\r
- throw new ValidationException("Preset " + presetName\r
- + " is not found!");\r
- }\r
+\r
+ /**\r
+ * Validate Limits\r
+ * \r
+ * @see Limit\r
+ * @see Preset\r
+ * @param presets\r
+ * @throws ValidationException\r
+ * if any of the Limit defined is found to be invalid. That is\r
+ * when\r
+ * \r
+ * 1) No default limit is defined\r
+ * \r
+ * 2) More than 1 default limit is defined\r
+ * \r
+ * 3) Limit's preset name does not match any presets for type T\r
+ */\r
+ public void validate(PresetManager<T> presets) throws ValidationException {\r
+ int defaults = 0;\r
+ for (Limit<T> lim : limit) {\r
+ if (lim.isDefault) {\r
+ defaults++;\r
+ }\r
+ }\r
+ if (defaults == 0) {\r
+ throw new ValidationException("Default limit is not set!");\r
+ }\r
+ if (defaults > 1) {\r
+ throw new ValidationException(\r
+ "Default limit is set more than once!");\r
+ }\r
+ if (presets != null) {\r
+ for (Limit<T> lim : limit) {\r
+ lim.validate();\r
+ String presetName = lim.getPreset();\r
+ // skip "special" preset\r
+ if (presetName != null\r
+ && !presetName\r
+ .equals(PresetManager.LOCAL_ENGINE_LIMIT_PRESET)) {\r
+ Preset<T> preset = presets.getPresetByName(presetName);\r
+ if (preset == null) {\r
+ throw new ValidationException("Preset " + presetName\r
+ + " is not found!");\r
+ }\r
+ }\r
+ }\r
}\r
- }\r
}\r
- }\r
\r
}\r