com.liferay.portal.kernel.template.TemplateVariableGroup.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portal.kernel.template.TemplateVariableGroup.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.portal.kernel.template;

import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.TextFormatter;

import java.util.Collection;
import java.util.LinkedHashSet;

/**
 * @author Jorge Ferrer
 */
public class TemplateVariableGroup {

    public TemplateVariableGroup(String label) {
        this(label, null);
    }

    public TemplateVariableGroup(String label, String[] restrictedVariables) {
        _label = label;
        _restrictedVariables = restrictedVariables;
    }

    public TemplateVariableDefinition addCollectionVariable(String collectionLabel, Class<?> collectionClazz,
            String collectionName, String itemLabel, Class<?> itemClazz, String itemName, String itemAccessor) {

        if (isRestrictedVariable(collectionName)) {
            return null;
        }

        TemplateVariableDefinition itemTemplateVariableDefinition = new TemplateVariableDefinition(itemLabel,
                itemClazz, itemName, itemAccessor);

        TemplateVariableDefinition collectionTemplateVariableDefinition = new TemplateVariableDefinition(
                collectionLabel, collectionClazz, collectionName, itemTemplateVariableDefinition);

        _templateVariableDefinitions.add(collectionTemplateVariableDefinition);

        return collectionTemplateVariableDefinition;
    }

    public TemplateVariableDefinition addFieldVariable(String label, Class<?> clazz, String variableName,
            String help, String dataType, boolean repeatable,
            TemplateVariableCodeHandler templateVariableCodeHandler) {

        if (isRestrictedVariable(variableName)) {
            return null;
        }

        TemplateVariableDefinition templateVariableDefinition = new TemplateVariableDefinition(label, clazz,
                dataType, variableName, null, help, repeatable, templateVariableCodeHandler);

        _templateVariableDefinitions.add(templateVariableDefinition);

        return templateVariableDefinition;
    }

    public void addServiceLocatorVariables(Class<?>... serviceClasses) {
        if (isRestrictedVariable("serviceLocator")) {
            return;
        }

        for (Class<?> serviceClass : serviceClasses) {
            String label = TextFormatter.format(serviceClass.getSimpleName(), TextFormatter.I);

            label = TextFormatter.format(label, TextFormatter.K);

            TemplateVariableDefinition templateVariableDefinition = new TemplateVariableDefinition(label,
                    serviceClass, "service-locator", serviceClass.getCanonicalName(), null, label + "-help", false,
                    null);

            _templateVariableDefinitions.add(templateVariableDefinition);
        }
    }

    public TemplateVariableDefinition addVariable(String label, Class<?> clazz, String name) {

        return addVariable(label, clazz, name, null);
    }

    public TemplateVariableDefinition addVariable(String label, Class<?> clazz, String name, String accessor) {

        if (isRestrictedVariable(name)) {
            return null;
        }

        TemplateVariableDefinition templateVariableDefinition = new TemplateVariableDefinition(label, clazz, name,
                accessor);

        _templateVariableDefinitions.add(templateVariableDefinition);

        return templateVariableDefinition;
    }

    public void empty() {
        _templateVariableDefinitions.clear();
    }

    public String getLabel() {
        return _label;
    }

    public Collection<TemplateVariableDefinition> getTemplateVariableDefinitions() {

        return _templateVariableDefinitions;
    }

    public boolean isAutocompleteEnabled() {
        return _autocompleteEnabled;
    }

    public boolean isEmpty() {
        return _templateVariableDefinitions.isEmpty();
    }

    public void setAutocompleteEnabled(boolean autocompleteEnabled) {
        _autocompleteEnabled = autocompleteEnabled;
    }

    public void setLabel(String label) {
        _label = label;
    }

    protected boolean isRestrictedVariable(String variableName) {
        return ArrayUtil.contains(_restrictedVariables, variableName);
    }

    private boolean _autocompleteEnabled = true;
    private String _label;
    private final String[] _restrictedVariables;
    private final Collection<TemplateVariableDefinition> _templateVariableDefinitions = new LinkedHashSet<>();

}