PROGRAM 2
# Filename: Post.tcl Author: Anthony F. Ortiz # This program stores a java file's class information in another file. # Open the input and output files. proc openFiles {filename} { set f [open $filename r] set f2 [open "Post.out" w] set files [concat $f $f2] return $files } # Store java file's class information in a list data structure. proc getData {f} { set list "" while {[gets $f line] >= 0} { regsub ";" $line "" line regsub "\}" $line "" line if {[regexp "public" $line] == 1} { lappend list $line } if {[regexp "private" $line] == 1} { lappend list $line } if {[regexp "protected" $line] == 1} { lappend list $line } } return $list } # Write the class information along with some html into the outfile so # that it may be viewed on a web browser. proc constructJavaDoc {f2 fname list} { set filename fname puts $f2 "" puts $f2 "" puts $f2 " $fname " puts $f2 "" puts $f2 "" puts $f2 "
"
    foreach ct $list {
        if {[regexp "class" $ct] == 1} {
            set c [lsearch $ct "class"]
            set c2 [expr $c + 1]
            set classname [lrange $ct $c $c2]
            puts $f2 "

$classname

" set c3 [expr 0] set classname2 [lrange $ct $c3 $c2] set classname3 [lrange $ct $c2 $c2] if {[regexp "extends" $ct] == 1} { set e [lsearch $ct "extends"] set e2 [expr $e + 1] set classname4 [lrange $ct $e $e2] set classname5 [lrange $ct $e2 $e2] set classname5 [concat ".." [concat $classname5 $classname3]] set classname5 [join $classname5 "."] puts $f2 " $classname5" puts $f2 "
$classname2 " puts $f2 "
$classname4 " } else { set classname6 [concat "Object" $classname3] set classname6 [join $classname6 "."] puts $f2 " $classname6" puts $f2 "
$classname2 " } if {[regexp "implements" $ct] == 1} { set i [lsearch $ct "implements"] set i2 [llength $ct] set classname7 [lrange $ct $i $i2] puts $f2 "
$classname7 " } puts $f2 "
$classname3 " } if {[regexp "interface" $ct] == 1} { set c [lsearch $ct "interface"] set c2 [expr $c + 1] set interface [lrange $ct $c $c2] puts $f2 "

$interface

" set c3 0 set interface2 [lrange $ct $c2 $c2] set interface3 [concat "Object" $interface2] set interface3 [join $interface3 "."] puts $f2 " $interface3" set interface4 [lrange $ct $c3 $c2] puts $f2 "
$interface4" puts $f2 "
$interface2 " } if {[regexp "class" $ct] == 0} { if {[regexp "interface" $ct] == 0} { puts $f2 $ct } } } puts $f2 "
" puts $f2 "
" puts $f2 "" puts $f2 "" } # Close input and output file. proc closeFiles {f f2} { close $f close $f2 } proc main {filename} { set files [openFiles $filename] set f [lindex $files 0] set f2 [lindex $files 1] set list [getData $f] constructJavaDoc $f2 $filename $list closeFiles $f $f2 } main [lindex $argv 0] // Outfile: Post.out Post.java

class Post3

...Frame.Post3
public class Post3
extends Frame
Post3 private ProductSpecificationProxy psProxy private BrokerServer bServer = BrokerServer.getInstance () private Label postLabel, oidLabel, descriptionLabel, priceLabel, upcLabel, o bjectLabel private TextField oidText, descriptionText, priceText, upcText private Button changeButton, commitButton, displayButton, insertButton, remo veButton, rollbackButton public static void main (String [] args) public Post3 () public boolean handleEvent (Event event) public boolean action (Event event, Object object)

class Post4

...Frame.Post4
public class Post4
extends Frame
Post4 private ProductSpecificationProxy psProxy private SaleLineItemProxy sliProxy private SaleProxy sProxy private Label psLabel, sliLabel, sLabel, resultsLabel, postLabel private TextField psText, sliText, sText private Button psButton, sliButton, sButton public static void main (String [] args) public Post4 () public boolean handleEvent (Event event) public boolean action (Event event, Object object)

class BrokerServer

Object.BrokerServer
public class BrokerServer
BrokerServer private static BrokerServer instance = new BrokerServer () private Vector brokers = new Vector () private Vector oids = new Vector () private BrokerServer () public static BrokerServer getInstance () public void register (String anOID, Object broker) public void commit () public void rollback ()

class FilePFWBroker

...PFWBroker.FilePFWBroker
public abstract class FilePFWBroker
extends PFWBroker
FilePFWBroker public Object materializeWith (String anOID) public abstract String objectAsRecord (String anOID, Object obj)

interface IProductSpecification

Object.IProductSpecification
public interface IProductSpecification
IProductSpecification public String getDescription () public float getPrice () public int getUPC () public void setDescription (String change) public void setPrice (float change) public void setUPC (int change)

interface ISale

Object.ISale
public interface ISale
ISale public float getBalance () public String getDate () public float total ()

interface ISaleLineItem

Object.ISaleLineItem
public interface ISaleLineItem
ISaleLineItem public float subtotal ()

class ObjectCache

Object.ObjectCache
public class ObjectCache
ObjectCache private Hashtable objects = new Hashtable () private Hashtable states = new Hashtable () public void add (String anOID, Object obj, String state) public Object find (String anOID) public boolean isEmpty (String anOID) public void remove (String anOID) public String getState (String anOID)

class Payment

Object.Payment
public class Payment
Payment private float amount public Payment (float cashTendered) public float getAmount ()

class PFWBroker

Object.PFWBroker
public abstract class PFWBroker
PFWBroker protected ObjectCache cache = new ObjectCache () protected BrokerServer bServer protected String table = new String () protected String newclean = "newclean" protected String newdirty = "newdirty" protected String oldclean = "oldclean" protected String olddirty = "olddirty" protected String newdeleted = "newdeleted" protected String olddeleted = "olddeleted" public Object objectWith (String anOID) public Object inCache (String anOID) public void addOldClean (String anOID, Object obj) public void addNewClean (String anOID, Object obj) public void addOldDirtyorNewDirty (String anOID, Object obj) public void addOldDeletedorNewDeleted (String anOID, Object obj) public void commit (String anOID) public void rollback (String anOID) public abstract Object materializeWith (String anOID) public abstract String objectAsRecord (String anOID, Object obj)

class PostDB

Object.PostDB
public class PostDB
PostDB private static PostDB instance = new PostDB () private String url = "jdbc:mysql://gold.mcs.csuhayward.edu:3333/postDB" private String driverName = "exgwe.sql.gweMysqlDriver" private String dbuser = "6310" private String dbpass = "6310" private Connection con = null private Statement stmt = null private ResultSet rs = null private PostDB () public static PostDB getInstance () public ResultSet execute (String query) public void update (String query)

class ProductSpecification

Object.ProductSpecification
public class ProductSpecification
implements IProductSpecification
ProductSpecification private int upc = 0 private float price = 0 private String description = "" public ProductSpecification (int upc, float price, String description) public int getUPC () public float getPrice () public String getDescription () public void setUPC (int change) public void setPrice (float change) public void setDescription (String change)

class ProductSpecificationProxy

...VirtualProxy.ProductSpecificationProxy
public class ProductSpecificationProxy
extends VirtualProxy
implements IProductSpecification
ProductSpecificationProxy public ProductSpecificationProxy (String anOID) public ProductSpecificationProxy (String anOID, int upc, float price, String description) public String getDescription () public float getPrice () public int getUPC () public Object createBroker () public void setDescription (String change) public void setPrice (float change) public void setUPC (int change) public void reset () public void remove ()

class ProductSpecificationRelationalBroker

...RelationalPFWBroker.ProductSpecificationRelationalBroker
public class ProductSpecificationRelationalBroker
extends RelationalPFWBroker
ProductSpecificationRelationalBroker private static ProductSpecificationRelationalBroker instance = new ProductSp ecificationRelationalBroker () private ProductSpecificationRelationalBroker () public static ProductSpecificationRelationalBroker getInstance () public Object currentRecordAsObject () public Object blankRecordAsObject () public String objectAsRecord (String anOID, Object obj)

class RandomNumberGenerator

Object.RandomNumberGenerator
public class RandomNumberGenerator
RandomNumberGenerator public static String getRandomNumber ()

class RDBRecord

Object.RDBRecord
public class RDBRecord
RDBRecord public ResultSet record = null public ResultSet getRecord () public void setRecord (ResultSet arecord) public String field (String fieldName)

class RelationalPFWBroker

...PFWBroker.RelationalPFWBroker
public abstract class RelationalPFWBroker
extends PFWBroker
RelationalPFWBroker protected RDBRecord currentRecord = new RDBRecord () public Object materializeWith (String anOID) public Object selectFirst (String anOID) public abstract Object currentRecordAsObject () public abstract String objectAsRecord (String anOID, Object obj) public abstract Object blankRecordAsObject ()

class Sale

Object.Sale
public class Sale
implements ISale
Sale private Vector lineItems = new Vector () private String date, time private boolean isComplete = false private Payment payment public Sale (String adate, String atime) public float getBalance () public String getDate () public void becomeComplete () public boolean isComplete () public void makeLineItem (String anOID) public float total () public void makePayment (float cashTendered)

class SaleLineItem

Object.SaleLineItem
public class SaleLineItem
implements ISaleLineItem
SaleLineItem private int quantity private ProductSpecificationProxy productSpecProxy public SaleLineItem (ProductSpecificationProxy specProxy, int quantity) public float subtotal ()

class SaleLineItemProxy

...VirtualProxy.SaleLineItemProxy
public class SaleLineItemProxy
extends VirtualProxy
implements ISaleLineItem
SaleLineItemProxy public SaleLineItemProxy (String anOID) public float subtotal () public Object createBroker () public void reset () public void remove ()

class SaleLineItemRelationalBroker

...RelationalPFWBroker.SaleLineItemRelationalBroker
public class SaleLineItemRelationalBroker
extends RelationalPFWBroker
SaleLineItemRelationalBroker private static SaleLineItemRelationalBroker instance = new SaleLineItemRelat ionalBroker () private SaleLineItemRelationalBroker () public static SaleLineItemRelationalBroker getInstance () public Object currentRecordAsObject () public Object blankRecordAsObject () public String objectAsRecord (String anOID, Object obj)

class SaleProxy

...VirtualProxy.SaleProxy
public class SaleProxy
extends VirtualProxy
implements ISale
SaleProxy public SaleProxy (String anOID) public float getBalance () public String getDate () public float total () public Object createBroker () public void reset () public void remove ()

class SaleRelationalBroker

...RelationalPFWBroker.SaleRelationalBroker
public class SaleRelationalBroker
extends RelationalPFWBroker
SaleRelationalBroker private static SaleRelationalBroker instance = new SaleRelationalBroker () private SaleRelationalBroker () public static SaleRelationalBroker getInstance () public Object currentRecordAsObject () public Object blankRecordAsObject () public String objectAsRecord (String anOID, Object obj)

class VirtualProxy

Object.VirtualProxy
public abstract class VirtualProxy
VirtualProxy protected String OID protected Object realSubject protected Object broker public Object getRealSubject () public void materializeSubject () public Object getBroker () public abstract Object createBroker () public abstract void reset () public abstract void remove ()

BACK TO CS6310 PAGE.