StimVinsh / xdocreport

Automatically exported from code.google.com/p/xdocreport
0 stars 0 forks source link

Load/Save FieldsMetada #38

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Develop Tools to load and save FieldsMetada : 

1) Load FieldsMetada

1.1) Load FieldsMetada from XML

Ex: 
-----------------------------
<fields>
  <field name="developers.Name" type="list" />
...
-----------------------------

-----------------------------
FieldsMetada metadata = new FieldsMetada();
InputStream xmlSource = .....
metadata.load(xmlSource);
-----------------------------

will be the same thing than: 

-----------------------------
FieldsMetada metadata = new FieldsMetada();
metadata.addFieldAsList("developers.Name");
-----------------------------

1.2) Load  FieldsMetada from Java model

-----------------------------
FieldsMetada metadata = new FieldsMetada ();
metada.load("developers", Collection<Developer>.class);
-----------------------------

will be the same thing than: 

-----------------------------
FieldsMetada metadata = new FieldsMetada();
metadata.addFieldAsList("developers.Name");
-----------------------------

2) Save FieldsMetada

Serialize FieldsMetada in a XML.

Original issue reported on code.google.com by angelo.z...@gmail.com on 14 Sep 2011 at 12:10

GoogleCodeExporter commented 8 years ago
Hi Amine,

I have refactored a lot FieldsMetadata to support 

1) XML Serializer (Load FieldsMetadata from XML file and Save FieldsMetadata to 
XML file)
2) Class Serializer to load FieldsMetadata from Class by using Reflection.

For the 1), 
fr.opensagres.xdocreport.template.formatter.FieldsMetadataXMLSerializer class 
manage thoses features. You have test case at 
fr.opensagres.xdocreport.template.formatter.FieldsMetadataXMLSerializerTestCase.

FieldsMetadataXMLSerializerTestCase#save is already implemented. 
FieldsMetadataXMLSerializerTestCase#load must be implemented with SAX.

For the 2, FreemarkerFieldsMetadataClassSerializer and 
VelocityFieldsMetadataClassSerializer manage that. Each template engien must 
implement serializer because for Velocity synatx is liek "developers.Name" and 
for Freemarker "developers.name". The FreemarkerFieldsMetadataClassSerializer 
and VelocityFieldsMetadataClassSerializer extends 
AbstractFieldsMetadataClassSerializer to set commons Java code.

For teh JUnit you have VelocityFieldsMetadataClassSerializertestCase and 
FreemarkerFieldsMetadataClassSerializerTestCase  

In order to that Junit don't crash for the moment I have populate 
fieldsMetadata with Java code, so once  it's implemented, you can remove Java 
code between START/END. Ex : 

--------------------------------------------
// START remove that once it's implemented
fieldsMetadata.addFieldAsList("developer.Name");
// START remove that once it's implemented
--------------------------------------------

Don't hesitate to contact me if you have any questions. Thank a lot Amine.

Regards Angelo

Original comment by angelo.z...@gmail.com on 3 Oct 2011 at 3:02

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago

Original comment by angelo.z...@gmail.com on 19 Jan 2012 at 11:49