// Path: src/main/java/danta/aem/Constants.java
// public static final String SLING_HTTP_REQUEST = PRIVATE_AN_PREFIX + "sling_http_request";


import com.github.jknack.handlebars.Context;
import com.github.jknack.handlebars.Options;
import org.apache.felix.scr.annotations.Component;
import org.apache.sling.api.SlingHttpServletRequest;
import java.io.IOException;
import java.util.Map;
import static danta.Constants.TEMPLATE_CONTENT_MODEL_ATTR_NAME;
import static danta.aem.Constants.SLING_HTTP_REQUEST;
/**
 * Danta AEM Bundle
 *
 * Copyright (C) 2017 Tikal Technologies, Inc. All rights reserved.
 *
 * Licensed under GNU Affero General Public License, Version v3.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.gnu.org/licenses/agpl-3.0.txt
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied;
 * without even the implied warranty of MERCHANTABILITY.
 * See the License for more details.
 */

package danta.aem.templating;




/**
 * The abstraction for AEM Helper function
 *
 * @author      joshuaoransky
 * @version     1.0.0
 * @since       2013-11-06
 */
@Component (componentAbstract = true)
public abstract class AbstractAEMHelperFunction<T>
        implements HelperFunction<T> {

    private static final ThreadLocal<Options> threadLocal = new ThreadLocal<>();
    private final String name;

    protected AbstractAEMHelperFunction(String name) {
        this.name = name;
    }

    @Override
    public final String name() {
// Path: src/main/java/danta/aem/Constants.java
// public static final String SLING_HTTP_REQUEST = PRIVATE_AN_PREFIX + "sling_http_request";


// Path: src/main/java/danta/aem/templating/AbstractAEMHelperFunction.java
import com.github.jknack.handlebars.Context;
import com.github.jknack.handlebars.Options;
import org.apache.felix.scr.annotations.Component;
import org.apache.sling.api.SlingHttpServletRequest;
import java.io.IOException;
import java.util.Map;
import static danta.Constants.TEMPLATE_CONTENT_MODEL_ATTR_NAME;
import static danta.aem.Constants.SLING_HTTP_REQUEST;

/**
 * Danta AEM Bundle
 *
 * Copyright (C) 2017 Tikal Technologies, Inc. All rights reserved.
 *
 * Licensed under GNU Affero General Public License, Version v3.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.gnu.org/licenses/agpl-3.0.txt
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied;
 * without even the implied warranty of MERCHANTABILITY.
 * See the License for more details.
 */

package danta.aem.templating;




/**
 * The abstraction for AEM Helper function
 *
 * @author      joshuaoransky
 * @version     1.0.0
 * @since       2013-11-06
 */
@Component (componentAbstract = true)
public abstract class AbstractAEMHelperFunction<T>
        implements HelperFunction<T> {

    private static final ThreadLocal<Options> threadLocal = new ThreadLocal<>();
    private final String name;

    protected AbstractAEMHelperFunction(String name) {
        this.name = name;
    }

    @Override
    public final String name() {
        return name;