class ChangeStateTokenRuleDef extends TokenRuleDef
{
	//
	// Construction
	//

	public ChangeStateTokenRuleDef( String stateName, String pattern, int flags, List<String> tokenTypeNames, List<String> nextStateNames )
	{
		super( stateName, pattern, flags, tokenTypeNames );
		this.nextStateNames = nextStateNames;
	}

	public ChangeStateTokenRuleDef( String stateName, String pattern, int flags, String[] tokenTypeNames, String... nextStateNames )
	{
		super( stateName, pattern, flags, tokenTypeNames );
		ArrayList<String> list = new ArrayList<String>( nextStateNames.length );
		for( String nextStateName : nextStateNames )
			list.add( nextStateName );
		this.nextStateNames = list;
	}

	//
	// Def
	//

	@Override
	public boolean resolve( Grammar grammar ) throws ResolutionException
	{<FILL_FUNCTION_BODY>}

	//
	// TokenRuleDef
	//

	@Override
	protected TokenRule createTokenRule( Pattern pattern, List<TokenType> tokenTypes, Grammar grammar ) throws ResolutionException
	{
		return new TokenRule( pattern, tokenTypes, grammar.resolveStates( nextStateNames ) );
	}

	// //////////////////////////////////////////////////////////////////////////
	// Private

	private final List<String> nextStateNames;
}

		if( grammar.resolveStates( nextStateNames ) != null )
			return super.resolve( grammar );
		else
		{
			if( placeHolder == null )
			{
				placeHolder = new Rule();
				State state = grammar.getState( stateName );
				state.addRule( placeHolder );
			}
			return false;
		}
	
<methods>public void <init>(java.lang.String, java.lang.String, int, List<java.lang.String>) ,public transient void <init>(java.lang.String, java.lang.String, int, java.lang.String[]) ,public java.lang.String getPattern() ,public List<java.lang.String> getTokenTypeNames() ,public boolean resolve(org.sikuli.support.ide.syntaxhighlight.grammar.Grammar) throws org.sikuli.support.ide.syntaxhighlight.ResolutionException,public java.lang.String toString() <variables>private final non-sealed int flags,private final non-sealed java.lang.String pattern,private final non-sealed List<java.lang.String> tokenTypeNames