package com.akjava.gwt.html5.client.speechrecognition; import com.akjava.gwt.html5.client.speechrecognition.listeners.SpeechRecognitionEndListener; import com.akjava.gwt.html5.client.speechrecognition.listeners.SpeechRecognitionErrorListener; import com.akjava.gwt.html5.client.speechrecognition.listeners.SpeechRecognitionResultListener; import com.akjava.gwt.html5.client.speechrecognition.listeners.SpeechRecognitionStartListener; public class SpeechRecognitionBuilder { private String lang; private boolean interimResults; private boolean continuous; private int maxAlternatives; private SpeechRecognitionResultListener onResult; private SpeechRecognitionErrorListener onError; private SpeechRecognitionStartListener onStart; private SpeechRecognitionEndListener onEnd; private SpeechRecognitionBuilder(){ } public static SpeechRecognitionBuilder fromLang(String lang){ SpeechRecognitionBuilder builder=new SpeechRecognitionBuilder(); builder.lang=lang; return builder; } public SpeechRecognitionBuilder interimResults(boolean value){ interimResults=value; return this; } public SpeechRecognitionBuilder continuous(boolean value){ continuous=value; return this; } public SpeechRecognitionBuilder maxAlternatives(int maxAlternatives){ this.maxAlternatives=maxAlternatives; return this; } public SpeechRecognitionBuilder onResult(SpeechRecognitionResultListener onResult){ this.onResult=onResult; return this; } public SpeechRecognitionBuilder onError(SpeechRecognitionErrorListener onError){ this.onError=onError; return this; } public SpeechRecognitionBuilder onStart(SpeechRecognitionStartListener onStart){ this.onStart=onStart; return this; } public SpeechRecognitionBuilder onEnd(SpeechRecognitionEndListener onEnd){ this.onEnd=onEnd; return this; } public SpeechRecognition build(){ SpeechRecognition speechRecognition=SpeechRecognition.create(); if(lang!=null){ speechRecognition.setLang(lang); } if(interimResults){ speechRecognition.setInterimResults(interimResults); } if(continuous){ speechRecognition.setContinuous(continuous); } if(maxAlternatives!=0){ speechRecognition.setMaxAlternatives(maxAlternatives); } if(onError!=null){ speechRecognition.setOnError(onError); } if(onResult!=null){ speechRecognition.setOnResult(onResult); } if(onStart!=null){ speechRecognition.setOnStart(onStart); } if(onEnd!=null){ speechRecognition.setOnEnd(onEnd); } return speechRecognition; } }