Package controleur

Source Code of controleur.SQCalculator

/**
*
*/
package controleur;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

import tool.Language;
import vue.MotherFrame;

/**
* <p>
* Application to calculate your SQ.</br>
* Use <b>whatthefat</b>'s formula : sq=35*(0.00137*I-ln(U))+240</br>
*
* @author Patrick-Edouard
* </p>
*/
public class SQCalculator {
 
  private final static double var1=35;
  private final static double var2=0.00137;
  private final static double var3=240;
  private final static String xmlPath="listSQ.xml";
  private double sq;
  private Element root;
 
  public SQCalculator()
  {
    this.openSQList();
  }
 
  /**
   *
   * @param unspend The average unspent ressources in the game
   * @param income The average income in the game
   * @return The SQ of this game
   */
  public double calculSQ(double unspend, double income)
  {
    this.sq=SQCalculator.var1*((SQCalculator.var2*income)-Math.log(unspend))+SQCalculator.var3;
    return this.sq;
  }
 
  public void saveSQ(double sq)
  {
    Element thisSQ = new Element("sq");
    thisSQ.setText(sq+"");
    this.root.addContent(thisSQ);
    this.saveXML();
  }
 
  /**
   * <p>
   * <b>Method : saveXML</b></br>
   * Save the XML language file at his path (defined in Language.xmlPath)
   * <p>
   */
  private void saveXML()
  {
     try
     {
        XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
        sortie.output(this.root, new FileOutputStream(SQCalculator.xmlPath));
     }
     catch (java.io.IOException e){}
  }
 
  public double[] getSQ()
  {
    List<Element> list = this.root.getChildren();
    double[] result = new double[list.size()];
    int i=0;
    for(Element tmp : list)
    {
      result[i] = Double.parseDouble(tmp.getText());
      i++;
    }
   
    return result;
  }
 
  /**
   *
   */
  private void openSQList()
  {
    SAXBuilder sxb = new SAXBuilder();
    try {
      this.root = sxb.build(new File(SQCalculator.xmlPath)).getRootElement();
    } catch (JDOMException | IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * <p>
   * The main function, just build a new SQCalculator instance or launch the translator tool with "lang" argument.
   * @param args use "lang" to launch the translator tool.
   * </p>
   */
  public static void main(String[] args) {
   
    if(args.length == 1)
    {
      if(args[0]=="lang")
      {
        Language la = new Language();
        la.editLang();
      }
    }
    new MotherFrame();
  }

}
TOP

Related Classes of controleur.SQCalculator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.