Main Page | Packages | Class Hierarchy | Compound List | Compound Members

de.stz.bt.fnd.FND_DataPointFactory Class Reference

List of all members.

Public Member Functions

void createDataPointfromXML (Element datapoint)
void createDataPointFromDatagram (FND_Datagram dgram)
FND_DataPointContext getContext ()
void setContext (FND_DataPointContext context)

Static Public Member Functions

FND_DataPointFactory getInstance ()

Package Functions

 FND_DataPointFactory ()

Detailed Description

Factory that creates initialized datapoint objects

Author:
J. Seitter
Version:
Id
FND_DataPointFactory.java,v 1.5 2004/11/12 09:08:18 jseitter Exp


Constructor & Destructor Documentation

de.stz.bt.fnd.FND_DataPointFactory.FND_DataPointFactory  )  [package]
 

Parameters:
context 

00057                          {
00058 
00059   }


Member Function Documentation

void de.stz.bt.fnd.FND_DataPointFactory.createDataPointFromDatagram FND_Datagram  dgram  ) 
 

This method adds the datapoint to the List if it was not seen before. //TODO: remove this DoS Vector BE CAREFUL: This is a denial of service attack vector and should be restricted in later versions

00154                                                               {
00155 
00156     logger.info(
00157       "unknown datapoint "
00158         + new String(dgram.getDataPointID())
00159         + " ... creating datapoint object on the fly");
00160     switch (dgram.getDatapointType()) {
00161 
00162       case FND_DataPoint.TRANSFERPOINT :
00163         this.context.datapoints.put(
00164           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00165           null);
00166         logger.info(
00167           "added "
00168             + this.context.URL_PREFIX
00169             + new String(dgram.getDataPointID()));
00170         break;
00171 
00172       case FND_DataPoint.MESSAGEPOINT :
00173         this.context.datapoints.put(
00174           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00175           new FND_MessagePointImpl(
00176             new String(dgram.getDataPointID())));
00177         logger.info(
00178           "added "
00179             + this.context.URL_PREFIX
00180             + new String(dgram.getDataPointID()));
00181         break;
00182 
00183       case FND_DataPoint.SWITCHPOINT :
00184         this.context.datapoints.put(
00185           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00186           new FND_SwitchPointImpl(
00187             new String(dgram.getDataPointID())));
00188         logger.info(
00189           "added "
00190             + this.context.URL_PREFIX
00191             + new String(dgram.getDataPointID()));
00192         break;
00193 
00194       case FND_DataPoint.MEASUREPOINT :
00195         this.context.datapoints.put(
00196           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00197           null);
00198         logger.info(
00199           "added "
00200             + this.context.URL_PREFIX
00201             + new String(dgram.getDataPointID()));
00202         break;
00203 
00204       case FND_DataPoint.SETPOINT :
00205         this.context.datapoints.put(
00206           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00207           null);
00208         logger.info(
00209           "added "
00210             + this.context.URL_PREFIX
00211             + new String(dgram.getDataPointID()));
00212         break;
00213 
00214       case FND_DataPoint.COUNTPOINT :
00215         this.context.datapoints.put(
00216           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00217           null);
00218         logger.info(
00219           "added "
00220             + this.context.URL_PREFIX
00221             + new String(dgram.getDataPointID()));
00222         break;
00223 
00224       case FND_DataPoint.COLLECTADDRESSPOINT :
00225         this.context.datapoints.put(
00226           this.context.URL_PREFIX + new String(dgram.getDataPointID()).trim(),
00227           null);
00228         logger.info(
00229           "added "
00230             + this.context.URL_PREFIX
00231             + new String(dgram.getDataPointID()));
00232         break;
00233     }
00234 
00235   }

void de.stz.bt.fnd.FND_DataPointFactory.createDataPointfromXML Element  datapoint  ) 
 

create a datapoint from a given config.xml fragment

00067                                                         {
00068 
00069     String dp_id = datapoint.getAttribute("id").getValue();
00070     if (dp_id.length() > 16)
00071       logger.warn(
00072         "The datapoint id "
00073           + dp_id
00074           + "is more than 16 characters. This violates the FND spec and won't work with FND Datagrams");
00075 
00076     String dp_type_string = datapoint.getAttribute("type").getValue();
00077     byte dp_type = 99;
00078     if (dp_type_string == "MESSAGEPOINT")
00079       dp_type = FND_DataPoint.MESSAGEPOINT;
00080     if (dp_type_string == "SETPOINT")
00081       dp_type = FND_DataPoint.SETPOINT;
00082     if (dp_type_string == "MEASUREPOINT")
00083       dp_type = FND_DataPoint.MEASUREPOINT;
00084     if (dp_type_string == "SWITCHPOINT")
00085       dp_type = FND_DataPoint.SWITCHPOINT;
00086     if (dp_type_string == "COUNTPOINT")
00087       dp_type = FND_DataPoint.COUNTPOINT;
00088     if (dp_type_string == "TRANSFERPOINT")
00089       dp_type = FND_DataPoint.TRANSFERPOINT;
00090     if (dp_type_string == "COLLECTADDRESSPOINT")
00091       dp_type = FND_DataPoint.COLLECTADDRESSPOINT;
00092 
00093     // TODO: load the detail settings and put it into the datapoint
00094     // attributes dimensions etc.
00095 
00096     switch (dp_type) {
00097 
00098       case FND_DataPoint.MESSAGEPOINT :
00099         this.context.datapoints.put(
00100           this.context.URL_PREFIX + dp_id,
00101           new FND_MessagePointImpl(dp_id));
00102         break;
00103 
00104       case FND_DataPoint.SETPOINT :
00105         this.context.datapoints.put(this.context.URL_PREFIX + dp_id, new FND_SetPointImpl(dp_id));
00106         break;
00107 
00108       case FND_DataPoint.MEASUREPOINT :
00109         this.context.datapoints.put(
00110           this.context.URL_PREFIX + dp_id,
00111           new FND_MeasurePointImpl(dp_id));
00112         break;
00113 
00114       case FND_DataPoint.SWITCHPOINT :
00115         this.context.datapoints.put(
00116           this.context.URL_PREFIX + dp_id,
00117           new FND_SwitchPointImpl(dp_id));
00118         break;
00119 
00120       case FND_DataPoint.COUNTPOINT :
00121         this.context.datapoints.put(
00122           this.context.URL_PREFIX + dp_id,
00123           new FND_CountPointImpl(dp_id));
00124         break;
00125 
00126       case FND_DataPoint.TRANSFERPOINT :
00127         this.context.datapoints.put(
00128           this.context.URL_PREFIX + dp_id,
00129           new FND_TransferPointImpl(dp_id));
00130         break;
00131 
00132       case FND_DataPoint.COLLECTADDRESSPOINT :
00133         this.context.datapoints.put(
00134           this.context.URL_PREFIX + dp_id,
00135           new FND_CollectAddressPointImpl(dp_id));
00136         break;
00137 
00138         // 99 is the nothing-else-fits case !
00139       case 99 :
00140         break;
00141 
00142     }
00143     logger.info("Datapoint " + dp_id + " loaded from config");
00144 
00145   }

FND_DataPointFactory de.stz.bt.fnd.FND_DataPointFactory.getInstance  )  [static]
 

Returns:
The unique instance of this class.

00045                                                    {
00046     if (null == _instance) {
00047       _instance = new FND_DataPointFactory();
00048     }
00049     return _instance;
00050   } 


The documentation for this class was generated from the following file:
Generated on Mon Nov 15 08:36:10 2004 for FND4J by doxygen 1.3.3