package org.apache.xmlbeans.test.jam.dummyclasses;

import org.apache.xmlbeans.test.jam.dummyclasses.ejb.MyEjbException;

import java.net.MalformedURLException;

/**
   * NOT doonkie javadoc!
   */

/**
 *  Dummy class for JAM tests.
 *
 *  @author pcal Nov 25, 2003
 */
public abstract class Base implements Foo  {

  /**
   * NOT doonkie javadoc!
   */
  /**
   * doonkie javadoc!
   */
  private double doonkie = 2312;
  private long doonkietoo;

  public int getId() { return -1; }


  public String getFoo() { return "foo"; } // {{}}{{

  public void setId(int id) {}




}
