import java.util.Hashtable; public class Network { private static Network theInstance; private Hashtable phones; static Network instance() { if (Network.theInstance == null) { Network.theInstance = new Network(); } return Network.theInstance; } private Network() { phones = new Hashtable(); } void register(Phone p) throws NumberInUseException { String number = p.getNumber(); if (this.phones.containsKey(number)) { throw new NumberInUseException(); } else { this.phones.put(number, p); } } void deliverText(String number, String message) throws MailboxFullException, NonWorkingNumberException { if (!this.phones.containsKey(number)) { throw new NonWorkingNumberException(); } else { Phone p = this.phones.get(number); p.acceptTextFromNetwork(message); } } }