ExtentSummary.java
/**
* ExtentSummary
*/
package gov.usgs.earthquake.indexer;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
import gov.usgs.util.XmlUtils;
/**
* Stores ExtentSummary information for products.
*/
public class ExtentSummary {
private Long id;
private Date startTime;
private Date endTime;
private BigDecimal maxLatitude;
private BigDecimal minLatitude;
private BigDecimal maxLongitude;
private BigDecimal minLongitude;
/** Property for Extent Start time */
public static final String EXTENT_START_TIME_PROPERTY = "starttime";
/** Property for Extent End Time */
public static final String EXTENT_END_TIME_PROPERTY = "endtime";
/** Property for Extent Max Lat */
public static final String EXTENT_MAX_LAT_PROPERTY = "maximum-latitude";
/** Property for Extent Min lat */
public static final String EXTENT_MIN_LAT_PROPERTY = "minimum-latitude";
/** Property for Extent Max Long */
public static final String EXTENT_MAX_LONG_PROPERTY = "maximum-longitude";
/** Property for Extent Min Long */
public static final String EXTENT_MIN_LONG_PROPERTY = "minimum-longitude";
/** Empty constructor */
public ExtentSummary() {
//Do nothing; this is if member vars are to be set manually
}
/**
* Builds an extentSummary from product properties. If the product has none of
* the properties, the ExtentSummary is still built.
*
* @param product the productSummary to build from
*/
public ExtentSummary(ProductSummary product) {
Map<String,String> properties = product.getProperties();
id = product.getIndexId();
if (properties.get(EXTENT_START_TIME_PROPERTY) != null) {
startTime = XmlUtils.getDate(properties.get(EXTENT_START_TIME_PROPERTY));
}
if (properties.get(EXTENT_END_TIME_PROPERTY) != null) {
endTime = XmlUtils.getDate(properties.get(EXTENT_END_TIME_PROPERTY));
}
if (properties.get(EXTENT_MAX_LAT_PROPERTY) != null) {
maxLatitude = new BigDecimal(properties.get(EXTENT_MAX_LAT_PROPERTY));
}
if (properties.get(EXTENT_MAX_LONG_PROPERTY) != null) {
maxLongitude = new BigDecimal(properties.get(EXTENT_MAX_LONG_PROPERTY));
}
if (properties.get(EXTENT_MIN_LAT_PROPERTY) != null) {
minLatitude = new BigDecimal(properties.get(EXTENT_MIN_LAT_PROPERTY));
}
if (properties.get(EXTENT_MIN_LONG_PROPERTY) != null) {
minLongitude = new BigDecimal(properties.get(EXTENT_MIN_LONG_PROPERTY));
}
}
/**
* Returns TRUE if this extent should be put in the extentSummary table (at
* least one property is not null)
* @return boolean
*/
public boolean isValid() {
return
startTime != null ||
endTime != null ||
maxLatitude != null ||
maxLongitude != null ||
minLatitude != null ||
minLongitude != null;
}
/** @return index Id */
public Long getIndexId() {
return this.id;
}
/** @param id indexId to set */
public void setIndexId(Long id) {
this.id = id;
}
/** @return startTime */
public Date getStartTime() {
return this.startTime;
}
/** @param startTime date to set */
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
/** @return endTime */
public Date getEndTime() {
return this.endTime;
}
/** @param endTime date to set */
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
/** @return maxLatitude */
public BigDecimal getMaxLatitude() {
return this.maxLatitude;
}
/** @param maxLatitude BigDecimal to set */
public void setMaxLatitude(BigDecimal maxLatitude) {
this.maxLatitude = maxLatitude;
}
/** @return minLatitude */
public BigDecimal getMinLatitude() {
return this.minLatitude;
}
/** @param minLatitude BigDecimal to set */
public void setMinLatitude(BigDecimal minLatitude) {
this.minLatitude = minLatitude;
}
/** @return maxLongitude */
public BigDecimal getMaxLongitude() {
return this.maxLongitude;
}
/** @param maxLongitude BigDecimal to set */
public void setMaxLongitude(BigDecimal maxLongitude) {
this.maxLongitude = maxLongitude;
}
/** @return minLongitude */
public BigDecimal getMinLongitude() {
return this.minLongitude;
}
/** @param minLongitude to set */
public void setMinLongitude(BigDecimal minLongitude) {
this.minLongitude = minLongitude;
}
}