+++ /dev/null
-package jp.sourceforge.stigmata.birthmarks.kgram;\r
-\r
-/*\r
- * $Id$\r
- */\r
-\r
-import java.util.LinkedHashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-/**\r
- * @author Haruaki Tamada\r
- * @version $Revision$\r
- */\r
-public class KGramBuilder{\r
- private static final KGramBuilder builder = new KGramBuilder();\r
-\r
- /**\r
- * private constructor for singleton pattern.\r
- */\r
- private KGramBuilder(){\r
- }\r
-\r
- public static KGramBuilder getInstance(){\r
- return builder;\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public <T> KGram<T>[] buildKGram(T[] values, int kvalue){\r
- Set<KGram<T>> kgrams = new LinkedHashSet<KGram<T>>();\r
-\r
- if(values.length >= kvalue){\r
- int max = values.length - (kvalue - 1);\r
- for(int i = 0; i < max; i++){\r
- KGram<T> kgram = new KGram<T>(kvalue);\r
- for(int j = 0; j < kvalue; j++){\r
- kgram.set(j, values[i + j]);\r
- }\r
- kgrams.add(kgram);\r
- }\r
- }\r
- return kgrams.toArray(new KGram[kgrams.size()]);\r
- }\r
-\r
- @SuppressWarnings("unchecked")\r
- public <T> KGram<T>[] buildKGram(List<T> values, int kvalue){\r
- Set<KGram<T>> kgrams = new LinkedHashSet<KGram<T>>();\r
-\r
- if(values.size() >= kvalue){\r
- int max = values.size() - (kvalue - 1);\r
- for(int i = 0; i < max; i++){\r
- KGram<T> kgram = new KGram<T>(kvalue);\r
- for(int j = 0; j < kvalue; j++){\r
- kgram.set(j, values.get(i + j));\r
- }\r
- kgrams.add(kgram);\r
- }\r
- }\r
- return kgrams.toArray(new KGram[kgrams.size()]);\r
- }\r
-}
\ No newline at end of file