Salve a tutti. Vi espongo il problema che mi si è presentato. Sto al momento preparando l'esame di programmazione in java e, provando a risolvere un vecchio compito d'esame non capisco come devo affrontare una cosa. Posto il testo dell'esame
Premetto che non chiedo la soluzione dell'esame, ma qualche consiglio su come partire. Il compito consiste nel rendere compilabile e funzionante la classe TestProvider implementando ciò che manca. Ora, mi viene un primo dubbio. Devo implementare la classe WebPage, ma non riesco a capire se la devo implementare come classe interna a Provider o separatamente, e dunque già qua mi blocco e non riesco ad andare avanti perchè non sto trovando lo spunto giusto. Un'altra cosa che non sto capendo è cosa fa in realtà la seguente riga:codice:public class TestProvider { public static void main(String[] args) { //C-- Provider p = Provider.getProvider(); // when asked for a page, returns its url without protocol WebPage page = p.getPage("http://www.microsoft.com"); WebPage page2 = p.getPage("http://www.google.com"); assert "www.microsoft.com".equals(page.content()); assert "www.google.com".equals(page2.content()); assert page2.size() == 14; // C WebPage page3 = p.getPage("http://www.google.com"); assert page3.equals(page2); assert !page3.equals(p.getPage("https://www.google.com")); assert page3.content().equals(p.getPage("https://www.google.com").content()); // B (hint: you can use String.split() ) Provider p2 = Provider.getProvider(Provider.REVERSE); // returns its reversed url assert p2.getPage("http://www.microsoft.com").content().equals("com.microsoft.www"); assert page3.equals(p2.getPage("http://www.google.com")); // B++/A-- p2.enableFirewall(); // by default everything works the same p2.addFirewallRule("http://www."); // if something starts with this, it is not accepted. p2.addFirewallRule("https://www."); p2.addFirewallRule("www."); p2.removeFirewallRule("https://www."); List<String> rules = p2.firewallRules(); assert rules.get(0).equals("http://www."); assert rules.size() == 2; assert p2.firewallEnabled(); assert !p2.isAllowed("http://www.microsoft.com"); // rule 0 does not allow this page assert p2.isAllowed("https://www.microsoft.com"); p2.disableFirewall(); assert !p2.firewallEnabled(); assert p2.isAllowed("http://www.microsoft.com"); // firewall is disabled assert p2.isAllowed("https://www.microsoft.com"); // A++ try { p2.enableFirewall(); // keeps previous rules p2.getPage("http://www.microsoft.com"); // rule 0 does not allow this page assert false; // exception should be thrown instead } catch (NotAcceptedByFirewall e) { assert e.violatedRule() == 0; } } }
Provider p = Provider.getProvider();
Spero di riuscire a cogliere al meglio i vostri preziosi aiuti, Grazie a tutti in anticipo e scusatemi se ho fatto domande banali...

. Posto il testo dell'esame
...
Rispondi quotando