Skip to content

Commit

Permalink
aumenta flexibilidade do masterfile
Browse files Browse the repository at this point in the history
  • Loading branch information
dinizime committed Oct 7, 2021
1 parent fe285ca commit c0d05f6
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 3 deletions.
37 changes: 37 additions & 0 deletions masterfile_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,45 @@
"type": "integer"
},
"minItems": 1
},
{
"type": "object",
"properties": {
"MultiPoint": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 1
},
"MultiLinestring": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 1
},
"MultiPolygon": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 1
}
},
"additionalProperties": false
}
]
},
"primitivas": {
"type": "array",
"description": "Lista de geometrias válidas para utilizar esse atributo.",
"items": {
"type": "string",
"enum": ["MultiPoint", "MultiLinestring", "MultiPolygon"]
},
"minItems": 1,
"uniqueItems": true
}
},
"required": ["nome", "tipo", "cardinalidade"],
Expand Down
11 changes: 8 additions & 3 deletions rotinas/mastergen.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def __init__(self, master_path):
# TODO Validate JSON file against JsonSchema
pass

def buildSQL(self, dest, atributos_padrao=False, extension_classes=False, uuid = False, owner='postgres'):
def buildSQL(self, dest, atributos_padrao=True, extension_classes=True, uuid = True, owner='postgres'):
master = self.master
sql = []
sql.append(u"CREATE SCHEMA {0};".format(master["schema_dados"]))
Expand Down Expand Up @@ -114,6 +114,8 @@ def buildSQL(self, dest, atributos_padrao=False, extension_classes=False, uuid =
master["nome_id"]))

for atributo in classe["atributos"]:
if "primitivas" in atributo and primitiva not in atributo["primitivas"]:
continue
if atributo["cardinalidade"] == "0..1":
sql.append(u"\t {0} {1},".format(
atributo["nome"], atributo["tipo"]))
Expand Down Expand Up @@ -143,10 +145,13 @@ def buildSQL(self, dest, atributos_padrao=False, extension_classes=False, uuid =
sql.append(u"")

for atributo in classe["atributos"]:

if "primitivas" in atributo and primitiva not in atributo["primitivas"]:
continue
if "mapa_valor" in atributo:
valores_att = None
if "valores" in atributo and len(atributo["valores"])>0:
if "valores" in atributo and isinstance(atributo["valores"],dict) and primitiva in atributo["valores"]:
valores_att = atributo["valores"][primitiva]
elif "valores" in atributo and len(atributo["valores"])>0:
if isinstance(atributo["valores"][0],dict):
valores_att = [valor["code"] for valor in atributo["valores"]
if ("primitivas" in valor and primitiva in valor["primitivas"]) or "primitivas" not in valor]
Expand Down

0 comments on commit c0d05f6

Please sign in to comment.