<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FDesign_Pattern%2FBuilder_Pattern</id>
		<title>Java/Design Pattern/Builder Pattern - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FDesign_Pattern%2FBuilder_Pattern"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Design_Pattern/Builder_Pattern&amp;action=history"/>
		<updated>2026-04-22T05:04:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Design_Pattern/Builder_Pattern&amp;diff=7835&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Design_Pattern/Builder_Pattern&amp;diff=7835&amp;oldid=prev"/>
				<updated>2010-06-01T06:51:03Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:51, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Design_Pattern/Builder_Pattern&amp;diff=7834&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Design_Pattern/Builder_Pattern&amp;diff=7834&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Builder Pattern - Example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Software Architecture Design Patterns in Java&lt;br /&gt;
by Partha Kuchana &lt;br /&gt;
Auerbach Publications&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.GridBagConstraints;&lt;br /&gt;
import java.awt.GridBagLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JComboBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;&lt;br /&gt;
public class SearchManager extends JFrame {&lt;br /&gt;
  public static final String GET_SQL = &amp;quot;Get SQL&amp;quot;;&lt;br /&gt;
  public static final String EXIT = &amp;quot;Exit&amp;quot;;&lt;br /&gt;
  public static final String CANDIDATE_SRCH = &amp;quot;Candidate Search&amp;quot;;&lt;br /&gt;
  public static final String EMPLOYER_SRCH = &amp;quot;Employer Search&amp;quot;;&lt;br /&gt;
  public static final String BLANK = &amp;quot;&amp;quot;;&lt;br /&gt;
  private JComboBox cmbSearchType;&lt;br /&gt;
  private JPanel pSearchCriteria;&lt;br /&gt;
  private JTextArea txtSQL;&lt;br /&gt;
  public SearchManager() throws Exception {&lt;br /&gt;
    super(&amp;quot;Builder Pattern - Example&amp;quot;);&lt;br /&gt;
    // Create controls&lt;br /&gt;
    cmbSearchType = new JComboBox();&lt;br /&gt;
    txtSQL = new JTextArea(&amp;quot; The SQL statement will be displayed here.&amp;quot;, 5,&lt;br /&gt;
        25);&lt;br /&gt;
    txtSQL.setFont(new Font(&amp;quot;Serif&amp;quot;, Font.ITALIC, 12));&lt;br /&gt;
    txtSQL.setLineWrap(true);&lt;br /&gt;
    txtSQL.setWrapStyleWord(true);&lt;br /&gt;
    pSearchCriteria = new JPanel();&lt;br /&gt;
    cmbSearchType.addItem(SearchManager.BLANK);&lt;br /&gt;
    cmbSearchType.addItem(SearchManager.CANDIDATE_SRCH);&lt;br /&gt;
    cmbSearchType.addItem(SearchManager.EMPLOYER_SRCH);&lt;br /&gt;
    //Create Labels&lt;br /&gt;
    JLabel lblSearchType = new JLabel(&amp;quot;Search:&amp;quot;);&lt;br /&gt;
    JLabel lblWhereClause = new JLabel(&amp;quot;SQL:&amp;quot;);&lt;br /&gt;
    JLabel lblSearchCriteria = new JLabel(&amp;quot;Search Criteria:&amp;quot;);&lt;br /&gt;
    //Create the open button&lt;br /&gt;
    JButton btnGetWhereClause = new JButton(SearchManager.GET_SQL);&lt;br /&gt;
    btnGetWhereClause.setMnemonic(KeyEvent.VK_G);&lt;br /&gt;
    JButton btnExit = new JButton(SearchManager.EXIT);&lt;br /&gt;
    btnExit.setMnemonic(KeyEvent.VK_X);&lt;br /&gt;
    buttonHandler vf = new buttonHandler(this);&lt;br /&gt;
    btnGetWhereClause.addActionListener(vf);&lt;br /&gt;
    btnExit.addActionListener(vf);&lt;br /&gt;
    cmbSearchType.addActionListener(vf);&lt;br /&gt;
    //For layout purposes, put the buttons in a separate panel&lt;br /&gt;
    JPanel buttonPanel = new JPanel();&lt;br /&gt;
    //****************************************************&lt;br /&gt;
    GridBagLayout gridbag = new GridBagLayout();&lt;br /&gt;
    buttonPanel.setLayout(gridbag);&lt;br /&gt;
    GridBagConstraints gbc = new GridBagConstraints();&lt;br /&gt;
    buttonPanel.add(lblSearchType);&lt;br /&gt;
    buttonPanel.add(cmbSearchType);&lt;br /&gt;
    buttonPanel.add(lblSearchCriteria);&lt;br /&gt;
    buttonPanel.add(pSearchCriteria);&lt;br /&gt;
    buttonPanel.add(lblWhereClause);&lt;br /&gt;
    buttonPanel.add(txtSQL);&lt;br /&gt;
    buttonPanel.add(btnGetWhereClause);&lt;br /&gt;
    buttonPanel.add(btnExit);&lt;br /&gt;
    gbc.insets.top = 5;&lt;br /&gt;
    gbc.insets.bottom = 5;&lt;br /&gt;
    gbc.insets.left = 5;&lt;br /&gt;
    gbc.insets.right = 5;&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(lblSearchType, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(cmbSearchType, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 1;&lt;br /&gt;
    gridbag.setConstraints(lblSearchCriteria, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 2;&lt;br /&gt;
    gridbag.setConstraints(pSearchCriteria, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 3;&lt;br /&gt;
    gridbag.setConstraints(lblWhereClause, gbc);&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.gridwidth = 3;&lt;br /&gt;
    gbc.gridheight = 5;&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 3;&lt;br /&gt;
    gridbag.setConstraints(txtSQL, gbc);&lt;br /&gt;
    gbc.gridwidth = 1;&lt;br /&gt;
    gbc.gridheight = 1;&lt;br /&gt;
    gbc.anchor = GridBagConstraints.EAST;&lt;br /&gt;
    gbc.insets.left = 2;&lt;br /&gt;
    gbc.insets.right = 2;&lt;br /&gt;
    gbc.insets.top = 40;&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 8;&lt;br /&gt;
    gridbag.setConstraints(btnGetWhereClause, gbc);&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 8;&lt;br /&gt;
    gridbag.setConstraints(btnExit, gbc);&lt;br /&gt;
    //****************************************************&lt;br /&gt;
    //Add the buttons and the log to the frame&lt;br /&gt;
    Container contentPane = getContentPane();&lt;br /&gt;
    contentPane.add(buttonPanel, BorderLayout.CENTER);&lt;br /&gt;
    try {&lt;br /&gt;
      UIManager.setLookAndFeel(new WindowsLookAndFeel());&lt;br /&gt;
      SwingUtilities.updateComponentTreeUI(SearchManager.this);&lt;br /&gt;
    } catch (Exception ex) {&lt;br /&gt;
      System.out.println(ex);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void setSQL(String str) {&lt;br /&gt;
    txtSQL.setText(str);&lt;br /&gt;
  }&lt;br /&gt;
  public String getSearchType() {&lt;br /&gt;
    return (String) cmbSearchType.getSelectedItem();&lt;br /&gt;
  }&lt;br /&gt;
  public JComboBox getSearchTypeCtrl() {&lt;br /&gt;
    return cmbSearchType;&lt;br /&gt;
  }&lt;br /&gt;
  public void displayNewUI(JPanel panel) {&lt;br /&gt;
    pSearchCriteria.removeAll();&lt;br /&gt;
    pSearchCriteria.add(panel);&lt;br /&gt;
    pSearchCriteria.validate();&lt;br /&gt;
    validate();&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    JFrame frame = new SearchManager();&lt;br /&gt;
    frame.addWindowListener(new WindowAdapter() {&lt;br /&gt;
      public void windowClosing(WindowEvent e) {&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    //frame.pack();&lt;br /&gt;
    frame.setSize(450, 400);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class buttonHandler implements ActionListener {&lt;br /&gt;
  SearchManager manager;&lt;br /&gt;
  UIBuilder builder;&lt;br /&gt;
  public void actionPerformed(ActionEvent e) {&lt;br /&gt;
    if (e.getActionCommand().equals(SearchManager.EXIT)) {&lt;br /&gt;
      System.exit(1);&lt;br /&gt;
    }&lt;br /&gt;
    if (e.getActionCommand().equals(SearchManager.GET_SQL)) {&lt;br /&gt;
      manager.setSQL(builder.getSQL());&lt;br /&gt;
    }&lt;br /&gt;
    if (e.getSource() == manager.getSearchTypeCtrl()) {&lt;br /&gt;
      String selection = manager.getSearchType();&lt;br /&gt;
      if (selection.equals(&amp;quot;&amp;quot;) == false) {&lt;br /&gt;
        BuilderFactory factory = new BuilderFactory();&lt;br /&gt;
        //create an appropriate builder instance&lt;br /&gt;
        builder = factory.getUIBuilder(selection);&lt;br /&gt;
        //configure the director with the builder&lt;br /&gt;
        UIDirector director = new UIDirector(builder);&lt;br /&gt;
        //director invokes different builder&lt;br /&gt;
        // methods&lt;br /&gt;
        director.build();&lt;br /&gt;
        //get the final build object&lt;br /&gt;
        JPanel UIObj = builder.getSearchUI();&lt;br /&gt;
        manager.displayNewUI(UIObj);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public buttonHandler() {&lt;br /&gt;
  }&lt;br /&gt;
  public buttonHandler(SearchManager inManager) {&lt;br /&gt;
    manager = inManager;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyUtil {&lt;br /&gt;
  public static String handleRecordLength(String str, int len) {&lt;br /&gt;
    int i;&lt;br /&gt;
    String retStr = &amp;quot;&amp;quot;;&lt;br /&gt;
    if (str.length() &amp;gt; len) {&lt;br /&gt;
      retStr = str.substring(0, len);&lt;br /&gt;
    } else {&lt;br /&gt;
      i = len - str.length();&lt;br /&gt;
      for (int j = 0; j &amp;lt; i; j++) {&lt;br /&gt;
        str = str + &amp;quot; &amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      retStr = str;&lt;br /&gt;
    }&lt;br /&gt;
    return retStr;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class BuilderFactory {&lt;br /&gt;
  public UIBuilder getUIBuilder(String str) {&lt;br /&gt;
    UIBuilder builder = null;&lt;br /&gt;
    if (str.equals(SearchManager.CANDIDATE_SRCH)) {&lt;br /&gt;
      builder = new CandSrchBuilder();&lt;br /&gt;
    } else if (str.equals(SearchManager.EMPLOYER_SRCH)) {&lt;br /&gt;
      builder = new EmpSrchBuilder();&lt;br /&gt;
    }&lt;br /&gt;
    return builder;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
abstract class UIBuilder {&lt;br /&gt;
  protected JPanel searchUI;&lt;br /&gt;
  public abstract void addUIControls();&lt;br /&gt;
  public abstract void initialize();&lt;br /&gt;
  public abstract String getSQL();&lt;br /&gt;
  public JPanel getSearchUI() {&lt;br /&gt;
    return searchUI;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class UIDirector {&lt;br /&gt;
  private UIBuilder builder;&lt;br /&gt;
  public UIDirector(UIBuilder bldr) {&lt;br /&gt;
    builder = bldr;&lt;br /&gt;
  }&lt;br /&gt;
  public void build() {&lt;br /&gt;
    builder.addUIControls();&lt;br /&gt;
    builder.initialize();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class EmpSrchBuilder extends UIBuilder {&lt;br /&gt;
  JLabel lblUserName = new JLabel(&amp;quot;Name :&amp;quot;);&lt;br /&gt;
  private JTextField txtUserName = new JTextField(15);&lt;br /&gt;
  private JTextField txtCity = new JTextField(15);&lt;br /&gt;
  private JTextField txtRenewal = new JTextField(10);&lt;br /&gt;
  public void addUIControls() {&lt;br /&gt;
    searchUI = new JPanel();&lt;br /&gt;
    JLabel lblUserName = new JLabel(&amp;quot;Name :&amp;quot;);&lt;br /&gt;
    JLabel lblCity = new JLabel(&amp;quot;City:&amp;quot;);&lt;br /&gt;
    JLabel lblRenewal = new JLabel(&amp;quot;Membership Renewal :&amp;quot;);&lt;br /&gt;
    GridBagLayout gridbag = new GridBagLayout();&lt;br /&gt;
    searchUI.setLayout(gridbag);&lt;br /&gt;
    GridBagConstraints gbc = new GridBagConstraints();&lt;br /&gt;
    searchUI.add(lblUserName);&lt;br /&gt;
    searchUI.add(txtUserName);&lt;br /&gt;
    searchUI.add(lblCity);&lt;br /&gt;
    searchUI.add(txtCity);&lt;br /&gt;
    searchUI.add(lblRenewal);&lt;br /&gt;
    searchUI.add(txtRenewal);&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.insets.top = 5;&lt;br /&gt;
    gbc.insets.bottom = 5;&lt;br /&gt;
    gbc.insets.left = 5;&lt;br /&gt;
    gbc.insets.right = 5;&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(lblUserName, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 1;&lt;br /&gt;
    gridbag.setConstraints(lblCity, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 2;&lt;br /&gt;
    gridbag.setConstraints(lblRenewal, gbc);&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(txtUserName, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 1;&lt;br /&gt;
    gridbag.setConstraints(txtCity, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 2;&lt;br /&gt;
    gridbag.setConstraints(txtRenewal, gbc);&lt;br /&gt;
  }&lt;br /&gt;
  public void initialize() {&lt;br /&gt;
    Calendar cal = Calendar.getInstance();&lt;br /&gt;
    cal.setTime(new java.util.Date());&lt;br /&gt;
    txtUserName.setText(&amp;quot;Enter UserName Here&amp;quot;);&lt;br /&gt;
    txtRenewal.setText((cal.get(Calendar.MONTH) + 1) + &amp;quot;/&amp;quot;&lt;br /&gt;
        + cal.get(Calendar.DATE) + &amp;quot;/&amp;quot; + cal.get(Calendar.YEAR));&lt;br /&gt;
  }&lt;br /&gt;
  public String getSQL() {&lt;br /&gt;
    return (&amp;quot;Select * from Employer where Username=&amp;quot;&amp;quot;&lt;br /&gt;
        + txtUserName.getText() + &amp;quot;&amp;quot;&amp;quot; + &amp;quot; and City=&amp;quot;&amp;quot;&lt;br /&gt;
        + txtCity.getText() + &amp;quot;&amp;quot; and DateRenewal=&amp;quot;&amp;quot;&lt;br /&gt;
        + txtRenewal.getText() + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class CandSrchBuilder extends UIBuilder {&lt;br /&gt;
  private JTextField txtUserName = new JTextField(15);&lt;br /&gt;
  private JTextField txtSkill = new JTextField(10);&lt;br /&gt;
  private JComboBox cmbExperience = new JComboBox();&lt;br /&gt;
  public void addUIControls() {&lt;br /&gt;
    searchUI = new JPanel();&lt;br /&gt;
    JLabel lblUserName = new JLabel(&amp;quot;Name :&amp;quot;);&lt;br /&gt;
    JLabel lblExperienceRange = new JLabel(&amp;quot;Experience(min Yrs.):&amp;quot;);&lt;br /&gt;
    JLabel lblSkill = new JLabel(&amp;quot;Skill :&amp;quot;);&lt;br /&gt;
    cmbExperience.addItem(&amp;quot;&amp;lt;5&amp;quot;);&lt;br /&gt;
    cmbExperience.addItem(&amp;quot;&amp;gt;5&amp;quot;);&lt;br /&gt;
    GridBagLayout gridbag = new GridBagLayout();&lt;br /&gt;
    searchUI.setLayout(gridbag);&lt;br /&gt;
    GridBagConstraints gbc = new GridBagConstraints();&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    searchUI.add(lblUserName);&lt;br /&gt;
    searchUI.add(txtUserName);&lt;br /&gt;
    searchUI.add(lblExperienceRange);&lt;br /&gt;
    searchUI.add(cmbExperience);&lt;br /&gt;
    searchUI.add(lblSkill);&lt;br /&gt;
    searchUI.add(txtSkill);&lt;br /&gt;
    gbc.insets.top = 5;&lt;br /&gt;
    gbc.insets.bottom = 5;&lt;br /&gt;
    gbc.insets.left = 5;&lt;br /&gt;
    gbc.insets.right = 5;&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(lblUserName, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 1;&lt;br /&gt;
    gridbag.setConstraints(lblExperienceRange, gbc);&lt;br /&gt;
    gbc.gridx = 0;&lt;br /&gt;
    gbc.gridy = 2;&lt;br /&gt;
    gridbag.setConstraints(lblSkill, gbc);&lt;br /&gt;
    gbc.anchor = GridBagConstraints.WEST;&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 0;&lt;br /&gt;
    gridbag.setConstraints(txtUserName, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 1;&lt;br /&gt;
    gridbag.setConstraints(cmbExperience, gbc);&lt;br /&gt;
    gbc.gridx = 1;&lt;br /&gt;
    gbc.gridy = 2;&lt;br /&gt;
    gridbag.setConstraints(txtSkill, gbc);&lt;br /&gt;
  }&lt;br /&gt;
  public void initialize() {&lt;br /&gt;
    txtUserName.setText(&amp;quot;Enter UserName Here&amp;quot;);&lt;br /&gt;
    txtSkill.setText(&amp;quot;Internet Tech&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public String getSQL() {&lt;br /&gt;
    String experience = (String) cmbExperience.getSelectedItem();&lt;br /&gt;
    return (&amp;quot;Select * from Candidate where Username=&amp;quot;&amp;quot;&lt;br /&gt;
        + txtUserName.getText() + &amp;quot;&amp;quot; and Experience &amp;quot; + experience&lt;br /&gt;
        + &amp;quot; and Skill=&amp;quot;&amp;quot; + txtSkill.getText() + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Builder Pattern in Java ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//[C] 2002 Sun Microsystems, Inc.---&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
public class RunBuilderPattern {&lt;br /&gt;
    private static Calendar dateCreator = Calendar.getInstance();&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String [] arguments){&lt;br /&gt;
        Appointment appt = null;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Example for the Builder pattern&amp;quot;);&lt;br /&gt;
        System.out.println();&lt;br /&gt;
        System.out.println(&amp;quot;This example demonstrates the use of the Builder&amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;pattern to create Appointment objects for the PIM.&amp;quot;);&lt;br /&gt;
        System.out.println();&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Creating a Scheduler for the example.&amp;quot;);&lt;br /&gt;
        Scheduler pimScheduler = new Scheduler();&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Creating an AppointmentBuilder for the example.&amp;quot;);&lt;br /&gt;
        System.out.println();&lt;br /&gt;
        AppointmentBuilder apptBuilder = new AppointmentBuilder();&lt;br /&gt;
        try{&lt;br /&gt;
            System.out.println(&amp;quot;Creating a new Appointment with an AppointmentBuilder&amp;quot;);&lt;br /&gt;
            appt = pimScheduler.createAppointment(&lt;br /&gt;
                apptBuilder, createDate(2066, 9, 22, 12, 30),&lt;br /&gt;
                null, &amp;quot;Trek convention&amp;quot;, new LocationImpl(&amp;quot;Fargo, ND&amp;quot;),&lt;br /&gt;
                createAttendees(4));&lt;br /&gt;
            System.out.println(&amp;quot;Successfully created an Appointment.&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Appointment information:&amp;quot;);&lt;br /&gt;
            System.out.println(appt);&lt;br /&gt;
            System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
        catch (InformationRequiredException exc){&lt;br /&gt;
            printExceptions(exc);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Creating a MeetingBuilder for the example.&amp;quot;);&lt;br /&gt;
        MeetingBuilder mtgBuilder = new MeetingBuilder();&lt;br /&gt;
        try{&lt;br /&gt;
            System.out.println(&amp;quot;Creating a new Appointment with a MeetingBuilder&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;(notice that the same create arguments will produce&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot; an exception, since the MeetingBuilder enforces a&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot; mandatory end date)&amp;quot;);&lt;br /&gt;
            appt = pimScheduler.createAppointment(&lt;br /&gt;
                mtgBuilder, createDate(2066, 9, 22, 12, 30),&lt;br /&gt;
                null, &amp;quot;Trek convention&amp;quot;, new LocationImpl(&amp;quot;Fargo, ND&amp;quot;),&lt;br /&gt;
                createAttendees(4));&lt;br /&gt;
            System.out.println(&amp;quot;Successfully created an Appointment.&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Appointment information:&amp;quot;);&lt;br /&gt;
            System.out.println(appt);&lt;br /&gt;
            System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
        catch (InformationRequiredException exc){&lt;br /&gt;
            printExceptions(exc);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Creating a new Appointment with a MeetingBuilder&amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;(This time, the MeetingBuilder will provide an end date)&amp;quot;);&lt;br /&gt;
        try{&lt;br /&gt;
            appt = pimScheduler.createAppointment(&lt;br /&gt;
                mtgBuilder,&lt;br /&gt;
                createDate(2002, 4, 1, 10, 00),&lt;br /&gt;
                createDate(2002, 4, 1, 11, 30),&lt;br /&gt;
                &amp;quot;OOO Meeting&amp;quot;,&lt;br /&gt;
                new LocationImpl(&amp;quot;Butte, MT&amp;quot;),&lt;br /&gt;
                createAttendees(2));&lt;br /&gt;
            System.out.println(&amp;quot;Successfully created an Appointment.&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Appointment information:&amp;quot;);&lt;br /&gt;
            System.out.println(appt);&lt;br /&gt;
            System.out.println();&lt;br /&gt;
        }&lt;br /&gt;
        catch (InformationRequiredException exc){&lt;br /&gt;
            printExceptions(exc);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static Date createDate(int year, int month, int day, int hour, int minute){&lt;br /&gt;
        dateCreator.set(year, month, day, hour, minute);&lt;br /&gt;
        return dateCreator.getTime();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static ArrayList createAttendees(int numberToCreate){&lt;br /&gt;
        ArrayList group = new ArrayList();&lt;br /&gt;
        for (int i = 0; i &amp;lt; numberToCreate; i++){&lt;br /&gt;
            group.add(new ContactImpl(&amp;quot;John&amp;quot;, getLastName(i), &amp;quot;Employee (non-exempt)&amp;quot;, &amp;quot;Yoyodyne Corporation&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
        return group;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static String getLastName(int index){&lt;br /&gt;
        String name = &amp;quot;&amp;quot;;&lt;br /&gt;
        switch (index % 6){&lt;br /&gt;
            case 0: name = &amp;quot;Worfin&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
            case 1: name = &amp;quot;Smallberries&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
            case 2: name = &amp;quot;Bigbootee&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
            case 3: name = &amp;quot;Haugland&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
            case 4: name = &amp;quot;Maassen&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
            case 5: name = &amp;quot;Sterling&amp;quot;;&lt;br /&gt;
                break;&lt;br /&gt;
        }&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static void printExceptions(InformationRequiredException exc){&lt;br /&gt;
        int statusCode = exc.getInformationRequired();&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;Unable to create Appointment: additional information is required&amp;quot;);&lt;br /&gt;
        if ((statusCode &amp;amp; InformationRequiredException.START_DATE_REQUIRED) &amp;gt; 0){&lt;br /&gt;
            System.out.println(&amp;quot;  A start date is required for this appointment to be complete.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((statusCode &amp;amp; InformationRequiredException.END_DATE_REQUIRED) &amp;gt; 0){&lt;br /&gt;
            System.out.println(&amp;quot;  An end date is required for this appointment to be complete.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((statusCode &amp;amp; InformationRequiredException.DESCRIPTION_REQUIRED) &amp;gt; 0){&lt;br /&gt;
            System.out.println(&amp;quot;  A description is required for this appointment to be complete.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((statusCode &amp;amp; InformationRequiredException.ATTENDEE_REQUIRED) &amp;gt; 0){&lt;br /&gt;
            System.out.println(&amp;quot;  At least one attendee is required for this appointment to be complete.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        if ((statusCode &amp;amp; InformationRequiredException.LOCATION_REQUIRED) &amp;gt; 0){&lt;br /&gt;
            System.out.println(&amp;quot;  A location is required for this appointment to be complete.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
interface Contact extends Serializable{&lt;br /&gt;
    public static final String SPACE = &amp;quot; &amp;quot;;&lt;br /&gt;
    public String getFirstName();&lt;br /&gt;
    public String getLastName();&lt;br /&gt;
    public String getTitle();&lt;br /&gt;
    public String getOrganization();&lt;br /&gt;
    &lt;br /&gt;
    public void setFirstName(String newFirstName);&lt;br /&gt;
    public void setLastName(String newLastName);&lt;br /&gt;
    public void setTitle(String newTitle);&lt;br /&gt;
    public void setOrganization(String newOrganization);&lt;br /&gt;
}&lt;br /&gt;
class ContactImpl implements Contact{&lt;br /&gt;
    private String firstName;&lt;br /&gt;
    private String lastName;&lt;br /&gt;
    private String title;&lt;br /&gt;
    private String organization;&lt;br /&gt;
    &lt;br /&gt;
    public ContactImpl(String newFirstName, String newLastName,&lt;br /&gt;
        String newTitle, String newOrganization){&lt;br /&gt;
            firstName = newFirstName;&lt;br /&gt;
            lastName = newLastName;&lt;br /&gt;
            title = newTitle;&lt;br /&gt;
            organization = newOrganization;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getFirstName(){ return firstName; }&lt;br /&gt;
    public String getLastName(){ return lastName; }&lt;br /&gt;
    public String getTitle(){ return title; }&lt;br /&gt;
    public String getOrganization(){ return organization; }&lt;br /&gt;
    &lt;br /&gt;
    public void setFirstName(String newFirstName){ firstName = newFirstName; }&lt;br /&gt;
    public void setLastName(String newLastName){ lastName = newLastName; }&lt;br /&gt;
    public void setTitle(String newTitle){ title = newTitle; }&lt;br /&gt;
    public void setOrganization(String newOrganization){ organization = newOrganization; }&lt;br /&gt;
    &lt;br /&gt;
    public String toString(){&lt;br /&gt;
        return firstName + SPACE + lastName;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
interface Location extends Serializable{&lt;br /&gt;
    public String getLocation();&lt;br /&gt;
    public void setLocation(String newLocation);&lt;br /&gt;
}&lt;br /&gt;
class LocationImpl implements Location{&lt;br /&gt;
    private String location;&lt;br /&gt;
    &lt;br /&gt;
    public LocationImpl(){ }&lt;br /&gt;
    public LocationImpl(String newLocation){&lt;br /&gt;
        location = newLocation;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getLocation(){ return location; }&lt;br /&gt;
    &lt;br /&gt;
    public void setLocation(String newLocation){ location = newLocation; }&lt;br /&gt;
    &lt;br /&gt;
    public String toString(){ return location; }&lt;br /&gt;
}&lt;br /&gt;
class Scheduler{&lt;br /&gt;
    public Appointment createAppointment(AppointmentBuilder builder,&lt;br /&gt;
        Date startDate, Date endDate, String description,&lt;br /&gt;
        Location location, ArrayList attendees) throws InformationRequiredException{&lt;br /&gt;
            if (builder == null){&lt;br /&gt;
                builder = new AppointmentBuilder();&lt;br /&gt;
            }&lt;br /&gt;
        builder.buildAppointment();&lt;br /&gt;
        builder.buildDates(startDate, endDate);&lt;br /&gt;
        builder.buildDescription(description);&lt;br /&gt;
        builder.buildAttendees(attendees);&lt;br /&gt;
        builder.buildLocation(location);&lt;br /&gt;
        return builder.getAppointment();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Appointment{&lt;br /&gt;
    private Date startDate;&lt;br /&gt;
    private Date endDate;&lt;br /&gt;
    private String description;&lt;br /&gt;
    private ArrayList attendees = new ArrayList();&lt;br /&gt;
    private Location location;&lt;br /&gt;
    public static final String EOL_STRING =&lt;br /&gt;
        System.getProperty(&amp;quot;line.separator&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    public Date getStartDate(){ return startDate; }&lt;br /&gt;
    public Date getEndDate(){ return endDate; }&lt;br /&gt;
    public String getDescription(){ return description; }&lt;br /&gt;
    public ArrayList getAttendees(){ return attendees; }&lt;br /&gt;
    public Location getLocation(){ return location; }&lt;br /&gt;
    public void setDescription(String newDescription){ description = newDescription; }&lt;br /&gt;
    public void setLocation(Location newLocation){ location = newLocation; }&lt;br /&gt;
    public void setStartDate(Date newStartDate){ startDate = newStartDate; }&lt;br /&gt;
    public void setEndDate(Date newEndDate){ endDate = newEndDate; }&lt;br /&gt;
    public void setAttendees(ArrayList newAttendees){&lt;br /&gt;
        if (newAttendees != null){&lt;br /&gt;
            attendees = newAttendees;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void addAttendee(Contact attendee){&lt;br /&gt;
        if (!attendees.contains(attendee)){&lt;br /&gt;
            attendees.add(attendee);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void removeAttendee(Contact attendee){&lt;br /&gt;
        attendees.remove(attendee);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String toString(){&lt;br /&gt;
        return &amp;quot;  Description: &amp;quot; + description + EOL_STRING +&lt;br /&gt;
            &amp;quot;  Start Date: &amp;quot; + startDate + EOL_STRING +&lt;br /&gt;
            &amp;quot;  End Date: &amp;quot; + endDate + EOL_STRING +&lt;br /&gt;
            &amp;quot;  Location: &amp;quot; + location + EOL_STRING +&lt;br /&gt;
            &amp;quot;  Attendees: &amp;quot; + attendees;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class AppointmentBuilder{&lt;br /&gt;
    &lt;br /&gt;
    public static final int START_DATE_REQUIRED = 1;&lt;br /&gt;
    public static final int END_DATE_REQUIRED = 2;&lt;br /&gt;
    public static final int DESCRIPTION_REQUIRED = 4;&lt;br /&gt;
    public static final int ATTENDEE_REQUIRED = 8;&lt;br /&gt;
    public static final int LOCATION_REQUIRED = 16;&lt;br /&gt;
    &lt;br /&gt;
    protected Appointment appointment;&lt;br /&gt;
    &lt;br /&gt;
    protected int requiredElements;&lt;br /&gt;
    &lt;br /&gt;
    public void buildAppointment(){&lt;br /&gt;
        appointment = new Appointment();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void buildDates(Date startDate, Date endDate){&lt;br /&gt;
        Date currentDate = new Date();&lt;br /&gt;
        if ((startDate != null) &amp;amp;&amp;amp; (startDate.after(currentDate))){&lt;br /&gt;
            appointment.setStartDate(startDate);&lt;br /&gt;
        }&lt;br /&gt;
        if ((endDate != null) &amp;amp;&amp;amp; (endDate.after(startDate))){&lt;br /&gt;
            appointment.setEndDate(endDate);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void buildDescription(String newDescription){&lt;br /&gt;
        appointment.setDescription(newDescription);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void buildAttendees(ArrayList attendees){&lt;br /&gt;
        if ((attendees != null) &amp;amp;&amp;amp; (!attendees.isEmpty())){&lt;br /&gt;
            appointment.setAttendees(attendees);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void buildLocation(Location newLocation){&lt;br /&gt;
        if (newLocation != null){&lt;br /&gt;
            appointment.setLocation(newLocation);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Appointment getAppointment() throws InformationRequiredException{&lt;br /&gt;
        requiredElements = 0;&lt;br /&gt;
        &lt;br /&gt;
        if (appointment.getStartDate() == null){&lt;br /&gt;
            requiredElements += START_DATE_REQUIRED;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (appointment.getLocation() == null){&lt;br /&gt;
            requiredElements += LOCATION_REQUIRED;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (appointment.getAttendees().isEmpty()){&lt;br /&gt;
            requiredElements += ATTENDEE_REQUIRED;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (requiredElements &amp;gt; 0){&lt;br /&gt;
            throw new InformationRequiredException(requiredElements);&lt;br /&gt;
        }&lt;br /&gt;
        return appointment;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public int getRequiredElements(){ return requiredElements; }&lt;br /&gt;
}&lt;br /&gt;
class InformationRequiredException extends Exception{&lt;br /&gt;
    private static final String MESSAGE = &amp;quot;Appointment cannot be created because further information is required&amp;quot;;&lt;br /&gt;
    public static final int START_DATE_REQUIRED = 1;&lt;br /&gt;
    public static final int END_DATE_REQUIRED = 2;&lt;br /&gt;
    public static final int DESCRIPTION_REQUIRED = 4;&lt;br /&gt;
    public static final int ATTENDEE_REQUIRED = 8;&lt;br /&gt;
    public static final int LOCATION_REQUIRED = 16;&lt;br /&gt;
    private int informationRequired;&lt;br /&gt;
    &lt;br /&gt;
    public InformationRequiredException(int itemsRequired){&lt;br /&gt;
        super(MESSAGE);&lt;br /&gt;
        informationRequired = itemsRequired;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public int getInformationRequired(){ return informationRequired; }&lt;br /&gt;
}&lt;br /&gt;
class MeetingBuilder extends AppointmentBuilder{&lt;br /&gt;
    public Appointment getAppointment() throws InformationRequiredException{&lt;br /&gt;
        try{&lt;br /&gt;
            super.getAppointment();&lt;br /&gt;
        }&lt;br /&gt;
        finally{&lt;br /&gt;
            if (appointment.getEndDate() == null){&lt;br /&gt;
                requiredElements += END_DATE_REQUIRED;&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (requiredElements &amp;gt; 0){&lt;br /&gt;
                throw new InformationRequiredException(requiredElements);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return appointment;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>