All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.wickedcharts.highcharts.options.Function Maven / Gradle / Ivy

Go to download

A Java wrapper dor the Highcharts javascript library to include interactive charts in your Java web application.

There is a newer version: 2.0.1
Show newest version
/**
 *   Copyright 2012-2013 Wicked Charts (http://wicked-charts.googlecode.com)
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *   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.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */
package com.googlecode.wickedcharts.highcharts.options;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author Matthias Balke ([email protected])
 * 
 */
public class Function implements Serializable {

	private static final long serialVersionUID = 1L;

	private String function;

	private final List parameters = new ArrayList();

	public Function() {
	}

	public Function(final String functionBody) {
		this.function = functionBody;
	}

	public String getFunction() {
		String result = getSignature();
		result += "{";
		result += getBody();
		result += "}";
		return result;
	}

	public String getBody() {
		String result = "";
		if (this.function != null) {
			result += this.function;
		}
		return result;
	}

	public Function setFunction(final String functionBody) {
		this.function = functionBody;
		return this;
	}

	/**
	 * With this function, you can add parameters to the signature of the
	 * javascript function. All parameters added with this method will be included
	 * as parameters in the rendered function call.
	 * 
	 * @param parameter
	 *          the name of the parameter.
	 */
	protected void addParameter(final String parameter) {
		this.parameters.add(parameter);
	}

	private String getSignature() {
		if (this.parameters.isEmpty()) {
			return "function()";
		} else {
			String signature = "function(";
			boolean first = true;
			for (String param : this.parameters) {
				if (!first) {
					signature += ",";
				}
				signature += param;
				first = false;
			}
			signature += ")";
			return signature;
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy