summaryrefslogblamecommitdiffstats
path: root/src/main/java/org/openslx/util/vm/VboxMetaData.java
blob: 0446d2ae6e3e2117a794956f3f4aa1cafd68a5e7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                            
 
                    
                           
                                         
                      
 

                                       




                                                                
 


                                                     
 

                                            
                                                                                                     

                                        
        
                                                                                                                                

                                





                                                     

                             
                                   
                


                                                          
 

                                                              
                 





                                                                                           

         
                                            




                                                                                                    
                                                       
         
 


                                           
                                                                     





                                                  





                                                  




                                                  
                                                                            
         


                                                                                                                   
 
package org.openslx.util.vm;


import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;

import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Virtualizer;


public class VboxMetaData extends VmMetaData
{
	private static final Virtualizer virtualizer = new Virtualizer( "virtualbox", "VirtualBox" );

	private final VboxConfig config;
	
	public VboxMetaData( List<OperatingSystem> osList, File file ) throws IOException, UnsupportedVirtualizerFormatException
	{
		super( osList );

		this.config = new VboxConfig( file );

		init();
	}

	
	private void init() {
		this.config.init();
		
		displayName = config.getDisplayName();
		
		setOs( "virtualbox", config.getOsName() );

		for ( HardDisk hardDisk : config.getHdds() ) {
			hdds.add( hardDisk );
		}
		try {
			WriteToFile();
		} catch ( TransformerFactoryConfigurationError | TransformerException e ) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	// --TODO will be needed later again
	private void WriteToFile() throws TransformerFactoryConfigurationError, TransformerException
	{
		Transformer transformer = TransformerFactory.newInstance().newTransformer();
		StreamResult output = new StreamResult(new File( "output.xml" ));
		Source input = new DOMSource( config.getConfigDoc() );
		transformer.transform( input, output );
	}

	@Override
	public Virtualizer getVirtualizer()
	{
		return new Virtualizer( "virtualbox", "VirtualBox" );
	}

	@Override
	public void enableUsb( boolean enabled )
	{
		// TODO Auto-generated method stub
	}

	@Override
	public void applySettingsForLocalEdit()
	{
		// TODO Auto-generated method stub
	}
	@Override
	public byte[] getFilteredDefinitionArray()
	{
		// TODO Auto-generated method stub
		return config.toString().getBytes( StandardCharsets.UTF_8 );
	}
	
	
	// TODO: the part after getting the byte[] from the Server and doing stuff with it...SoundCard types etc...
}