private static void validateInstrument(final Extension.Instrumentation instrument)
     throws XmlException {
   if (instrument == null) {
     throw new XmlException(
         "In order to provide instrumentation, there must be an instrument tag.\n");
   }
   final List<Extension.Instrumentation.Pointcut> pcs = instrument.getPointcut();
   if (pcs == null || pcs.isEmpty()) {
     throw new XmlException("A point cut tag is required to instrument a method.\n");
   }
 }
 private static String createDefaultMetricPrefix(
     final Extension.Instrumentation instrument, final boolean custom) {
   String metricPrefix = custom ? "Custom" : "Java";
   if (instrument != null) {
     final String prefix = instrument.getMetricPrefix();
     if (prefix != null && prefix.length() != 0) {
       metricPrefix = prefix;
     }
   }
   return metricPrefix;
 }
 public static List<ExtensionClassAndMethodMatcher> convertToPointCutsForValidation(
     final Extension ext) throws XmlException {
   final List<ExtensionClassAndMethodMatcher> pointCutsOut =
       new ArrayList<ExtensionClassAndMethodMatcher>();
   final Extension.Instrumentation inst = ext.getInstrumentation();
   validateExtensionAttributes(ext);
   validateInstrument(inst);
   final List<Extension.Instrumentation.Pointcut> pcs = inst.getPointcut();
   final String defaultMetricPrefix = createDefaultMetricPrefix(inst, true);
   final Map<String, MethodMapper> classesToMethods = new HashMap<String, MethodMapper>();
   for (final Extension.Instrumentation.Pointcut pc : pcs) {
     pointCutsOut.add(
         createPointCut(
             ext,
             pc,
             defaultMetricPrefix,
             ext.getName(),
             classesToMethods,
             true,
             InstrumentationType.LocalCustomXml,
             false));
   }
   return pointCutsOut;
 }