package net.sourceforge.phpdt.internal.compiler.parser;

import java.util.ArrayList;

public class UninitializedVariableHandler {

	private class Function {
		private int count;

		private String name;

		public Function(String name, int count) {
			this.name = name;
			this.count = count;
		}
	}

	private String functionName = null;

	private int argumentCount = 0;

	private ArrayList functions = new ArrayList();

	public UninitializedVariableHandler() {
		add("ereg", 3);
		add("eregi", 3);
		add("fsockopen", 3);
		add("preg_match", 3);
		add("preg_match_all", 3);
		add("preg_replace", 5);
		add("preg_replace_callback", 5);
	}

	private void add(String name, int countFrom) {
		functions.add(new Function(name, countFrom));
	}

	protected boolean reportError() {
		if (functionName != null) {
			for (int i = 0; i < functions.size(); i++) {
				Function function = (Function) functions.get(i);
				if (functionName.equalsIgnoreCase(function.name)
						&& argumentCount >= function.count) {
					return false;
				}
			}
		}
		return true;
	}

	public void setFunctionName(String functionName) {
		this.functionName = functionName;
	}

	public void incrementArgumentCount() {
		argumentCount++;
	}
}