Evolution #1984

Add Map field type

Added by Benjamin Poussin about 1 year ago. Updated about 1 year ago.

Status:NouveauStart date:10/20/2010
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:APIEstimated time:6.00 hours
Target version:4Spent time:-

Description

Actuellement on peut avoir des collections List ou Set. Il serait bien d'avoir aussi des collections Map comme champs. Cela est différent d'un wikitty, car un wikitty a un nombre de champs et des noms de champs prédéfinis.

La clé est toujours une String. La valeur peut-etre de n'importe quel type accepté par Wikitty.

Définition

String tagValue map=true
Wikitty field map=true

C'est un tag value sur le champs qui indique si ce champs est une map ou un simple champs.

Pensez a modifier l'implantation de FieldType.isCollection pour retourner vrai pour une map. Et recherche les implications que cela à dans d'autre méthode.

Lorsqu'un champs est une map, le upperbound est automatiquement mis à '*'.

Utilisation

De nouvelle méthode seront ajouter sur le Wikitty pour géré les champs de type map

getFieldAsMap(extName, fieldName):Map ( en lecture seul)
putToField(extName, fieldName, key, value):Object (l'ancienne valeur ou null; si value vaut null, cela revient a supprimer cette clé)
getFieldAsXXX(extName, fieldName, key)

on reutilise la methode clear pour les maps

Les méthodes équivalentes seront générées sur l'entité métier

Stockage

De la même façon qu'on stocke les listes avec nomdechamps[n/m] on stockera le champs avec pour chaque entrée dans la map une ligne dans la base nomdechamps[key]

Indexation

extName.fieldName:key=value (une fois pour chaque entrée de la map)
extName.fieldName.keys:liste des keys
extName.fieldName.values:liste des values

La premiere indexation permettra de faire une recherche précise. La deuxième de faire une recherche sur une cle, et la derniere sur une valeur.


Subtasks

Evolution #964: In wikitty add support for 'variant'Nouveau

History

#1 Updated by Benjamin Poussin about 1 year ago

  • Target version changed from 3.5 to 4

Also available in: Atom PDF