package oop; import java.util.LinkedList; public class ccConstructor { private final String name; private final ccClass parentClass; private final String access; private final String[] parameterType; private final String[] parameterName; private ccBlock block; private boolean isNoArg; // The first constructor only makes dummy... constructors... and will not actually be used public ccConstructor(String mName, ccClass mClass){ name = mName; parentClass = mClass; access = ""; parameterType = new String[0]; parameterName = new String[0]; isNoArg = true; } public ccConstructor(String conName, String conAccess, String[] pType, String[] pName, ccClass mClass){ name = conName; parentClass = mClass; access = conAccess; parameterType = pType; parameterName = pName; isNoArg = parameterName.length==0; } public void setBlock(ccBlock blk){ block = blk; } public ccBlock getBlock(){ return block; } public String getName(){ return name; } public boolean hasNoArgs(){ return isNoArg; } public String publishDeclaration(){ String decl = ""; decl = parentClass.get_Name() + "::__" + name + "("; for (int i = 0; i < parameterType.length; i++){ if(i != 0) decl += ", "; decl += parameterType[i] + " " + parameterName[i]; } decl += ") : __vptr(&__vtable)"; return decl; } public LinkedList<String> publishBlock(){ return block.publish(); } public String toString(){ String s = "" + access + " method Name:\"" + name + "\" Parameters:("; for (int i = 0; i < parameterType.length; i++){ if(i != 0) s += ", "; s += parameterType[i] + " " + parameterName[i]; } s += ")"; return s; } }