Dato che a priori non potrò sapere in quale lingua è stato realizzato il db e dato che non voglio studiarmi, quanto meno per il momento, una regular expression, per definire i singolari e i plurali.
Utilizzerò questa convenzione:
-NomeEntita = NomeTabella,
-NomeCollezione = NomeTabella_List,
-NomeAdapter = NomeTabella_Adapter.
Che per il momento ritengo valida e plausibile. Di contro c'e' ancora da considerare come si potrà utilizzare questo prodotto.
La prima idea è stata di realizzare un plugin per la ide, ma non mi ha convinto del tutto. Ritengo che la realizzazione di un prodotto Stand Alone possa dare maggior equilibrio, certo è vero che questo presupposto allontana un po' dall'usabilità stessa.
Quindi tornando alle mie preziose definizioni, direi che per l'entità posso raccogliere:
-Using ( servono sempre )
-Namespace ( per forza )
-Modificatore
-Nome classe
-Elenco di Field
-Elenco di Property
-Flag per creare il costruttore
-Flag per creare il distruttore
-Override di ToString ( che lascerò come fisso ... vedi post: ToString
Questo implica che dovrò implementare un writer overridabile per ogni elemento presente in questa lista.
Non solo devo creare anche un Tipo per i Field e un tipo per le proprietà, in questo modo prevengo il dover effettuare un continuo accesso al db.
Di concetto mi piacerebbe estrarre tutto fin dall'inizio, leggerlo e processarlo. Mi sta quasi balenando l'idea di creare un seriliazzatore anche se forse non è il caso.
public class PropertyPrototype
{
private string _accessType;
private string _valueType;
private string _name;
private string _description;
private bool _isReadOnly;
public string AccessType
{
get { return _accessType; }
set { _accessType = value; }
}
public string ValueType
{
get { return _valueType; }
set { _valueType = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Description
{
get { return _description; }
set { _description = value; }
}
public bool IsReadOnly
{
get { return _isReadOnly; }
set { _isReadOnly = value; }
}
}
Partendo quindi dal prototipo più interessante mi sono ricavato questa classe, che per il momento descrive egreggiamente una proprietà.
public class PropertiesPrototype : List<PropertyPrototype>
{
}
E giusto per non smentirmi questa è la mia collezione.
Nessun commento:
Posta un commento