eclipse plugin: some cleanup on schema parser

This commit is contained in:
Timotei Dolean 2010-07-27 19:06:34 +00:00
parent 68089dee82
commit 02f96fc169
3 changed files with 102 additions and 98 deletions

View File

@ -8,12 +8,9 @@
*******************************************************************************/
package wesnoth_eclipse_plugin.schema;
import java.io.BufferedWriter;
import java.io.File;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Stack;
import wesnoth_eclipse_plugin.Constants;
@ -243,27 +240,26 @@ public class SchemaParser
Logger.getInstance().log("parsing done");
parsingDone_ = true;
try
{
BufferedWriter bw = new BufferedWriter(new PrintWriter(new File("E:/work/gw/data/schema-out.cfg")));
// print primitives
for (Entry<String, String> primitive : primitives_.entrySet())
{
bw.write(primitive.getKey() + ": " + primitive.getValue() + "\n");
}
// print tags
Tag root = tags_.get("root");
for (Tag tag : root.getTagChildren())
{
bw.write(getOutput(tag, ""));
}
bw.close();
} catch (Exception e)
{
Logger.getInstance().logException(e);
}
System.out.println("End writing result");
// try
// {
// BufferedWriter bw = new BufferedWriter(new PrintWriter(new File("E:/work/gw/data/schema-out.cfg")));
// // print primitives
// for (Entry<String, String> primitive : primitives_.entrySet())
// {
// bw.write(primitive.getKey() + ": " + primitive.getValue() + "\n");
// }
// // print tags
// Tag root = tags_.get("root");
// for (Tag tag : root.getTagChildren())
// {
// bw.write(getOutput(tag, 0));
// }
// bw.close();
// } catch (Exception e)
// {
// Logger.getInstance().logException(e);
// }
// System.out.println("End writing result");
}
/**
@ -334,15 +330,20 @@ public class SchemaParser
* @param tag The tag which contents to output
* @param indent The indentation space
*/
public String getOutput(Tag tag, String indent)
public String getOutput(Tag tag, int indent)
{
if (tag == null)
return "";
String res = indent + "[" + tag.getName() + "]\n";
res += getOutput(tag.getDescription(), indent + "\t");
StringBuilder res = new StringBuilder();
// tag name
res.append(StringUtils.multiples("\t", indent) + "[" + tag.getName() + "]\n");
// tag description (if any)
res.append(getOutput(tag.getDescription(), indent + 1));
for (TagKey key : tag.getKeyChildren())
{
res += (indent + "\t" + key.getName() + "=" +
res.append(StringUtils.multiples("\t", indent) +
"\t" + key.getName() + "=" +
(tag.getName().equals("description") ?
key.getValue() : key.getValueType())
+ "\n");
@ -352,10 +353,13 @@ public class SchemaParser
// skip recursive calls
if (tmpTag.getTagChildren().contains(tag))
continue;
res += (getOutput(tmpTag, indent + "\t"));
res.append(getOutput(tmpTag, indent + 1));
}
res += (indent + "[/" + tag.getName() + "]\n");
return res;
// closing tag
res.append(StringUtils.multiples("\t", indent) +
"[/" + tag.getName() + "]\n");
return res.toString();
}
/**

View File

@ -17,31 +17,31 @@ import java.util.List;
*/
public class Tag
{
private String Name = "";
private String ExtendedTagName = "";
private List<Tag> TagChildren;
private List<TagKey> KeyChildren;
private Tag Description;
private char Cardinality = ' ';
private String name_ = "";
private String extendedTagName_ = "";
private List<Tag> tagChildren_;
private List<TagKey> keyChildren_;
private Tag description_;
private char cardinality_ = ' ';
private boolean NeedsExpanding = false;
private boolean needsExpanding_ = false;
public Tag(String name, List<Tag> tagChildren, List<TagKey> keyChildren, char cardinality) {
Name = name;
TagChildren = tagChildren;
KeyChildren = keyChildren;
Cardinality = cardinality;
name_ = name;
tagChildren_ = tagChildren;
keyChildren_ = keyChildren;
cardinality_ = cardinality;
}
public Tag(String name, char cardinality) {
Name = name;
Cardinality = cardinality;
name_ = name;
cardinality_ = cardinality;
}
public Tag(String name, String extendedTagName, char cardinality) {
Name = name;
ExtendedTagName = extendedTagName;
Cardinality = cardinality;
name_ = name;
extendedTagName_ = extendedTagName;
cardinality_ = cardinality;
}
/**
@ -50,9 +50,9 @@ public class Tag
*/
public void addTag(Tag tag)
{
if (TagChildren == null)
TagChildren = new ArrayList<Tag>();
TagChildren.add(tag);
if (tagChildren_ == null)
tagChildren_ = new ArrayList<Tag>();
tagChildren_.add(tag);
}
/**
@ -61,9 +61,9 @@ public class Tag
*/
public void addKey(TagKey key)
{
if (KeyChildren == null)
KeyChildren = new ArrayList<TagKey>();
KeyChildren.add(key);
if (keyChildren_ == null)
keyChildren_ = new ArrayList<TagKey>();
keyChildren_.add(key);
}
/**
@ -82,58 +82,58 @@ public class Tag
@Override
public String toString()
{
return new String(Name + " " + ExtendedTagName);
return new String(name_ + " " + extendedTagName_);
}
public String getName()
{
return Name;
return name_;
}
public char getCardinality()
{
return Cardinality;
return cardinality_;
}
public void setDescription(Tag description)
{
Description = description;
description_ = description;
}
public Tag getDescription()
{
return Description;
return description_;
}
public String getExtendedTagName()
{
return ExtendedTagName;
return extendedTagName_;
}
public void setExtendedTagName(String extendedTagName)
{
ExtendedTagName = extendedTagName;
extendedTagName_ = extendedTagName;
}
public void setNeedsExpanding(boolean needsExpanding)
{
NeedsExpanding = needsExpanding;
needsExpanding_ = needsExpanding;
}
public boolean getNeedsExpanding()
{
return NeedsExpanding;
return needsExpanding_;
}
public List<TagKey> getKeyChildren()
{
if (KeyChildren == null)
KeyChildren = new ArrayList<TagKey>();
return KeyChildren;
if (keyChildren_ == null)
keyChildren_ = new ArrayList<TagKey>();
return keyChildren_;
}
public List<Tag> getTagChildren()
{
if (TagChildren == null)
TagChildren = new ArrayList<Tag>();
return TagChildren;
if (tagChildren_ == null)
tagChildren_ = new ArrayList<Tag>();
return tagChildren_;
}
@ -145,11 +145,11 @@ public class Tag
@Override
public int compare(Tag o1, Tag o2)
{
if (o1.Cardinality == o2.Cardinality)
if (o1.cardinality_ == o2.cardinality_)
return 0;
if (o1.Cardinality == '1')
if (o1.cardinality_ == '1')
return 1;
else if (o2.Cardinality == '1')
else if (o2.cardinality_ == '1')
return -1;
return 0;
}

View File

@ -15,7 +15,7 @@ import java.util.Comparator;
*/
public class TagKey
{
private String Name;
private String name_;
/**
* Cardinality can be:
* 1 = required
@ -23,30 +23,30 @@ public class TagKey
* * = repeated
* - = forbidden
*/
private char Cardinality;
private String ValueType;
private String Value;
private boolean IsEnum;
private boolean IsTranslatable;
private char cardinality_;
private String valueType_;
private String value_;
private boolean isEnum_;
private boolean isTranslatable_;
public TagKey(String name, char cardinality, String valueType, boolean trans) {
Name = name;
Cardinality = cardinality;
Value = "";
name_ = name;
cardinality_ = cardinality;
value_ = "";
if (valueType == null || valueType.isEmpty())
{
ValueType = "";
IsEnum = false;
IsTranslatable = false;
valueType_ = "";
isEnum_ = false;
isTranslatable_ = false;
}
else
{
IsEnum = valueType.substring(1, valueType.indexOf(" ")).equals("enum");
isEnum_ = valueType.substring(1, valueType.indexOf(" ")).equals("enum");
// remove the " "
ValueType = valueType.substring(valueType.indexOf(" ") + 1, valueType.length() - 1);
IsTranslatable = trans;
valueType_ = valueType.substring(valueType.indexOf(" ") + 1, valueType.length() - 1);
isTranslatable_ = trans;
}
}
@ -54,7 +54,7 @@ public class TagKey
String defaultValue, boolean trans)
{
this(name, cardinality, valueType, trans);
Value = defaultValue;
value_ = defaultValue;
}
/**
@ -65,11 +65,11 @@ public class TagKey
@Override
public int compare(TagKey o1, TagKey o2)
{
if (o1.Cardinality == o2.Cardinality)
if (o1.cardinality_ == o2.cardinality_)
return 0;
if (o1.Cardinality == '1')
if (o1.cardinality_ == '1')
return -1;
else if (o2.Cardinality == '1')
else if (o2.cardinality_ == '1')
return 1;
return 0;
}
@ -77,40 +77,40 @@ public class TagKey
public char getCardinality()
{
return Cardinality;
return cardinality_;
}
public void setCardinality(char cardinality)
{
Cardinality = cardinality;
cardinality_ = cardinality;
}
public String getValue()
{
return Value;
return value_;
}
public void setDefaultValue(String defaultValue)
{
Value = defaultValue;
value_ = defaultValue;
}
public String getName()
{
return Name;
return name_;
}
public String getValueType()
{
return ValueType;
return valueType_;
}
public boolean getIsTranslatable()
{
return IsTranslatable;
return isTranslatable_;
}
public boolean getIsEnum()
{
return IsEnum;
return isEnum_;
}
}