package temp;

import java.io.PrintStream;

public class Sum extends Block{
	int ports;
	String out_data_type;
	String sign;
	//int sample_time;

	public Sum() {
		sample_time=-1;		
		sign=null;
	}
	
	public void translate(PrintStream ps,Assist assist)
	{
		if(this.sign==null)
		{
			if(this.ports==2)
				this.sign="++";
			else if(this.ports==3)
				this.sign="+++";
		}
		if(this.ports==2)
		{
			if(this.sign.contains("++"))
			{
				ps.println("component simulinkLib.FloatSumSum "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("--"))
			{
				ps.println("component simulinkLib.FloatMinMin "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("+-")|this.sign.contains("|+-"))
			{
				ps.println("component simulinkLib.FloatSumMin "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("-+")|this.sign.contains("|-+"))
			{
				ps.println("component simulinkLib.FloatMinSum "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
		}
		if(this.ports==3)
		{
			if(this.sign.contains("+++"))
			{
				ps.println("component simulinkLib.FloatSSS "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("++-"))
			{
				ps.println("component simulinkLib.FloatSSM "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("+--"))
			{
				ps.println("component simulinkLib.FloatSMM "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("---"))
			{
				ps.println("component simulinkLib.FloatMMM "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("--+"))
			{
				ps.println("component simulinkLib.FloatMMS "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("-++"))
			{
				ps.println("component simulinkLib.FloatMSS "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("-+-"))
			{
				ps.println("component simulinkLib.FloatMSM "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
			else if(this.sign.contains("+-+"))
			{
				ps.println("component simulinkLib.FloatSMS "+this.block_name);
				assist.name.add(this.block_name+".act");
			}
		}
	}
}
