mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 08:53:20 +00:00
ICU-2253 Changes to generate langauge data as well as script data.
X-SVN-Rev: 11545
This commit is contained in:
parent
7bf253f27f
commit
883a9b9000
8 changed files with 344 additions and 56 deletions
130
icu4j/src/com/ibm/icu/dev/tool/layout/LanguageData.java
Normal file
130
icu4j/src/com/ibm/icu/dev/tool/layout/LanguageData.java
Normal file
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 1998-2003, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*
|
||||
* Created on Apr 4, 2003
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/LanguageData.java,v $ $Date: 2003/04/15 01:23:49 $ $Revision: 1.1 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.layout;
|
||||
|
||||
/**
|
||||
* This class holds the list of languages.
|
||||
*
|
||||
* @author emader
|
||||
*
|
||||
*/
|
||||
public class LanguageData
|
||||
{
|
||||
public static class Record
|
||||
{
|
||||
private String tag;
|
||||
private String name;
|
||||
|
||||
public Record(String tag, String name)
|
||||
{
|
||||
this.tag = tag;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String tag()
|
||||
{
|
||||
return tag;
|
||||
}
|
||||
|
||||
public String name()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This is temporary data until there is some resolution between
|
||||
* the OpenType language system tags and the ISO and RFC standards...
|
||||
*/
|
||||
private Record[] languages =
|
||||
{
|
||||
new Record("", "(Default)"),
|
||||
new Record("ARA", "Arabic"),
|
||||
new Record("ASM", "Assamese"),
|
||||
new Record("BEN", "Bengali"),
|
||||
new Record("FAR", "Farsi"),
|
||||
new Record("GUJ", "Gujarati"),
|
||||
new Record("HIN", "Hindi"),
|
||||
new Record("IWR", "Hebrew"),
|
||||
new Record("JII", "Yiddish"),
|
||||
new Record("JAN", "Japanese"),
|
||||
new Record("KAN", "Kannada"),
|
||||
new Record("KOK", "Konkani"),
|
||||
new Record("KOR", "Korean"),
|
||||
new Record("KSH", "Kashmiri"),
|
||||
new Record("MAL", "Malayalam (Traditional)"),
|
||||
new Record("MAR", "Marathi"),
|
||||
new Record("MLR", "Malayalam (Reformed)"),
|
||||
new Record("MNI", "Manipuri"),
|
||||
new Record("ORI", "Oriya"),
|
||||
new Record("SAN", "Sanscrit"),
|
||||
new Record("SND", "Sindhi"),
|
||||
new Record("SNH", "Sinhalese"),
|
||||
new Record("SYR", "Syriac"),
|
||||
new Record("TAM", "Tamil"),
|
||||
new Record("TEL", "Telugu"),
|
||||
new Record("THA", "Thai"),
|
||||
new Record("URD", "Urdu"),
|
||||
new Record("ZHP", "Chinese (Phonetic)"),
|
||||
new Record("ZHS", "Chinese (Simplified)"),
|
||||
new Record("ZHT", "Chinese (Traditional)")
|
||||
};
|
||||
|
||||
private int minLanguage = 0;
|
||||
private int maxLanguage = languages.length - 1;
|
||||
|
||||
public int getMinLanguage()
|
||||
{
|
||||
return minLanguage;
|
||||
}
|
||||
|
||||
public int getMaxLanguage()
|
||||
{
|
||||
return maxLanguage;
|
||||
}
|
||||
|
||||
public String getLanguageTag(int i)
|
||||
{
|
||||
if (i < minLanguage || i > maxLanguage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return languages[i - minLanguage].tag();
|
||||
}
|
||||
|
||||
public String getLanguageTagLabel(int i)
|
||||
{
|
||||
if (i < minLanguage || i > maxLanguage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return TagUtilities.tagLabel(languages[i - minLanguage].tag());
|
||||
}
|
||||
|
||||
public String makeLanguageTag(int i)
|
||||
{
|
||||
if (i < minLanguage || i > maxLanguage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return TagUtilities.makeTag(languages[i - minLanguage].tag());
|
||||
}
|
||||
|
||||
public String getLanguageName(int i) {
|
||||
if (i < minLanguage || i > maxLanguage) {
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
return languages[i - minLanguage].name();
|
||||
}
|
||||
}
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ModuleWriter.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
@ -18,9 +18,10 @@ import java.io.IOException;
|
|||
|
||||
public class ModuleWriter
|
||||
{
|
||||
public ModuleWriter(ScriptData theScriptData)
|
||||
public ModuleWriter(ScriptData theScriptData, LanguageData theLanguageData)
|
||||
{
|
||||
scriptData = theScriptData;
|
||||
languageData = theLanguageData;
|
||||
output = null;
|
||||
}
|
||||
|
||||
|
@ -59,17 +60,18 @@ public class ModuleWriter
|
|||
}
|
||||
|
||||
protected ScriptData scriptData;
|
||||
protected LanguageData languageData;
|
||||
protected PrintStream output;
|
||||
|
||||
protected static final String moduleHeader =
|
||||
"/*\n" +
|
||||
" * %W% %E%\n" +
|
||||
" *\n" +
|
||||
" * (C) Copyright IBM Corp. 1998 - 2003. All Rights Reserved.\n" +
|
||||
" *\n" +
|
||||
" * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS\n" +
|
||||
" * YOU REALLY KNOW WHAT YOU'RE DOING.\n" +
|
||||
" *\n" +
|
||||
" * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ModuleWriter.java,v $ $Date: 2003/04/15 01:23:49 $ $Revision: 1.2 $\n" +
|
||||
" */\n" +
|
||||
"\n";
|
||||
}
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ScriptData.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
@ -162,6 +162,20 @@ public class ScriptData
|
|||
return "zyyx";
|
||||
}
|
||||
|
||||
public String getScriptTagLabel(int scriptCode)
|
||||
{
|
||||
return getScriptTag(scriptCode);
|
||||
}
|
||||
|
||||
public String makeScriptTag(int scriptCode)
|
||||
{
|
||||
if (scriptCode >= fMinScript && scriptCode <= fMaxScript) {
|
||||
return TagUtilities.makeTag(fScriptTags[scriptCode - fMinScript]);
|
||||
} else {
|
||||
return "0x00000000";
|
||||
}
|
||||
}
|
||||
|
||||
public String getScriptName(int scriptCode)
|
||||
{
|
||||
if (scriptCode >= fMinScript && scriptCode <= fMaxScript) {
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ScriptModuleWriter.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
@ -14,42 +14,72 @@ package com.ibm.icu.dev.tool.layout;
|
|||
|
||||
public class ScriptModuleWriter extends ModuleWriter
|
||||
{
|
||||
public ScriptModuleWriter(ScriptData scriptData)
|
||||
public ScriptModuleWriter(ScriptData scriptData, LanguageData languageData)
|
||||
{
|
||||
super(scriptData);
|
||||
super(scriptData, languageData);
|
||||
}
|
||||
|
||||
public void writeScriptHeader(String fileName)
|
||||
{
|
||||
int minScript = scriptData.getMinScript();
|
||||
int maxScript = scriptData.getMaxScript();
|
||||
|
||||
openFile(fileName);
|
||||
writeHeader();
|
||||
output.println(scriptPreamble);
|
||||
|
||||
for (int script = minScript; script <= maxScript; script += 1) {
|
||||
output.print(" ");
|
||||
output.print(scriptData.getScriptTag(script));
|
||||
output.print("ScriptCode = ");
|
||||
|
||||
if (script < 10) {
|
||||
output.print(" ");
|
||||
}
|
||||
|
||||
output.print(script);
|
||||
output.println(",");
|
||||
}
|
||||
|
||||
output.println();
|
||||
output.print(" scriptCodeCount = ");
|
||||
output.println(maxScript - minScript + 1);
|
||||
|
||||
output.println(postamble);
|
||||
closeFile();
|
||||
}
|
||||
|
||||
public void writeScriptHeader(String fileName)
|
||||
public void writeLanguageHeader(String fileName)
|
||||
{
|
||||
int minScript = scriptData.getMinScript();
|
||||
int maxScript = scriptData.getMaxScript();
|
||||
int minLanguage = languageData.getMinLanguage();
|
||||
int maxLanguage = languageData.getMaxLanguage();
|
||||
|
||||
openFile(fileName);
|
||||
writeHeader();
|
||||
output.println(preamble);
|
||||
output.println(languagePreamble);
|
||||
|
||||
for (int script = minScript; script <= maxScript; script += 1) {
|
||||
for (int language = minLanguage; language <= maxLanguage; language += 1) {
|
||||
output.print(" ");
|
||||
output.print(scriptData.getScriptTag(script));
|
||||
output.print("ScriptCode = ");
|
||||
output.print(languageData.getLanguageTagLabel(language).toLowerCase());
|
||||
output.print("LanguageCode = ");
|
||||
|
||||
if (script < 10) {
|
||||
if (language < 10) {
|
||||
output.print(" ");
|
||||
}
|
||||
|
||||
output.print(script);
|
||||
output.print(language);
|
||||
output.println(",");
|
||||
}
|
||||
|
||||
output.println();
|
||||
output.print(" scriptCodeCount = ");
|
||||
output.println(maxScript - minScript + 1);
|
||||
output.print(" languageCodeCount = ");
|
||||
output.println(maxLanguage - minLanguage + 1);
|
||||
|
||||
output.println(postamble);
|
||||
closeFile();
|
||||
}
|
||||
|
||||
private static final String preamble =
|
||||
private static final String scriptPreamble =
|
||||
"#ifndef __LESCRIPTS_H\n" +
|
||||
"#define __LESCRIPTS_H\n" +
|
||||
"\n" +
|
||||
|
@ -59,10 +89,27 @@ public class ScriptModuleWriter extends ModuleWriter
|
|||
" * Constants for Unicode script values, generated using\n" +
|
||||
" * ICU4J's <code>UScript</code> class.\n" +
|
||||
" *\n" +
|
||||
" * @draft ICU 2.4\n" +
|
||||
" * @draft ICU 2.6\n" +
|
||||
" */\n" +
|
||||
"\n" +
|
||||
"enum ScriptCodes {";
|
||||
|
||||
private static final String languagePreamble =
|
||||
"#ifndef __LELANGUAGES_H\n" +
|
||||
"#define __LELANGUAGES_H\n" +
|
||||
"\n" +
|
||||
"U_NAMESPACE_BEGIN\n" +
|
||||
"\n" +
|
||||
"/**\n" +
|
||||
" * A provisional list of language codes. For now,\n" +
|
||||
" * this is just a list of languages which the LayoutEngine\n" +
|
||||
" * supports.\n" +
|
||||
" *\n" +
|
||||
" * @draft ICU 2.6\n" +
|
||||
" */\n" +
|
||||
"\n" +
|
||||
"enum LanguageCodes {";
|
||||
|
||||
private static final String postamble =
|
||||
"};\n" +
|
||||
"\n" +
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ScriptNameBuilder.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
@ -23,11 +23,14 @@ public class ScriptNameBuilder
|
|||
public static void main(String[] args)
|
||||
{
|
||||
ScriptData scriptData = new ScriptData();
|
||||
ScriptModuleWriter scriptModuleWriter = new ScriptModuleWriter(scriptData);
|
||||
LanguageData languageData = new LanguageData();
|
||||
|
||||
ScriptModuleWriter scriptModuleWriter = new ScriptModuleWriter(scriptData, languageData);
|
||||
|
||||
scriptModuleWriter.writeScriptHeader("LEScripts.h");
|
||||
scriptModuleWriter.writeLanguageHeader("LELanguages.h");
|
||||
|
||||
ScriptTagModuleWriter scriptTagModuleWriter = new ScriptTagModuleWriter(scriptData);
|
||||
ScriptTagModuleWriter scriptTagModuleWriter = new ScriptTagModuleWriter(scriptData, languageData);
|
||||
|
||||
scriptTagModuleWriter.writeScriptTags("ScriptAndLanguageTags");
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ScriptRunModuleWriter.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
@ -19,7 +19,7 @@ public class ScriptRunModuleWriter extends ModuleWriter
|
|||
{
|
||||
public ScriptRunModuleWriter(ScriptData theScriptData)
|
||||
{
|
||||
super(theScriptData);
|
||||
super(theScriptData, null);
|
||||
}
|
||||
|
||||
public void writeScriptRuns(String fileName)
|
||||
|
|
|
@ -5,15 +5,13 @@
|
|||
*******************************************************************************
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/ScriptTagModuleWriter.java,v $
|
||||
* $Date: 2003/01/14 19:05:23 $
|
||||
* $Revision: 1.1 $
|
||||
* $Date: 2003/04/15 01:23:49 $
|
||||
* $Revision: 1.2 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.layout;
|
||||
|
||||
import com.ibm.icu.impl.Utility;
|
||||
|
||||
public class ScriptTagModuleWriter extends ModuleWriter
|
||||
{
|
||||
|
||||
|
@ -29,32 +27,43 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
return result;
|
||||
}
|
||||
|
||||
public ScriptTagModuleWriter(ScriptData theScriptData)
|
||||
public ScriptTagModuleWriter(ScriptData theScriptData, LanguageData theLanguageData)
|
||||
{
|
||||
super(theScriptData);
|
||||
super(theScriptData, theLanguageData);
|
||||
}
|
||||
|
||||
public void writeHeaderFile(String fileName)
|
||||
{
|
||||
int minScript = scriptData.getMinScript();
|
||||
int maxScript = scriptData.getMaxScript();
|
||||
int min = scriptData.getMinScript();
|
||||
int max = scriptData.getMaxScript();
|
||||
|
||||
openFile(fileName);
|
||||
writeHeader();
|
||||
output.println(hPreamble);
|
||||
|
||||
for (int script = minScript; script <= maxScript; script += 1) {
|
||||
String tag = scriptData.getScriptTag(script);
|
||||
|
||||
for (int script = min; script <= max; script += 1) {
|
||||
output.print("const LETag ");
|
||||
output.print(tag);
|
||||
output.print("ScriptTag = 0x");
|
||||
output.print(Utility.hex(scriptTag(tag), 8));
|
||||
output.print("; /* '");
|
||||
output.print(tag);
|
||||
output.print("' (");
|
||||
output.print(scriptData.getScriptTagLabel(script));
|
||||
output.print("ScriptTag = ");
|
||||
output.print(scriptData.makeScriptTag(script));
|
||||
output.print("; /* ");
|
||||
output.print(scriptData.getScriptName(script));
|
||||
output.println(") */");
|
||||
output.println(" */");
|
||||
}
|
||||
|
||||
output.println(hScriptPostamble);
|
||||
|
||||
min = languageData.getMinLanguage();
|
||||
max = languageData.getMaxLanguage();
|
||||
|
||||
for (int language = min; language <= max; language += 1) {
|
||||
output.print("const LETag ");
|
||||
output.print(languageData.getLanguageTagLabel(language));
|
||||
output.print("LanguageTag = ");
|
||||
output.print(languageData.makeLanguageTag(language));
|
||||
output.print("; /* ");
|
||||
output.print(languageData.getLanguageName(language));
|
||||
output.println(" */");
|
||||
}
|
||||
|
||||
output.println(hPostamble);
|
||||
|
@ -63,20 +72,20 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
|
||||
public void writeCPPFile(String fileName)
|
||||
{
|
||||
int minScript = scriptData.getMinScript();
|
||||
int maxScript = scriptData.getMaxScript();
|
||||
int min = scriptData.getMinScript();
|
||||
int max = scriptData.getMaxScript();
|
||||
|
||||
openFile(fileName);
|
||||
writeHeader();
|
||||
output.println(cppPreamble);
|
||||
|
||||
for (int script = minScript; script <= maxScript; script += 1) {
|
||||
for (int script = min; script <= max; script += 1) {
|
||||
String tag = scriptData.getScriptTag(script);
|
||||
|
||||
output.print(" ");
|
||||
output.print(tag);
|
||||
output.print("ScriptTag");
|
||||
output.print((script == maxScript? " " : ","));
|
||||
output.print((script == max? " " : ","));
|
||||
output.print(" /* '");
|
||||
output.print(tag);
|
||||
output.print("' (");
|
||||
|
@ -84,6 +93,25 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
output.println(") */");
|
||||
}
|
||||
|
||||
output.println(cppScriptPostamble);
|
||||
|
||||
min = languageData.getMinLanguage();
|
||||
max = languageData.getMaxLanguage();
|
||||
|
||||
for (int language = min; language <= max; language += 1) {
|
||||
String tag = languageData.getLanguageTag(language);
|
||||
|
||||
output.print(" ");
|
||||
output.print(languageData.getLanguageTagLabel(language));
|
||||
output.print("LanguageTag");
|
||||
output.print((language == max? " " : ","));
|
||||
output.print(" /* '");
|
||||
output.print(languageData.getLanguageTag(language));
|
||||
output.print("' (");
|
||||
output.print(languageData.getLanguageName(language));
|
||||
output.println(") */");
|
||||
}
|
||||
|
||||
output.println(cppPostamble);
|
||||
closeFile();
|
||||
}
|
||||
|
@ -93,7 +121,7 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
writeHeaderFile(fileName + ".h");
|
||||
writeCPPFile(fileName + ".cpp");
|
||||
}
|
||||
|
||||
|
||||
private static final String hPreamble =
|
||||
"#ifndef __SCRIPTANDLANGUAGES_H\n" +
|
||||
"#define __SCRIPTANDLANGUAGES_H\n" +
|
||||
|
@ -104,15 +132,17 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
" */\n" +
|
||||
"\n" +
|
||||
"#include \"LETypes.h\"\n" +
|
||||
"#include \"LEScripts.h\"\n" +
|
||||
"\n" +
|
||||
"U_NAMESPACE_BEGIN\n";
|
||||
|
||||
private static final String hPostamble =
|
||||
private static final String hScriptPostamble =
|
||||
"\n" +
|
||||
"const LETag nullScriptTag = 0x00000000; /* '' (NULL) */\n" +
|
||||
"\n";
|
||||
|
||||
private static final String hPostamble =
|
||||
"\n" +
|
||||
"const LETag noLangSysTag = 0x00000000; /* '' (NONE) */\n" +
|
||||
"const LETag nullLanguageTag = 0x00000000; /* '' (NONE) */\n" +
|
||||
"\n" +
|
||||
"U_NAMESPACE_END\n" +
|
||||
"#endif";
|
||||
|
@ -126,6 +156,11 @@ public class ScriptTagModuleWriter extends ModuleWriter
|
|||
"\n" +
|
||||
"const LETag OpenTypeLayoutEngine::scriptTags[] = {";
|
||||
|
||||
private static final String cppScriptPostamble =
|
||||
"};\n" +
|
||||
"\n" +
|
||||
"const LETag OpenTypeLayoutEngine::languageTags[] = {";
|
||||
|
||||
private static final String cppPostamble =
|
||||
"};\n" +
|
||||
"\n" +
|
||||
|
|
57
icu4j/src/com/ibm/icu/dev/tool/layout/TagUtilities.java
Normal file
57
icu4j/src/com/ibm/icu/dev/tool/layout/TagUtilities.java
Normal file
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 1998-2003, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*
|
||||
* Created on Apr 14, 2003
|
||||
*
|
||||
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/layout/TagUtilities.java,v $ $Date: 2003/04/15 01:23:49 $ $Revision: 1.1 $
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
package com.ibm.icu.dev.tool.layout;
|
||||
|
||||
/**
|
||||
* This class contains utility methods for dealing with
|
||||
* four-letter tags.
|
||||
*
|
||||
* @author emader
|
||||
*
|
||||
*/
|
||||
public class TagUtilities
|
||||
{
|
||||
public static String makeTag(String tag)
|
||||
{
|
||||
if (tag == null || tag.length() == 0) {
|
||||
return "0x00000000";
|
||||
}
|
||||
|
||||
StringBuffer result = new StringBuffer("LE_MAKE_TAG(");
|
||||
|
||||
for (int i = 0; i < 4; i += 1) {
|
||||
if (i > 0) {
|
||||
result.append(", ");
|
||||
}
|
||||
|
||||
result.append('\'');
|
||||
result.append(i < tag.length()? tag.charAt(i) : ' ');
|
||||
result.append('\'');
|
||||
}
|
||||
|
||||
result.append(")");
|
||||
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
public static String tagLabel(String tag)
|
||||
{
|
||||
if (tag == null || tag.length() == 0) {
|
||||
return "default";
|
||||
} else {
|
||||
return tag.toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue