code: @Nullable
      private static TemplateSignature parseSignatureAttribute(Signature signatureAttribute) {
  
          Matcher m = TEMPLATED_SIGNATURE.matcher(signatureAttribute.getSignature());
          if (!m.matches()) {
              return null;
          }
  
          TemplateSignature ts = new TemplateSignature();
          ts.signature = m.group(2);
  
          m = TEMPLATE.matcher(m.group(1));
          List<TemplateItem> templates = new ArrayList<>(4);
          while (m.find()) {
              templates.add(new TemplateItem(m.group(1), m.group(2)));
          }
          ts.templateParameters = templates.toArray(new TemplateItem[0]);
  
          return ts;
      }
docs: builds a template signature object based on the signature attribute of the method
  
  @param signatureAttribute
  the signature attribute
  @return a template signature if there are templates defined, otherwise null