// Path: src/main/java/com/pablissimo/sonar/model/TsLintRule.java
// public class TsLintRule {
//     public final String key;
//     public final String name;
//     public final String severity;
//     public final String htmlDescription;
// 
//     public final boolean hasDebtRemediation;
//     public final DebtRemediationFunction.Type debtRemediationFunction;
//     public final String debtRemediationScalar;
//     public final String debtRemediationOffset;
//     public final String debtType;
// 
//     public TsLintRule(
//         String key,
//         String severity,
//         String name,
//         String htmlDescription
//     ) {
//         this.key = key;
//         this.severity = severity;
//         this.name = name;
//         this.htmlDescription = htmlDescription;
//         
//         this.hasDebtRemediation = false;
//         this.debtRemediationFunction = DebtRemediationFunction.Type.CONSTANT_ISSUE;
//         this.debtRemediationScalar = "0min";
//         this.debtRemediationOffset = "0min";
//         this.debtType = null;
//     }
// 
//     public TsLintRule(
//         String key,
//         String severity,
//         String name,
//         String htmlDescription,
//         DebtRemediationFunction.Type debtRemediationFunction,
//         String debtRemediationScalar,
//         String debtRemediationOffset,
//         String debtType
//     ) {
//         this.key = key;
//         this.severity = severity;
//         this.name = name;
//         this.htmlDescription = htmlDescription;
// 
//         this.hasDebtRemediation = true;
//         this.debtRemediationFunction = debtRemediationFunction;
//         this.debtRemediationScalar = debtRemediationScalar;
//         this.debtRemediationOffset = debtRemediationOffset;
//         this.debtType = debtType;
//     }
// }


import com.pablissimo.sonar.model.TsLintRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.config.Settings;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.debt.DebtRemediationFunction;
import org.sonar.api.server.rule.RulesDefinition;
import java.io.*;
import java.nio.charset.Charset;
import java.util.*;
package com.pablissimo.sonar;



public class TsRulesDefinition implements RulesDefinition {
    private static final Logger LOG = LoggerFactory.getLogger(TsRulesDefinition.class);

    public static final String REPOSITORY_NAME = "tslint";

    public static final String DEFAULT_RULE_SEVERITY = Severity.defaultSeverity();
    public static final String DEFAULT_RULE_DESCRIPTION = "No description provided for this TsLint rule";
    public static final String DEFAULT_RULE_DEBT_SCALAR = "0min";
    public static final String DEFAULT_RULE_DEBT_OFFSET = "0min";
    public static final String DEFAULT_RULE_DEBT_TYPE = RuleType.CODE_SMELL.name();

    private static final String CORE_RULES_CONFIG_RESOURCE_PATH = "/tslint/tslint-rules.properties";

    /** The SonarQube rule that will contain all unknown TsLint issues. */
// Path: src/main/java/com/pablissimo/sonar/model/TsLintRule.java
// public class TsLintRule {
//     public final String key;
//     public final String name;
//     public final String severity;
//     public final String htmlDescription;
// 
//     public final boolean hasDebtRemediation;
//     public final DebtRemediationFunction.Type debtRemediationFunction;
//     public final String debtRemediationScalar;
//     public final String debtRemediationOffset;
//     public final String debtType;
// 
//     public TsLintRule(
//         String key,
//         String severity,
//         String name,
//         String htmlDescription
//     ) {
//         this.key = key;
//         this.severity = severity;
//         this.name = name;
//         this.htmlDescription = htmlDescription;
//         
//         this.hasDebtRemediation = false;
//         this.debtRemediationFunction = DebtRemediationFunction.Type.CONSTANT_ISSUE;
//         this.debtRemediationScalar = "0min";
//         this.debtRemediationOffset = "0min";
//         this.debtType = null;
//     }
// 
//     public TsLintRule(
//         String key,
//         String severity,
//         String name,
//         String htmlDescription,
//         DebtRemediationFunction.Type debtRemediationFunction,
//         String debtRemediationScalar,
//         String debtRemediationOffset,
//         String debtType
//     ) {
//         this.key = key;
//         this.severity = severity;
//         this.name = name;
//         this.htmlDescription = htmlDescription;
// 
//         this.hasDebtRemediation = true;
//         this.debtRemediationFunction = debtRemediationFunction;
//         this.debtRemediationScalar = debtRemediationScalar;
//         this.debtRemediationOffset = debtRemediationOffset;
//         this.debtType = debtType;
//     }
// }


// Path: src/main/java/com/pablissimo/sonar/TsRulesDefinition.java
import com.pablissimo.sonar.model.TsLintRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.config.Settings;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.debt.DebtRemediationFunction;
import org.sonar.api.server.rule.RulesDefinition;
import java.io.*;
import java.nio.charset.Charset;
import java.util.*;

package com.pablissimo.sonar;



public class TsRulesDefinition implements RulesDefinition {
    private static final Logger LOG = LoggerFactory.getLogger(TsRulesDefinition.class);

    public static final String REPOSITORY_NAME = "tslint";

    public static final String DEFAULT_RULE_SEVERITY = Severity.defaultSeverity();
    public static final String DEFAULT_RULE_DESCRIPTION = "No description provided for this TsLint rule";
    public static final String DEFAULT_RULE_DEBT_SCALAR = "0min";
    public static final String DEFAULT_RULE_DEBT_OFFSET = "0min";
    public static final String DEFAULT_RULE_DEBT_TYPE = RuleType.CODE_SMELL.name();

    private static final String CORE_RULES_CONFIG_RESOURCE_PATH = "/tslint/tslint-rules.properties";

    /** The SonarQube rule that will contain all unknown TsLint issues. */
    public static final TsLintRule TSLINT_UNKNOWN_RULE = new TsLintRule(