2010-03-05 6 views
0

J'ai une classe qui a constructeur:Castor cartographie des tableaux

public ContEmpirical(double xs[], double fs[]) { 
    Check.check(xs.length == fs.length + 1 && fs.length > 0, 
      "Empirical distribution array mismatch"); 
    this.xs = new double[xs.length]; 
    this.xs = xs; 
    this.cs = new double[xs.length]; 
    double fTotal = 0.0; 
    for (int i = 0; i < fs.length; i++) 
     fTotal += fs[i]; 
    cs[0] = 0; 
    for (int i = 0; i < fs.length; i++) 
     cs[i + 1] = cs[i] + fs[i]/fTotal; 
} 

Attributs:

private double xs[], cs[]; 
    private double fs[]; // this attribute i added to make castors life easier since it always wants to map constructor arg to class attribute. 

Le fichier de mappage dont je dispose:

<class name="tools.ContEmpirical"> 
     <description xmlns=""> 
      Mapping for class tools.ContEmpirical 
     </description> 

     <map-to xml="ContEmpirical"/> 

     <field name="xs" type="double" collection="array" set-method="%1" get-method="getXs" required="true"> 
      <bind-xml node="attribute"/> 
     </field> 

     <field name="fs" type="double" collection="array" set-method="%2" get-method="getFs" required="true"> 
      <bind-xml node="attribute"/> 
     </field></class> 

Pourtant, lorsque je tente pour marshall une instance de ContEmpirical je reçois ce XML:

<ContEmpirical xs="0.2 0.3 0.4 0.8"/> 

Quand vraiment que je devrais obtenir quelque chose comme ceci:

<ContEmpirical xs="0.2 0.3 0.4 0.8" fs="0.2 0.3 0.4 0.8"/> 

Y at-il quelque chose que je suis absent de la cartographie?

Répondre

0

Pouvez-vous poster la classe ContEmpirical? Est-ce que vous initialisez le tableau fs à quelque chose dans le domaine?

MISE À JOUR: Il me manque quelque chose. Vous avez dit que vous "attendez" fs dans le fichier XML de sortie. Mais la classe a-t-elle un attribut nommé fs? A partir du code constructeur que vous avez posté, fs n'est jamais affecté en interne (il existe un paramètre appelé fs qui est utilisé pour calculer cs). Donc vraiment, votre objet n'a qu'une variable xs et cs et dans votre xml si vous déclarez un mapping pour cs, vous devriez obtenir cs.

+0

Ajouté au message d'origine. – Babyangle86

+0

Regardez le deuxième code de blurb, j'ai fait un attribut avec des getters et des setters. – Babyangle86