OSDN Git Service

Merge release/v3.122.2
[mikutoga/TogaGem.git] / src / main / java / jp / sfjp / mikutoga / bin / parser / ParseStage.java
1 /*
2  * parse-processing stage
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package jp.sfjp.mikutoga.bin.parser;
9
10 import java.util.concurrent.atomic.AtomicInteger;
11
12 /**
13  * パース処理の進行ステージ種別を表す。
14  *
15  * <p>ループ構造の識別に用いられる。
16  *
17  * <p>enum型と異なり、実行時での要素の追加が可能。
18  */
19 public class ParseStage {
20
21     private static final AtomicInteger LAST_NO = new AtomicInteger(0);
22
23
24     /** 全インスタンスに割り振られたユニークな番号。変更不可。 */
25     private final int no;
26
27
28     /**
29      * コンストラクタ。
30      */
31     public ParseStage(){
32         super();
33         this.no = LAST_NO.getAndIncrement();
34         assert this.no >= 0;
35         return;
36     }
37
38
39     /**
40      * 各インスタンスに割り当てられたユニークな通し番号を返す。
41      * @return 通し番号
42      */
43     public int getNo(){
44         return this.no;
45     }
46
47     /**
48      * {@inheritDoc}
49      * @return {@inheritDoc}
50      */
51     @Override
52     public String toString(){
53         String result = "parse stage#:" + this.no;
54         return result;
55     }
56
57 }