private static LicenseHeaderInfo readLicenseHeader(ConfigTree licenseNode) {
    if (licenseNode == null) {
      return null;
    }

    String name = licenseNode.getChildTree(CONFIG_KEY_NAME).getValue(null);
    if (name == null) {
      return null;
    }

    Path licenseTemplate =
        CommonProperties.tryReadFilePath(licenseNode.getChildTree(CONFIG_KEY_FILE).getValue(null));

    Map<String, String> properties = new HashMap<>();
    List<ConfigTree> propertyNodes = licenseNode.getChildTrees(CONFIG_KEY_PROPERTY);
    for (ConfigTree propertyNode : propertyNodes) {
      String propertyName = propertyNode.getChildTree(CONFIG_KEY_PROPERTY_NAME).getValue(null);
      String properyValue = propertyNode.getValue(null);

      if (propertyName != null && properyValue != null) {
        properties.put(propertyName.trim(), properyValue.trim());
      }
    }

    return new LicenseHeaderInfo(name.trim(), properties, licenseTemplate);
  }