Skip to content

Commit

Permalink
correct string escape for json
Browse files Browse the repository at this point in the history
  • Loading branch information
mardam committed Feb 9, 2016
1 parent f79bff5 commit df90549
Showing 1 changed file with 68 additions and 33 deletions.
Expand Up @@ -107,7 +107,6 @@ private abstract class UsageRecord {
* The description of this item. If there isn't any English
* description available, the description is set to a hyphen.
*/
// public String description;
}

/**
Expand Down Expand Up @@ -616,33 +615,43 @@ private void writePropertyData() {
*/
private void writeClassData() {
try (PrintStream out = new PrintStream(
ExampleHelpers.openExampleFileOuputStream("Classes.csv"),
ExampleHelpers.openExampleFileOuputStream("classes.js"),
true, "UTF-8")) {

out.println("Id" + ",Label" + ",URL"
+ ",Image"
+ ",Number of direct instances"
+ ",Number of direct subclasses"
+ ",Direct superclasses"
+ ",All superclasses"
+ ",Related properties");

out.println("classes = \"{");
out.println("}\";");
List<Entry<EntityIdValue, ClassRecord>> list = new ArrayList<>(
this.classRecords.entrySet());
Collections.sort(list, new ClassUsageRecordComparator());
for (Entry<EntityIdValue, ClassRecord> entry : list) {
if (entry.getValue().itemCount > 0
|| entry.getValue().subclassCount > 0) {
printClassRecord(out, entry.getValue(),
entry.getKey());
}
printClassRecord(out, entry.getValue(),
entry.getKey());
}

} catch (IOException e) {
e.printStackTrace();
}
}

/*
* private void writeClassData() { try (PrintStream out = new
* PrintStream(
* ExampleHelpers.openExampleFileOuputStream("Classes.csv"), true,
* "UTF-8")) {
*
* out.println("Id" + ",Label" + ",URL" + ",Image" +
* ",Number of direct instances" + ",Number of direct subclasses" +
* ",Direct superclasses" + ",All superclasses" +
* ",Related properties");
*
* List<Entry<EntityIdValue, ClassRecord>> list = new ArrayList<>(
* this.classRecords.entrySet()); Collections.sort(list, new
* ClassUsageRecordComparator()); for (Entry<EntityIdValue, ClassRecord>
* entry : list) { if (entry.getValue().itemCount > 0 ||
* entry.getValue().subclassCount > 0) { printClassRecord(out,
* entry.getValue(), entry.getKey()); } }
*
* } catch (IOException e) { e.printStackTrace(); } }
*/

/**
* Prints the data for a single class to the given stream. This will be
* a single line in CSV.
Expand All @@ -656,25 +665,51 @@ private void writeClassData() {
*/
private void printClassRecord(PrintStream out, ClassRecord classRecord,
EntityIdValue entityIdValue) {
printTerms(out, classRecord, entityIdValue);
printImage(out, classRecord);

out.print("," + classRecord.itemCount + ","
+ classRecord.subclassCount);

printClassList(out, classRecord.superClasses);

HashSet<EntityIdValue> superClasses = new HashSet<>();
for (EntityIdValue superClass : classRecord.superClasses) {
addSuperClasses(superClass, superClasses);
}

printClassList(out, superClasses);
StringBuilder builder = new StringBuilder();
builder.append(jsonStringEscape(entityIdValueToInt(entityIdValue)))
.append(":{");
builder.append(jsonStringEscape("label")).append(":")
.append(jsonStringEscape(classRecord.label))
.append(",");
builder.append(jsonStringEscape("items")).append(":")
.append(classRecord.itemCount).append(",");
builder.append(buildStringForRelatedProperties(classRecord));
builder.append("}");
out.println(builder.toString());
}

private String buildStringForRelatedProperties(ClassRecord classRecord) {
return "";
}

printRelatedProperties(out, classRecord);
private String jsonStringEscape(String string) {
string = string.replace("\\", "\\\\\\\\");
return "\\\"" + string.replace("\"", "\\\\\"") + "\\\"";
}

out.println("");
private String entityIdValueToInt(EntityIdValue entityIdValue) {
return entityIdValue.getId().substring(1);
}
/*
* private void printClassRecord(PrintStream out, ClassRecord
* classRecord, EntityIdValue entityIdValue) { printTerms(out,
* classRecord, entityIdValue); printImage(out, classRecord);
*
* out.print("," + classRecord.itemCount + "," +
* classRecord.subclassCount);
*
* printClassList(out, classRecord.superClasses);
*
* HashSet<EntityIdValue> superClasses = new HashSet<>(); for
* (EntityIdValue superClass : classRecord.superClasses) {
* addSuperClasses(superClass, superClasses); }
*
* printClassList(out, superClasses);
*
* printRelatedProperties(out, classRecord);
*
* out.println(""); }
*/

/**
* Prints the URL of a thumbnail for the given item document to the
Expand Down

0 comments on commit df90549

Please sign in to comment.