||  (seen == ASTORE)) state = SEEN_NOTHING; else
||  (seen == ASTORE)) { reset(); break; } else
	public void sawOpcode(int seen) {		switch (state)		{		case SEEN_NOTHING:			if ((seen == NEW) && "java/lang/StringBuffer".equals(getClassConstantOperand()))				state = SEEN_NEW;			break;				case SEEN_NEW:			if (seen == DUP)				state = SEEN_DUP;			else				state = SEEN_NOTHING;			break;				case SEEN_DUP:			if ((seen == INVOKESPECIAL) 			&&  ("<init>".equals(getNameConstantOperand()))			&&  ("()V".equals(getSigConstantOperand())))				state = SEEN_INVOKESPECIAL;			else				state = SEEN_NOTHING;			break;				case SEEN_INVOKESPECIAL:			if ((seen == ASTORE_0)			||  (seen == ASTORE_1)			||  (seen == ASTORE_2)			||  (seen == ASTORE_3)			||  (seen == ASTORE))				state = SEEN_NOTHING;			else				state = POSSIBLE_CASE;			break;						case POSSIBLE_CASE:			if ((seen == GOTO) && (appendPC >= 0)) {				if (getBranchTarget() < appendPC) {					bugReporter.reportBug(new BugInstance("SBSC_USE_STRINGBUFFER_CONCATENATION", NORMAL_PRIORITY)						.addClassAndMethod(this)						.addSourceLine(this, appendPC));				}				state = SEEN_NOTHING;							}			else if ((seen == INVOKEVIRTUAL) 			&&       "append".equals(getNameConstantOperand())			&&       "(Ljava/lang/String;)Ljava/lang/StringBuffer;".equals(getSigConstantOperand()))				appendPC = getPC();			else if ((seen == NEW) && "java/lang/StringBuffer".equals(getClassConstantOperand()))				state = SEEN_NEW;							break;							default:			appendPC = -1;			state = SEEN_NOTHING;			break;		}	}