OSDN Git Service

Merge commit '2234b50cfbe7c86237086a3bf4e62397814a390e'
[jindolf/JinParser.git] / src / main / java / jp / sourceforge / jindolf / parser / SeqRange.java
index 43cf6b1..b2afd00 100644 (file)
-/*\r
- * range of string\r
- *\r
- * Copyright(c) 2009 olyutorskii\r
- * $Id: SeqRange.java 894 2009-11-04 07:26:59Z olyutorskii $\r
- */\r
-\r
-package jp.sourceforge.jindolf.parser;\r
-\r
-import java.util.regex.MatchResult;\r
-\r
-/**\r
- * 文字列の範囲を表す。\r
- * 範囲は開始位置と終了位置で表される。\r
- * 開始位置と終了位置が同じ場合、長さ0の範囲とみなされる。\r
- * 開始位置0は文字列の左端を表す。\r
- * 開始位置が負の場合、もしくは開始位置より終了位置が小さい場合、\r
- * このオブジェクトは無効とみなされる。\r
- */\r
-public class SeqRange{\r
-\r
-    private int startPos;\r
-    private int endPos;\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     * 開始位置、終了位置ともに無効状態となる。\r
-     */\r
-    public SeqRange(){\r
-        this(-1, -1);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     * @param startPos 開始位置\r
-     * @param endPos 終了位置\r
-     */\r
-    public SeqRange(int startPos, int endPos){\r
-        super();\r
-        this.startPos = startPos;\r
-        this.endPos   = endPos;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 開始位置を設定する。\r
-     * @param startPos 開始位置\r
-     */\r
-    public void setStartPos(int startPos){\r
-        this.startPos = startPos;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 終了位置を設定する。\r
-     * @param endPos 終了位置\r
-     */\r
-    public void setEndPos(int endPos){\r
-        this.endPos = endPos;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 開始位置と終了位置を設定する。\r
-     * @param startPosition 開始位置\r
-     * @param endPosition 終了位置\r
-     */\r
-    public void setRange(int startPosition, int endPosition){\r
-        this.startPos = startPosition;\r
-        this.endPos   = endPosition;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 最後にマッチした前方参照グループの範囲で設定する。\r
-     * @param result 正規表現マッチ結果\r
-     * @param groupId グループ番号\r
-     * @throws IllegalStateException マッチしていない\r
-     * @throws IndexOutOfBoundsException グループ番号が不正\r
-     */\r
-    public void setLastMatchedGroupRange(MatchResult result, int groupId)\r
-            throws IllegalStateException,\r
-                   IndexOutOfBoundsException {\r
-        this.startPos = result.start(groupId);\r
-        this.endPos   = result.end(groupId);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 最後にマッチした範囲全体で設定する。\r
-     * @param result 正規表現マッチ結果\r
-     * @throws IllegalStateException マッチしていない\r
-     */\r
-    public void setLastMatchedRange(MatchResult result)\r
-            throws IllegalStateException {\r
-        this.startPos = result.start();\r
-        this.endPos   = result.end();\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 開始位置を取得する。\r
-     * @return 開始位置\r
-     */\r
-    public int getStartPos(){\r
-        return this.startPos;\r
-    }\r
-\r
-    /**\r
-     * 終了位置を取得する。\r
-     * @return 終了位置\r
-     */\r
-    public int getEndPos(){\r
-        return this.endPos;\r
-    }\r
-\r
-    /**\r
-     * 範囲の長さを得る。\r
-     * 内容が無効な場合、負の値もありえる。\r
-     * @return 長さ\r
-     */\r
-    public int length(){\r
-        int length = this.endPos - this.startPos;\r
-        return length;\r
-    }\r
-\r
-    /**\r
-     * 現在の範囲で与えられた文字列を切り出す。\r
-     * @param seq 切り出し元文字列\r
-     * @return 切り出された文字列\r
-     * @throws IndexOutOfBoundsException 範囲が無効\r
-     */\r
-    public CharSequence sliceSequence(CharSequence seq)\r
-            throws IndexOutOfBoundsException{\r
-        CharSequence result = seq.subSequence(this.startPos, this.endPos);\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * 範囲指定を無効にする。\r
-     */\r
-    public void setInvalid(){\r
-        this.startPos = -1;\r
-        this.endPos   = -1;\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 範囲指定が有効か判定する。\r
-     * @return 有効であればtrue\r
-     */\r
-    public boolean isValid(){\r
-        if     (this.startPos < 0)           return false;\r
-        else if(this.startPos > this.endPos) return false;\r
-        return true;\r
-    }\r
-\r
-}\r
+/*
+ * range of string
+ *
+ * License : The MIT License
+ * Copyright(c) 2009 olyutorskii
+ */
+
+package jp.sourceforge.jindolf.parser;
+
+import java.util.regex.MatchResult;
+
+/**
+ * 文字列の範囲を表す。
+ * 範囲は開始位置と終了位置で表される。
+ * 開始位置と終了位置が同じ場合、長さ0の範囲とみなされる。
+ * 開始位置0は文字列の左端を表す。
+ * 開始位置が負の場合、もしくは開始位置より終了位置が小さい場合、
+ * このオブジェクトは無効とみなされる。
+ */
+public class SeqRange{
+
+    private int startPos;
+    private int endPos;
+
+    /**
+     * コンストラクタ。
+     * 開始位置、終了位置ともに無効状態となる。
+     */
+    public SeqRange(){
+        this(-1, -1);
+        return;
+    }
+
+    /**
+     * コンストラクタ。
+     * @param startPos 開始位置
+     * @param endPos 終了位置
+     */
+    public SeqRange(int startPos, int endPos){
+        super();
+        this.startPos = startPos;
+        this.endPos   = endPos;
+        return;
+    }
+
+    /**
+     * 開始位置を設定する。
+     * @param startPos 開始位置
+     */
+    public void setStartPos(int startPos){
+        this.startPos = startPos;
+        return;
+    }
+
+    /**
+     * 終了位置を設定する。
+     * @param endPos 終了位置
+     */
+    public void setEndPos(int endPos){
+        this.endPos = endPos;
+        return;
+    }
+
+    /**
+     * 開始位置と終了位置を設定する。
+     * @param startPosition 開始位置
+     * @param endPosition 終了位置
+     */
+    public void setRange(int startPosition, int endPosition){
+        this.startPos = startPosition;
+        this.endPos   = endPosition;
+        return;
+    }
+
+    /**
+     * 最後にマッチした前方参照グループの範囲で設定する。
+     * @param result 正規表現マッチ結果
+     * @param groupId グループ番号
+     * @throws IllegalStateException マッチしていない
+     * @throws IndexOutOfBoundsException グループ番号が不正
+     */
+    public void setLastMatchedGroupRange(MatchResult result, int groupId)
+            throws IllegalStateException,
+                   IndexOutOfBoundsException {
+        this.startPos = result.start(groupId);
+        this.endPos   = result.end(groupId);
+        return;
+    }
+
+    /**
+     * 最後にマッチした範囲全体で設定する。
+     * @param result 正規表現マッチ結果
+     * @throws IllegalStateException マッチしていない
+     */
+    public void setLastMatchedRange(MatchResult result)
+            throws IllegalStateException {
+        this.startPos = result.start();
+        this.endPos   = result.end();
+        return;
+    }
+
+    /**
+     * 開始位置を取得する。
+     * @return 開始位置
+     */
+    public int getStartPos(){
+        return this.startPos;
+    }
+
+    /**
+     * 終了位置を取得する。
+     * @return 終了位置
+     */
+    public int getEndPos(){
+        return this.endPos;
+    }
+
+    /**
+     * 範囲の長さを得る。
+     * 内容が無効な場合、負の値もありえる。
+     * @return 長さ
+     */
+    public int length(){
+        int length = this.endPos - this.startPos;
+        return length;
+    }
+
+    /**
+     * 現在の範囲で与えられた文字列を切り出す。
+     * @param seq 切り出し元文字列
+     * @return 切り出された文字列
+     * @throws IndexOutOfBoundsException 範囲が無効
+     */
+    public CharSequence sliceSequence(CharSequence seq)
+            throws IndexOutOfBoundsException{
+        CharSequence result = seq.subSequence(this.startPos, this.endPos);
+        return result;
+    }
+
+    /**
+     * 範囲指定を無効にする。
+     */
+    public void setInvalid(){
+        this.startPos = -1;
+        this.endPos   = -1;
+        return;
+    }
+
+    /**
+     * 範囲指定が有効か判定する。
+     * @return 有効であればtrue
+     */
+    public boolean isValid(){
+        if     (this.startPos < 0)           return false;
+        else if(this.startPos > this.endPos) return false;
+        return true;
+    }
+
+}