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

org.hisrc.jscm.codemodel.expression.impl.ArrayLiteralImpl Maven / Gradle / Ivy

The newest version!
package org.hisrc.jscm.codemodel.expression.impl;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.hisrc.jscm.codemodel.JSCodeModel;
import org.hisrc.jscm.codemodel.expression.JSArrayLiteral;
import org.hisrc.jscm.codemodel.expression.JSAssignmentExpression;
import org.hisrc.jscm.codemodel.expression.JSExpressionVisitor;
import org.hisrc.jscm.codemodel.lang.Validate;

public class ArrayLiteralImpl extends PrimaryExpressionImpl implements
		JSArrayLiteral {

	private final List elements = new ArrayList();
	private final List unmodifiableElements = Collections
			.unmodifiableList(elements);

	public ArrayLiteralImpl(JSCodeModel codeModel) {
		super(codeModel);
	}

	@Override
	public List getElements() {
		return unmodifiableElements;
	}

	@Override
	public JSArrayLiteral append(JSAssignmentExpression... elements) {
		Validate.noNullElements(elements);
		this.elements.addAll(Arrays.asList(elements));
		return this;
	}

	@Override
	public  V acceptExpressionVisitor(
			JSExpressionVisitor visitor) throws E {
		return visitor.visitArrayLiteral(this);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy