-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnalyzer.java
More file actions
151 lines (136 loc) · 4.52 KB
/
Copy pathAnalyzer.java
File metadata and controls
151 lines (136 loc) · 4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package com.legrand.iln;
import java.io.*;
import java.util.*;
import java.net.*;
/* $Id: Analyzer.java,v 1.4.2.1 2004/01/14 16:18:47 legrand Exp legrand $ */
/**
* Progetto ILN
* Copyright (C) 2003 Alessandro Iacuelli
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the license, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
/**
* Classe Analyzer
* Modello di comportamento di un analizzatore generico.<BR>
* Tutti gli analizzatori devono per forza ereditare da questa
* classe.<BR>
* Il Client dichiarera' sempre un puntatore a superclasse,
* cioe' un puntatore ad Analyzer, poi grazie al polimorfismo
* sara' istanziato un analizzatore reale.<br>
* In alternativa si puo' usare questo analizzatore generico.<p>
*
* Tutti i metodi di questo analizzatore sono gusci di metodi
* dell'appropriato oggetto di classe Animatore (o sua
* sottoclasse).<br>
*
*
* @author Alessandro Iacuelli
* @version 1.4 rev 2
* @date 14 gennaio 2004
*/
public class Analyzer
{
/**
* Puntatore alla classe Animatore, che contraddistingue la
* personalità dell'automa.
*/
Animatore generResponse;
/**
* Costruttore con argomenti.<br>
* A seconda del tipo di personalita' richiesta verra'
* istanziato un diverso Animatore.
*
* @param nick nickname dell'automa.
* @param tipo Personalita'.
* @param debug Fissa il livello di debugging.
*/
public Analyzer(String nick, boolean debug) {
generResponse = new Risposte(nick, debug);
}
/**
* Comando di controllo di versione.
*
* @return Array di stringhe contenente l'etichetta della versione.
*/
public String[] version(){
return generResponse.version();
}
/**
* Restituisce il messaggio di inizio del programma.
*
* @return Una stringa contenente il messaggio
*/
public String getMotd() {
return generResponse.getMotd();
}
/**
* Comando di identificazione.
*
* @return Array di stringhe contenente l'identificazione.
*/
public String[] chisei() {
return generResponse.chisono();
}
/**
* Metodo che implementa il cervello dell'automa.<BR>
* E' in grado di generare la risposta ad uno stimolo proveniente
* da una query privata.
*
* @param nick Nickname dello stimolatore
* @param keyPhrase Stimolo
* @param howMuch Numero massimo di righe della reazione
*
* @return howMuch stringhe contenenti la risposta allo stimolo.
*/
public String[] generation(String nick, String keyPhrase, int howMuch){
return generResponse.generation(nick, keyPhrase, howMuch);
}
/**
* Metodo che implementa il cervello pubblico dell'automa.<br>
* E' in grado di generare la risposta ad uno stimolo proveniente
* dal canale IRC.
*
* @param keyPhrase Stimolo
* @param howMuch Numero massimo di righe della reazione.
*
* @return howMuch righe contenenti la risposta allo stimolo.
*/
public String[] generation(String keyPhrase, int howMuch){
return generResponse.generation(keyPhrase, howMuch);
}
/**
* Esegue comando di grammatica.
*
* @param comando Il comando da eseguire
* @param keyPhrase Lo stimolo.
* @param howMuch Numero massimo di righe della reazione
*
* @return howMuch righe contenenti la risposta allo stimolo.
*/
public String[] esegueComando(String comando, String keyPhrase, int howMuch) {
return generResponse.esegueComando(comando, keyPhrase, howMuch);
}
/**
* Gestore del learning dell'automa. Questo metodo viene invocato quando termina
* un singolo learning e c'è da inserire nella base di conoscenza una nuova
* coppia chiave-valore.
*
* @param newKey chiave da inserire.
* @param newPhrase Valore da inserire.
*/
public void learning(String newKey, String newPhrase) {
generResponse.learning(newKey, newPhrase);
}
}