|
From: <kal...@us...> - 2008-07-15 09:21:23
|
Revision: 4604
http://giews.svn.sourceforge.net/giews/?rev=4604&view=rev
Author: kalimaha
Date: 2008-07-15 02:21:31 -0700 (Tue, 15 Jul 2008)
Log Message:
-----------
Added functionalities and fake data for FPI.
Modified Paths:
--------------
trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/info/dataset/DatasetDao.java
trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/Pog.java
trunk/fenix-persistence/src/test/java/org/fao/fenix/persistence/info/dataset/DatasetDaoTest.java
Added Paths:
-----------
trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/FPIPog.java
Modified: trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/info/dataset/DatasetDao.java
===================================================================
--- trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/info/dataset/DatasetDao.java 2008-07-15 09:16:35 UTC (rev 4603)
+++ trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/info/dataset/DatasetDao.java 2008-07-15 09:21:31 UTC (rev 4604)
@@ -11,13 +11,12 @@
import org.apache.log4j.Logger;
import org.fao.fenix.domain.exception.FenixException;
-import org.fao.fenix.domain.gaul.FenixGaul0;
import org.fao.fenix.domain.index.EconomicsIndex;
import org.fao.fenix.domain.info.content.NumericCommodity;
import org.fao.fenix.domain.info.dataset.Dataset;
+import org.fao.fenix.domain.info.dataset.PriceTradeDataset;
+import org.fao.fenix.domain.info.pattern.DatasetUtil;
import org.fao.fenix.domain.info.pattern.price.PriceDataset;
-import org.fao.fenix.domain.info.pattern.DatasetUtil;
-import org.fao.fenix.domain.info.pattern.price.InternationalPriceDataset;
import org.fao.fenix.domain.testdata.Constants;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@@ -170,6 +169,35 @@
return entityManager.createQuery("from " + dataset + " dataset").getResultList();
}
+ public List<NumericCommodity> findAllNumericCommodityForIndexBase(String priceType, String commodityCode, String featureCode, int startYear, int endYear) {
+ List<PriceDataset> list = findAllPriceDataset(priceType);
+ List<NumericCommodity> commodities = new ArrayList<NumericCommodity>();
+ for (int i = 0; i < list.size(); i++) {
+ List<NumericCommodity> tmp = list.get(i).getContentList();
+ for (int j = 0; j < tmp.size(); j++) {
+ NumericCommodity commodity = tmp.get(j);
+ boolean rangeCondition = (commodity.getDate().getYear() >= (startYear)) && (commodity.getDate().getYear() <= (endYear));
+ if (commodity.getCommodityCode().equals(commodityCode) && commodity.getFeatureCode().equals(featureCode) && rangeCondition)
+ commodities.add(commodity);
+ }
+ }
+ return commodities;
+ }
+
+ public List<NumericCommodity> findAllNumericCommodityForIndex(String priceType, String commodityCode, String featureCode) {
+ List<PriceDataset> list = findAllPriceDataset(priceType);
+ List<NumericCommodity> commodities = new ArrayList<NumericCommodity>();
+ for (int i = 0; i < list.size(); i++) {
+ List<NumericCommodity> tmp = list.get(i).getContentList();
+ for (int j = 0; j < tmp.size(); j++) {
+ NumericCommodity commodity = tmp.get(j);
+ if (commodity.getCommodityCode().equals(commodityCode) && commodity.getFeatureCode().equals(featureCode))
+ commodities.add(commodity);
+ }
+ }
+ return commodities;
+ }
+
public List<NumericCommodity> findAllNumericCommodityForIndex(String priceType, String commodityCode, String featureCode, int startYear, int endYear) {
List<PriceDataset> list = findAllPriceDataset(priceType);
List<NumericCommodity> commodities = new ArrayList<NumericCommodity>();
@@ -187,7 +215,7 @@
public double calculateCommodityBasePrice(String priceType, String commodityCode, String featureCode, int startYear, int endYear) {
double total = 0;
- List<NumericCommodity> list = findAllNumericCommodityForIndex(priceType, commodityCode, featureCode, startYear, endYear);
+ List<NumericCommodity> list = findAllNumericCommodityForIndexBase(priceType, commodityCode, featureCode, startYear, endYear);
for (int i = 0; i < list.size(); i++)
total += list.get(i).getValue();
return total / list.size();
Added: trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/FPIPog.java
===================================================================
--- trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/FPIPog.java (rev 0)
+++ trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/FPIPog.java 2008-07-15 09:21:31 UTC (rev 4604)
@@ -0,0 +1,37 @@
+package org.fao.fenix.persistence.testdata;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.fao.fenix.domain.info.content.NumericCommodity;
+import org.fao.fenix.domain.info.pattern.price.WholesalePriceDataset;
+
+public class FPIPog {
+
+ public static List<NumericCommodity> baseCommodities = new ArrayList<NumericCommodity>();
+
+ public static double[] baseCommoditiesPrices = new double[] { 221.05, 227.05, 230.00, 232.00, 234.15, 228.25, 219.25, 219.25, 193.05, 185.00, 160.00, 159.05, 159.15, 158.25, 153.06, 144.15, 143.00, 131.25, 117.05, 120.00, 116.25, 117.05, 121.06,
+ 121.15, 120.00, 118.15, 125.00, 126.00, 137.06, 176.25, 181.25, 177.00, 174.15, 188.00, 167.05, 182.05 };
+
+ public static double[] commoditiesPrices = new double[] { 197.00, 197.05, 210.00, 210.00, 202.00, 207.05, 220.00, 231.25, 236.25, 217.00, 191.25, 200.00, 201.00, 231.25, 227.05, 227.00, 239.15, 251.25, 250.00, 261.25, 260.00, 227.05, 204.15, 209.00,
+ 206.25, 236.25, 242.05, 234.15, 246.25, 246.00, 245.00, 239.15, 237.00, 229.15, 240.00, 238.00, 251.25, 271.25, 285.00, 294.15, 310.00, 330.00, 363.33, 337.00, 365.00, 327.05, 347.00, 381.25, 360.00, 390.00, };
+
+ public static WholesalePriceDataset createFakeFPIData() {
+ WholesalePriceDataset dataset = new WholesalePriceDataset();
+ int year = 1999;
+ for (int i = 0; i < baseCommoditiesPrices.length; i++) {
+ if (i % 12 == 0)
+ year++;
+ baseCommodities.add(new NumericCommodity("0", "01", new Date(year, 0, 1), baseCommoditiesPrices[i]));
+ }
+ for (int i = 0; i < commoditiesPrices.length; i++) {
+ if (i % 12 == 0)
+ year++;
+ baseCommodities.add(new NumericCommodity("0", "01", new Date(year, 0, 1), commoditiesPrices[i]));
+ }
+ dataset.setContentList(baseCommodities);
+ return dataset;
+ }
+
+}
Property changes on: trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/FPIPog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/Pog.java
===================================================================
--- trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/Pog.java 2008-07-15 09:16:35 UTC (rev 4603)
+++ trunk/fenix-persistence/src/main/java/org/fao/fenix/persistence/testdata/Pog.java 2008-07-15 09:21:31 UTC (rev 4604)
@@ -90,6 +90,9 @@
measurementUnitSI.initiateSI();
*/
+ /* FAKE FPI DATA */
+ datasetDao.save(FPIPog.createFakeFPIData());
+
System.out.println("---------------------- end Pog.populateDB()");
}
Modified: trunk/fenix-persistence/src/test/java/org/fao/fenix/persistence/info/dataset/DatasetDaoTest.java
===================================================================
--- trunk/fenix-persistence/src/test/java/org/fao/fenix/persistence/info/dataset/DatasetDaoTest.java 2008-07-15 09:16:35 UTC (rev 4603)
+++ trunk/fenix-persistence/src/test/java/org/fao/fenix/persistence/info/dataset/DatasetDaoTest.java 2008-07-15 09:21:31 UTC (rev 4604)
@@ -6,6 +6,8 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.log4j.Logger;
+import org.fao.fenix.domain.info.content.NumericCommodity;
import org.fao.fenix.domain.info.dataset.Dataset;
import org.fao.fenix.domain.info.pattern.cropproduction.CropAreaDataset;
import org.fao.fenix.domain.info.pattern.cropproduction.CropProductionDataset;
@@ -13,6 +15,8 @@
import org.fao.fenix.domain.upload.FenixLoader;
import org.fao.fenix.persistence.BaseDaoTest;
import org.fao.fenix.persistence.perspective.FenixDomainUserDao;
+import org.fao.fenix.persistence.testdata.FPIPog;
+import org.fao.fenix.persistence.testdata.Pog;
public class DatasetDaoTest extends BaseDaoTest {
@@ -172,6 +176,13 @@
list = datasetDao.findAllForPager(2, 4);
assertTrue(list.size() == 4);
}
+
+ public void _testFindAllNumericCommodityForIndex() {
+ datasetDao.save(FPIPog.createFakeFPIData());
+ assertTrue(datasetDao.findAll().size() == 1);
+ List<NumericCommodity> list = datasetDao.findAllNumericCommodityForIndex("Wholesale", "010101", "featureCode");
+ System.out.println("RETRIEVED " + list.size() + " COMMODITIES");
+ }
public DatasetDao getDatasetDao() {
return datasetDao;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|