Javadoc fix

This commit is contained in:
Doug Pedrick 2012-04-27 22:08:58 +00:00
parent ca52cc6612
commit df7ab36b5a

View File

@ -1,5 +1,13 @@
package net.sf.openrocket.preset.xml; package net.sf.openrocket.preset.xml;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.preset.InvalidComponentPresetException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
@ -8,134 +16,131 @@ import java.io.Reader;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.List; import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.preset.InvalidComponentPresetException;
/** /**
* The active manager class that is the entry point for writing *.orc files. * The active manager class that is the entry point for reading and writing *.orc files.
*/ */
public class OpenRocketComponentSaver { public class OpenRocketComponentSaver {
/** /**
* This method marshals an OpenRocketDocument (OR design) to Rocksim-compliant XML. * This method marshals a list of materials and ComponentPresets into an .orc formatted XML string.
* *
* @param theMaterialList the list of materials to be included * @param theMaterialList the list of materials to be included
* @param thePresetList the list of presets to be included * @param thePresetList the list of presets to be included
* *
* @return ORC-compliant XML * @return ORC-compliant XML
* @throws JAXBException *
*/ * @throws JAXBException
public String marshalToOpenRocketComponent(List<Material> theMaterialList, List<ComponentPreset> thePresetList) throws JAXBException { */
public String marshalToOpenRocketComponent(List<Material> theMaterialList, List<ComponentPreset> thePresetList) throws
JAXBException {
JAXBContext binder = JAXBContext.newInstance(OpenRocketComponentDTO.class); JAXBContext binder = JAXBContext.newInstance(OpenRocketComponentDTO.class);
Marshaller marshaller = binder.createMarshaller(); Marshaller marshaller = binder.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
marshaller.marshal(toOpenRocketComponentDTO(theMaterialList, thePresetList), sw); marshaller.marshal(toOpenRocketComponentDTO(theMaterialList, thePresetList), sw);
return sw.toString(); return sw.toString();
} }
/** /**
* This method unmarshals from a Reader that is presumed to be open on an XML file in .orc format. * This method unmarshals from a Reader that is presumed to be open on an XML file in .orc format.
* *
* @param is an open reader; StringBufferInputStream could not be used because it's deprecated and does not handle * @param is an open reader; StringBufferInputStream could not be used because it's deprecated and does not handle UTF
* UTF characters correctly * characters correctly
* *
* @return a list of ComponentPresets * @return a list of ComponentPresets
* *
* @throws InvalidComponentPresetException * @throws InvalidComponentPresetException
* *
*/ */
public List<ComponentPreset> unmarshalFromOpenRocketComponent(Reader is) throws JAXBException, InvalidComponentPresetException { public List<ComponentPreset> unmarshalFromOpenRocketComponent(Reader is) throws JAXBException,
return fromOpenRocketComponent(is).asComponentPresets(); InvalidComponentPresetException {
} return fromOpenRocketComponent(is).asComponentPresets();
}
/** /**
* Write an XML representation of a list of presets. * Write an XML representation of a list of presets.
* *
* @param dest the stream to write the data to * @param dest the stream to write the data to
* @param theMaterialList the list of materials to be included * @param theMaterialList the list of materials to be included
* @param thePresetList the list of presets to be included * @param thePresetList the list of presets to be included
* @throws JAXBException *
* @throws IOException thrown if the stream could not be written * @throws JAXBException
*/ * @throws IOException thrown if the stream could not be written
public void save(OutputStream dest, List<Material> theMaterialList, List<ComponentPreset> thePresetList) throws IOException, JAXBException { */
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(dest, "UTF-8")); public void save(OutputStream dest, List<Material> theMaterialList, List<ComponentPreset> thePresetList) throws
writer.write(marshalToOpenRocketComponent(theMaterialList, thePresetList)); IOException,
writer.flush(); JAXBException {
writer.close(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(dest, "UTF-8"));
} writer.write(marshalToOpenRocketComponent(theMaterialList, thePresetList));
writer.flush();
writer.close();
}
/** /**
* Read from an open Reader instance XML in .orc format and reconstruct an OpenRocketComponentDTO instance. * Read from an open Reader instance XML in .orc format and reconstruct an OpenRocketComponentDTO instance.
* *
* @param is an open Reader; assumed to be opened on a file of XML in .orc format * @param is an open Reader; assumed to be opened on a file of XML in .orc format
* *
* @return the OpenRocketComponentDTO that is a POJO representation of the XML; null if the data could not be read * @return the OpenRocketComponentDTO that is a POJO representation of the XML; null if the data could not be read or
* or was in an invalid format * was in an invalid format
*/ */
private OpenRocketComponentDTO fromOpenRocketComponent(Reader is) throws JAXBException { private OpenRocketComponentDTO fromOpenRocketComponent(Reader is) throws JAXBException {
JAXBContext bind = JAXBContext.newInstance(OpenRocketComponentDTO.class); JAXBContext bind = JAXBContext.newInstance(OpenRocketComponentDTO.class);
Unmarshaller unmarshaller = bind.createUnmarshaller(); Unmarshaller unmarshaller = bind.createUnmarshaller();
return (OpenRocketComponentDTO) unmarshaller.unmarshal(is); return (OpenRocketComponentDTO) unmarshaller.unmarshal(is);
} }
/** /**
* Root conversion method. It iterates over all subcomponents. * Root conversion method. It iterates over all subcomponents.
* *
* @return a corresponding ORC representation * @return a corresponding ORC representation
*/ */
private OpenRocketComponentDTO toOpenRocketComponentDTO(List<Material> theMaterialList, List<ComponentPreset> thePresetList) { private OpenRocketComponentDTO toOpenRocketComponentDTO(List<Material> theMaterialList, List<ComponentPreset> thePresetList) {
OpenRocketComponentDTO rsd = new OpenRocketComponentDTO(); OpenRocketComponentDTO rsd = new OpenRocketComponentDTO();
if (theMaterialList != null) { if (theMaterialList != null) {
for (Material material : theMaterialList) { for (Material material : theMaterialList) {
rsd.addMaterial(new MaterialDTO(material)); rsd.addMaterial(new MaterialDTO(material));
} }
} }
if (thePresetList != null) { if (thePresetList != null) {
for (ComponentPreset componentPreset : thePresetList) { for (ComponentPreset componentPreset : thePresetList) {
rsd.addComponent(toComponentDTO(componentPreset)); rsd.addComponent(toComponentDTO(componentPreset));
} }
} }
return rsd; return rsd;
} }
/** /**
* Factory method that maps a preset to the corresponding DTO handler. * Factory method that maps a preset to the corresponding DTO handler.
* *
* @param thePreset the preset for which a handler will be found * @param thePreset the preset for which a handler will be found
* *
* @return a subclass of BaseComponentDTO that can be used for marshalling/unmarshalling a preset; null if not found * @return a subclass of BaseComponentDTO that can be used for marshalling/unmarshalling a preset; null if not found
* for the preset type * for the preset type
*/ */
private static BaseComponentDTO toComponentDTO(ComponentPreset thePreset) { private static BaseComponentDTO toComponentDTO(ComponentPreset thePreset) {
switch (thePreset.getType()) { switch (thePreset.getType()) {
case BODY_TUBE: case BODY_TUBE:
return new BodyTubeDTO(thePreset); return new BodyTubeDTO(thePreset);
case TUBE_COUPLER: case TUBE_COUPLER:
return new TubeCouplerDTO(thePreset); return new TubeCouplerDTO(thePreset);
case NOSE_CONE: case NOSE_CONE:
return new NoseConeDTO(thePreset); return new NoseConeDTO(thePreset);
case TRANSITION: case TRANSITION:
return new TransitionDTO(thePreset); return new TransitionDTO(thePreset);
case BULK_HEAD: case BULK_HEAD:
return new BulkHeadDTO(thePreset); return new BulkHeadDTO(thePreset);
case CENTERING_RING: case CENTERING_RING:
return new CenteringRingDTO(thePreset); return new CenteringRingDTO(thePreset);
case ENGINE_BLOCK: case ENGINE_BLOCK:
return new EngineBlockDTO(thePreset); return new EngineBlockDTO(thePreset);
} }
return null; return null;
} }
} }