mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-27 10:44:43 +08:00
Data types-related fixes
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import FunctionReferenceEntity from "../entity/FunctionReferenceEntity"
|
||||
import GuidEntity from "../entity/GuidEntity"
|
||||
import Identifier from "../entity/Identifier"
|
||||
import IntegerEntity from "../entity/IntegerEntity"
|
||||
import LocalizedTextEntity from "../entity/LocalizedTextEntity"
|
||||
import ObjectEntity from "../entity/ObjectEntity"
|
||||
@@ -47,6 +48,9 @@ export default class Grammar {
|
||||
/** @param {Grammar} r */
|
||||
Guid = r => P.regex(/[0-9a-zA-Z]{32}/).map(v => new GuidEntity({ value: v })).desc("32 digit hexadecimal (accepts all the letters for safety) value")
|
||||
|
||||
/** @param {Grammar} */
|
||||
Identifier = r => P.regex(/\w+/).map(v => new Identifier(v))
|
||||
|
||||
/** @param {Grammar} r */
|
||||
PathSymbolEntity = r => P.regex(/[0-9a-zA-Z_]+/).map(v => new PathSymbolEntity({ value: v }))
|
||||
|
||||
@@ -121,6 +125,8 @@ export default class Grammar {
|
||||
return r.String
|
||||
case GuidEntity:
|
||||
return r.Guid
|
||||
case Identifier:
|
||||
return r.Identifier
|
||||
case ObjectReferenceEntity:
|
||||
return r.Reference
|
||||
case LocalizedTextEntity:
|
||||
|
||||
@@ -58,7 +58,7 @@ export default class ISerializer {
|
||||
// Recursive call when finding an object
|
||||
result += (result.length ? this.separator : "")
|
||||
+ this.subWrite(fullKey, value)
|
||||
} else if (value !== undefined && this.showProperty(fullKey, value)) {
|
||||
} else if (value !== undefined && this.showProperty(object, fullKey, value)) {
|
||||
result += (result.length ? this.separator : "")
|
||||
+ this.prefix
|
||||
+ this.attributeKeyPrinter(fullKey)
|
||||
@@ -73,7 +73,7 @@ export default class ISerializer {
|
||||
return result
|
||||
}
|
||||
|
||||
showProperty(attributeKey, attributeValue) {
|
||||
showProperty(object, attributeKey, attributeValue) {
|
||||
const attributes = this.entityType.attributes
|
||||
const attribute = Utility.objectGet(attributes, attributeKey)
|
||||
if (attribute instanceof TypeInitialization) {
|
||||
|
||||
@@ -9,7 +9,7 @@ export default class ObjectSerializer extends ISerializer {
|
||||
super(ObjectEntity, " ", "\n", false)
|
||||
}
|
||||
|
||||
showProperty(attributeKey, attributeValue) {
|
||||
showProperty(object, attributeKey, attributeValue) {
|
||||
switch (attributeKey.toString()) {
|
||||
case "Class":
|
||||
case "Name":
|
||||
@@ -17,7 +17,7 @@ export default class ObjectSerializer extends ISerializer {
|
||||
// Serielized separately
|
||||
return false
|
||||
}
|
||||
return super.showProperty(attributeKey, attributeValue)
|
||||
return super.showProperty(object, attributeKey, attributeValue)
|
||||
}
|
||||
|
||||
read(value) {
|
||||
@@ -49,7 +49,12 @@ export default class ObjectSerializer extends ISerializer {
|
||||
let result = `Begin Object Class=${object.Class.path} Name=${this.writeValue(object.Name)}
|
||||
${this.subWrite([], object)
|
||||
+ object
|
||||
.CustomProperties.map(pin => this.separator + this.prefix + "CustomProperties " + SerializerFactory.getSerializer(PinEntity).write(pin))
|
||||
.CustomProperties.map(pin =>
|
||||
this.separator
|
||||
+ this.prefix
|
||||
+ "CustomProperties "
|
||||
+ SerializerFactory.getSerializer(PinEntity).write(pin)
|
||||
)
|
||||
.join("")}
|
||||
End Object\n`
|
||||
return result
|
||||
|
||||
@@ -12,6 +12,7 @@ import PinEntity from "../entity/PinEntity"
|
||||
import PinReferenceEntity from "../entity/PinReferenceEntity"
|
||||
import SerializerFactory from "./SerializerFactory"
|
||||
import ToStringSerializer from "./ToStringSerializer"
|
||||
import Identifier from "../entity/Identifier"
|
||||
|
||||
export default function initializeSerializerFactory() {
|
||||
SerializerFactory.registerSerializer(
|
||||
@@ -44,6 +45,7 @@ export default function initializeSerializerFactory() {
|
||||
: ""
|
||||
))
|
||||
)
|
||||
SerializerFactory.registerSerializer(Identifier, new ToStringSerializer(Identifier))
|
||||
SerializerFactory.registerSerializer(PathSymbolEntity, new ToStringSerializer(PathSymbolEntity))
|
||||
SerializerFactory.registerSerializer(GuidEntity, new ToStringSerializer(GuidEntity))
|
||||
SerializerFactory.registerSerializer(IntegerEntity, new ToStringSerializer(IntegerEntity))
|
||||
|
||||
Reference in New Issue
Block a user