📄 routeproducts.java
字号:
package com.power.pipeengine.InputData;
import java.util.*;
import java.io.*;
import com.power.pipeengine.Entity.*;
import com.power.pipe.*;
import com.power.util.Message.*;
import com.power.pipeengine.*;
public class RouteProducts extends InputReader
{
static ResourceBundle res = ResourceBundle.getBundle("com.power.pipeengine.Res",
EngineConfig.getInstance().getLocale() );
private String _fileName = "RouteProduct";
private Hashtable _routeProducts = null;
public RouteProducts() {
_routeProducts = new Hashtable();
}
public Hashtable getProducts() {
Hashtable products = new Hashtable();
Enumeration allRteProds = _routeProducts.elements();
while( allRteProds.hasMoreElements() ) {
RouteProduct rteProd = (RouteProduct) allRteProds.nextElement();
products.put( rteProd.getProduct().getKey(), rteProd.getProduct() );
}
return products;
}
private void addRouteProduct( RouteProduct rteProd ) {
String key = createKey( rteProd.getRouteID(), rteProd.getProductID() );
_routeProducts.put( key, rteProd );
}
public Hashtable getRouteProducts() {
return _routeProducts;
}
public Vector getProduct( Route rte ) {
Enumeration allRteProds = _routeProducts.elements();
Vector prods = new Vector();
while( allRteProds.hasMoreElements() ) {
RouteProduct rteProd = (RouteProduct) allRteProds.nextElement();
if( rteProd.getRoute().getRouteID() == rte.getRouteID() ) {
prods.addElement( rteProd.getProduct() );
}
}
return prods;
}
public Vector getRoutes( Product prod ) {
Enumeration allRteProds = _routeProducts.elements();
Vector routes = new Vector();
while( allRteProds.hasMoreElements() ) {
RouteProduct rteProd = (RouteProduct) allRteProds.nextElement();
if( rteProd.getProduct().equals( prod ) ) {
routes.addElement( rteProd.getRoute() );
}
}
return routes;
}
public RouteProduct getRouteProduct( int rteID, String prod ) {
return (RouteProduct) _routeProducts.get( createKey( rteID, prod ) );
}
private String createKey( int rteID, String prodID ) {
char[] key = new char[30];
String route = new Integer( rteID ).toString();
int idx = 29;
for( int i=route.length()-1; i>=0; i-- ) {
key[idx] = route.charAt(i);
idx--;
}
idx = 24;
for( int i=prodID.length()-1; i>=0; i-- ) {
key[idx] = prodID.charAt(i);
idx--;
}
return new String( key );
}
protected String getFileName() {
return _fileName;
}
public void readData() throws Exception {
String token = GlobalConfig.getInstance().getSeparator();
BufferedReader d = super.getReader();
if( null == d ) {
return;
}
String aLine = d.readLine();
Products products = DataModel.getInstance().getProducts();
Routes routes = DataModel.getInstance().getRoutes();
while( aLine != null ) {
if( aLine.length() <= 1 ) {
aLine = d.readLine();
continue;
}
StringTokenizer st = new StringTokenizer( aLine, token );
int rteID = new Integer( st.nextToken() ).intValue();
String prodID = st.nextToken();
int bucket = new Integer( st.nextToken() ).intValue();
double fraction = new Double( st.nextToken() ).doubleValue();
RouteProduct rteProd = getRouteProduct( rteID, prodID );
if( null == rteProd ) {
rteProd = new RouteProduct( rteID, prodID );
addRouteProduct( rteProd );
}
rteProd.addTimePhasedSplit( bucket, fraction );
Route r = routes.getRoute( rteID );
products.getProduct( r.getDestFacilityID(), prodID ).addProducingRoute( r );
aLine = d.readLine();
}
d.close();
super.closeURLConnection();
buildTimePhasedSplitData();
checkDataSufficiency();
}
private void checkDataSufficiency() {
if( _routeProducts.size() < 1 ) {
MessageArea.getInstance().addMessage(
res.getString("Engine17004") +
res.getString("required_to_create_a") );
EngineConfig.getInstance().setDataSufficiency( false );
}
}
private void buildTimePhasedSplitData() {
Enumeration allRteProds = _routeProducts.elements();
while( allRteProds.hasMoreElements() ){
RouteProduct rteProd = (RouteProduct) allRteProds.nextElement();
rteProd.buildTimePhasedSplitData();
}
}
public void print() {
System.out.println( "\n\n\nRouteProduct ---------------------" );
Enumeration allRteProds = _routeProducts.elements();
while( allRteProds.hasMoreElements() ) {
RouteProduct rteProd = (RouteProduct) allRteProds.nextElement();
rteProd.print();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -