package com.netflix.karyon.health;

public abstract class AbstractHealthIndicator implements HealthIndicator {
    private final String name;

    public AbstractHealthIndicator(String name) {
        this.name = name;
    }
    
    public AbstractHealthIndicator() {
        this.name = getClass().getSimpleName();
    }
    
    @Override
    public String getName() {
        return name;
    }
}

@@ -29,16 +29,69 @@
 ealth;%0A%0A
+import java.util.Collections;%0Aimport java.util.Map;%0A%0A
 public a
@@ -197,258 +197,2186 @@
     
-public AbstractHealthIndicator(String name) %7B%0A        this.name = name;%0A    %7D%0A    %0A    public AbstractHealthIndicator() %7B%0A        this.name = getClass().getSimpleName();%0A    %7D%0A    %0A    @Override%0A    public String getName() %7B%0A        return name;%0A    %7D
+/**%0A     *  Creates an AbstractHealthIndicator with the specified name%0A     * %0A     * @paran name name     Name of this Health Indicator%0A     * %0A     */%0A    public AbstractHealthIndicator(String name) %7B%0A        this.name = name;%0A    %7D%0A    %0A    /** %0A     * Creates an AbstractHealthIndicator with a default name%0A     * %0A     */%0A    public AbstractHealthIndicator() %7B%0A        this.name = getClass().getSimpleName();%0A    %7D%0A    %0A    @Override%0A    public String getName() %7B%0A        return name;%0A    %7D%0A    %0A    /**%0A     * %0A     * Create a healthy status%0A     * %0A     * @return a healthy status%0A     */%0A%0A    protected final HealthIndicatorStatus healthy() %7B%0A        return HealthIndicatorStatuses.create(getName(), true, Collections.%3CString, Object%3E emptyMap(), null);%0A    %7D%0A%0A    /**%0A     * %0A     * Create a healthy status%0A     *%0A     * @param attr  Map of the attributes describing status%0A     * @return a healthy status%0A     */%0A    protected final HealthIndicatorStatus healthy(Map%3CString, Object%3E attr) %7B%0A        return HealthIndicatorStatuses.create(getName(), true, attr, null);%0A    %7D%0A%0A    /**%0A     * %0A     * Create an unhealthy status%0A     * %0A     * @return a unhealthy status%0A     */%0A    protected final HealthIndicatorStatus unhealthy() %7B%0A        return HealthIndicatorStatuses.create(getName(), false, Collections.%3CString, Object%3E emptyMap(), null);%0A    %7D%0A%0A    /**%0A     * %0A     * Create an unhealthy status%0A     * %0A     * @return a unhealthy status%0A     */%0A    protected final HealthIndicatorStatus unhealthy(Map%3CString, Object%3E attr) %7B%0A        return HealthIndicatorStatuses.create(getName(), false, attr, null);%0A    %7D%0A%0A    /**%0A     * %0A     * Create an unhealthy status%0A     * %0A     * @return a unhealthy status%0A     */%0A    protected final HealthIndicatorStatus unhealthy(Throwable t) %7B%0A        return HealthIndicatorStatuses.create(getName(), false, Collections.%3CString, Object%3E emptyMap(), t);%0A    %7D%0A%0A    /**%0A     * %0A     * Create an unhealthy status%0A     * %0A     * @return a unhealthy status%0A     */%0A    protected final HealthIndicatorStatus unhealthy(Map%3CString, Object%3E attr, Throwable t) %7B%0A        return HealthIndicatorStatuses.create(getName(), false, attr, t);%0A    %7D%0A
 %0A%7D%0A

Add helper methods for returning indicator status