package com.cheng.bigtalkdesignpatterns.interpreter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.cheng.designpatternstudy.R;
public class BTDPInterpreterActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_btdp_interpreter);
}
public void onClick(View v) {
PlayContext context = new PlayContext();
// 音乐-上海滩
System.out.println("上海滩:");
context.setPlayText("T 500 O 2 E 0.5 G 0.5 A 3 E 0.5 G 0.5 D 3 E 0.5 G 0.5 A 0.5 O 3 C 1 O 2 A 0.5 G 1 C 0.5 E 0.5 D 3 ");
Expression expression = null;
try {
while (context.getPlayText().length() > 0) {
String str = context.getPlayText().substring(0, 1);
switch (str) {
case "O":
expression = new Scale();
break;
case "T":
expression = new Speed();
break;
case "C":
case "D":
case "E":
case "F":
case "G":
case "A":
case "B":
case "P":
expression = new Note();
break;
}
expression.interpret(context);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}