private int getConstructorType(StructuredBlock body) {
		/*
		 * A non static constructor must begin with a call to another
		 * constructor. Either to a constructor of the same class or to the
		 * super class
		 */
		InstructionBlock ib;
		if (body instanceof InstructionBlock)
			ib = (InstructionBlock) body;
		else if (body instanceof SequentialBlock
				&& (body.getSubBlocks()[0] instanceof InstructionBlock))
			ib = (InstructionBlock) body.getSubBlocks()[0];
		else
			return 0;

		Expression superExpr = ib.getInstruction().simplify();
		if (!(superExpr instanceof InvokeOperator)
				|| superExpr.getFreeOperandCount() != 0)
			return 0;
		InvokeOperator superInvoke = (InvokeOperator) superExpr;
		if (!superInvoke.isConstructor() || !superInvoke.isSuperOrThis())
			return 0;
		Expression thisExpr = superInvoke.getSubExpressions()[0];
		if (!isThis(thisExpr, clazzAnalyzer.getClazz()))
			return 0;

		if (superInvoke.isThis())
			return 2;
		else
			return 1;
	}