//[C] 2002 Sun Microsystems, Inc.--- public class RunAdapterPattern { public static void main(String [] arguments){ System.out.println("Example for the Adapter pattern"); System.out.println(); System.out.println("This example will demonstrate the Adapter by using the"); System.out.println(" class ContactAdapter to translate from classes written"); System.out.println(" in a foreign language (Chovnatlh and ChovnatlhImpl),"); System.out.println(" enabling their code to satisfy the Contact interface."); System.out.println();
System.out.println("Creating a new ContactAdapter. This will, by extension,"); System.out.println(" create an instance of ChovnatlhImpl which will provide");
System.out.println(" the underlying Contact implementation.");
Contact contact = new ContactAdapter(); System.out.println();
System.out.println("ContactAdapter data has been set. Printing out Contact data."); System.out.println(); System.out.println(contact.toString()); } } interface Contact{ public String getFirstName(); public String getLastName(); public String getTitle(); public String getOrganization();
public void setContact(Chovnatlh newContact);
public void setFirstName(String newFirstName); public void setLastName(String newLastName); public void setTitle(String newTitle);
public void setOrganization(String newOrganization);
} class ContactAdapter implements Contact{ private Chovnatlh contact;
public ContactAdapter(){ contact = new ChovnatlhImpl(); } public ContactAdapter(Chovnatlh newContact){ contact = newContact; }
public String getFirstName(){ return contact.tlhapWa$DIchPong(); } public String getLastName(){ return contact.tlhapQavPong(); } public String getTitle(){ return contact.tlhapPatlh(); } public String getOrganization(){ return contact.tlhapGhom(); }
public void setContact(Chovnatlh newContact){ contact = newContact; } public void setFirstName(String newFirstName){ contact.cherWa$DIchPong(newFirstName); } public void setLastName(String newLastName){
contact.cherQavPong(newLastName); } public void setTitle(String newTitle){ contact.cherPatlh(newTitle); } public void setOrganization(String newOrganization){ contact.cherGhom(newOrganization); }
public String toString(){ return contact.toString(); } }
interface Chovnatlh { public String tlhapWa$DIchPong();
public String tlhapQavPong();
public String tlhapPatlh();
public String tlhapGhom();
public void cherWa$DIchPong(String chu$wa$DIchPong);
public void cherQavPong(String chu$QavPong);
public void cherPatlh(String chu$patlh);
public void cherGhom(String chu$ghom); } //pong = name //wa'DIch = first //Qav = last //patlh = rank (title) //ghom = group (organization) //tlhap = take (get) //cher = set up (set) //chu' = new //chovnatlh = specimen (contact)
class ChovnatlhImpl implements Chovnatlh { private String wa$DIchPong;