/*
 * ClassWriter.java
 *
 */

package com.uvigo.tMaestro.SCOCreator.tool.optionGenerator.propertiesWriters;
import com.uvigo.tMaestro.SCOCreator.tool.optionGenerator.PropertyWriter;
import com.uvigo.tMaestro.SCO.options.PropertyType;
import com.uvigo.tMaestro.SCO.options.ObjectFactory;

/**
 * PropertyWriter para la propiedades de la clase java.lang.Class
 * @author raul
 */
public class ClassWriter implements PropertyWriter{
    
    /**
     * Crea una nueva instancia de la clase
     */
    public ClassWriter() {
    }
    
    /**
     * Devuelve la clase correspondiente a java.lang.Class
     */
    public Class getTypeProperty() {
        return java.lang.Class.class;
    }
    
    /**
     * Escribe el objeto oValue (java.lang.Class) a la estructura
     * oProperty.
     * @param oProperty La Propiedad en la que escribir los parametros
     * @param oValue El Objecto java correspondiente a la propiedad
     * @param oFactory La factoria que permite crear las estructuras que seran portadas a .xml
     * @param throws javax.xml.bind.JAXBException SI se produce algun error al crear las estructuras
     */
    public void writeProperty(PropertyType oProperty,Object oValue,ObjectFactory oFactory) throws javax.xml.bind.JAXBException{
        Class oClass = oValue.getClass();
        oProperty.setType("object");
        oProperty.setPropertyClass(oClass.getName());
    }
}

