// 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.sonar.api.profiles.ProfileDefinition;
import org.sonar.api.profiles.RulesProfile;
import org.sonar.api.rules.Rule;
import org.sonar.api.utils.ValidationMessages;
package com.pablissimo.sonar;


public class TypeScriptRuleProfile extends ProfileDefinition {
    public static final String PROFILE_NAME = "tslint";

    @Override
    public RulesProfile createProfile(ValidationMessages validation) {
        RulesProfile profile = RulesProfile.create("TsLint", TypeScriptLanguage.LANGUAGE_KEY);

        TsRulesDefinition rules = new TsRulesDefinition();

        activateRule(profile, TsRulesDefinition.TSLINT_UNKNOWN_RULE.key);

// 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/TypeScriptRuleProfile.java
import com.pablissimo.sonar.model.TsLintRule;
import org.sonar.api.profiles.ProfileDefinition;
import org.sonar.api.profiles.RulesProfile;
import org.sonar.api.rules.Rule;
import org.sonar.api.utils.ValidationMessages;

package com.pablissimo.sonar;


public class TypeScriptRuleProfile extends ProfileDefinition {
    public static final String PROFILE_NAME = "tslint";

    @Override
    public RulesProfile createProfile(ValidationMessages validation) {
        RulesProfile profile = RulesProfile.create("TsLint", TypeScriptLanguage.LANGUAGE_KEY);

        TsRulesDefinition rules = new TsRulesDefinition();

        activateRule(profile, TsRulesDefinition.TSLINT_UNKNOWN_RULE.key);

        for (TsLintRule coreRule : rules.getCoreRules()) {