Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tkp.fe.uni_lj.si;
- public class Kalkulator {
- private Stanje stanje = Stanje.ST1;
- private enum Stanje {
- ST1, ST2, OP
- }
- private float prvoStevilo, drugoStevilo;
- private String operator;
- private String vhodniSignal, izhodniSignal;
- private static final String NAPAKA = "napaka";
- private static final String RESET = "reset";
- private static final String BREZ_ODGOVORA = "";
- private static long TRAJANJE_CASOVNIKA_V_MS = 10000;
- private static long casZadnjegaSignalaVms = -1;
- public String obravnavaj(String vhod) {
- vhodniSignal = vhod;
- izvediPrehod();
- return izhodniSignal;
- }
- private void izvediPrehod() {
- // preverjanje casovnika?
- if(!seJeCasovnikIztekel()) {
- switch(stanje) {
- case ST1:
- prehodIzST1();
- break;
- case OP:
- prehodIzOP();
- break;
- case ST2:
- prehodIzST2();
- break;
- }
- }else {
- reset();
- }
- casZadnjegaSignalaVms = System.currentTimeMillis();
- }
- private boolean seJeCasovnikIztekel() {
- if(casZadnjegaSignalaVms!=-1 && System.currentTimeMillis() - casZadnjegaSignalaVms > TRAJANJE_CASOVNIKA_V_MS) {
- return true;
- }
- else {
- return false;
- }
- }
- private void prehodIzST1(){
- if(Orodja.jeSignalStevilo(vhodniSignal)) {
- prvoStevilo = Float.parseFloat(vhodniSignal);
- stanje = Stanje.OP;
- izhodniSignal=BREZ_ODGOVORA;
- }else {
- izhodniSignal=NAPAKA;
- }
- }
- private void prehodIzOP(){
- if(Orodja.jeSignalOperator(vhodniSignal)) {
- operator = vhodniSignal;
- stanje = Stanje.ST2;
- izhodniSignal=BREZ_ODGOVORA;
- }else {
- izhodniSignal=NAPAKA;
- }
- }
- private void prehodIzST2(){
- if(Orodja.jeSignalStevilo(vhodniSignal)) {
- drugoStevilo = Float.parseFloat(vhodniSignal);
- stanje = Stanje.ST1;
- izhodniSignal=Orodja.izracunaj(prvoStevilo, drugoStevilo, operator);
- }else {
- izhodniSignal=NAPAKA;
- }
- }
- private void reset() {
- stanje = Stanje.ST1;
- izhodniSignal = RESET;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement