01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */package org.superbiz.telephone;
17:
18: import javax.ejb.Remote;
19: import javax.ejb.Stateful;
20: import java.util.ArrayList;
21: import java.util.List;
22:
23: @Remote
24: @Stateful
25: public class TelephoneBean implements Telephone {
26:
27: private static final String[] answers = { "How nice.",
28: "Oh, of course.", "Interesting.", "Really?", "No.",
29: "Definitely.", "I wondered about that.", "Good idea.",
30: "You don't say!", };
31:
32: private List<String> conversation = new ArrayList<String>();
33:
34: public void speak(String words) {
35: conversation.add(words);
36: }
37:
38: public String listen() {
39: if (conversation.size() == 0) {
40: return "Nothing has been said";
41: }
42:
43: String lastThingSaid = conversation
44: .get(conversation.size() - 1);
45: return answers[Math.abs(lastThingSaid.hashCode())
46: % answers.length];
47: }
48: }
49: //END SNIPPET: code
|