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

org.duelengine.duel.codedom.CodeArrayCreateExpression Maven / Gradle / Ivy

package org.duelengine.duel.codedom;

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

public class CodeArrayCreateExpression extends CodeExpression {

	private Class type;
	private int size;
	private final List initializers = new ArrayList();

	public CodeArrayCreateExpression() {
		setType(null);
	}

	public CodeArrayCreateExpression(Class type, int size) {
		setType(type);
		this.size = size;
	}

	public CodeArrayCreateExpression(Class type, CodeExpression... initializerExpressions) {
		setType(type);
		if (initializerExpressions != null) {
			initializers.addAll(Arrays.asList(initializerExpressions));
		}
	}

	public Class getType() {
		return type;
	}

	public void setType(Class value) {
		type = (value != null) ? value : Object.class;
	}

	public int getSize() {
		return size;
	}

	public void setSize(int value) {
		size = value;
	}

	public List getInitializers() {
		return initializers;
	}

	@Override
	public Class getResultType() {
		return List.class;
	}

	@Override
	public void visit(CodeVisitor visitor) {
		if (visitor.visit(this)) {
			for (CodeExpression expression : initializers) {
				if (expression != null) {
					expression.visit(visitor);
				}
			}
		}
	}

	@Override
	public boolean equals(Object arg) {
		if (!(arg instanceof CodeArrayCreateExpression)) {
			// includes null
			return false;
		}

		CodeArrayCreateExpression that = (CodeArrayCreateExpression)arg;

		if (size != that.size) {
			return false;
		}
		
		if (type == null ? that.type != null : !type.equals(that.type)) {
			return false;
		}

		int length = initializers.size();
		if (length != that.initializers.size()) {
			return false;
		}

		for (int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy