/* See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* Esri Inc. licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.esri.gpt.framework.util;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* Stores from and to date proxies for date range queries.
*/
public class DateRange implements Serializable {
// class variables =============================================================
// instance variables ==========================================================
private DateProxy _fromDate = new DateProxy();
private DateProxy _toDate = new DateProxy();
// constructors ================================================================
/** Default constructor. */
public DateRange() {}
// properties ==================================================================
/**
* Gets the from date.
* @return the from date
*/
public DateProxy getFromDate() {
return _fromDate;
}
/**
* Returns a timestamp applicable for the from part of a date range query.
* @return the timestamp (null in unspecified)
*/
public Timestamp getFromTimestamp() {
return _fromDate.asFromTimestamp();
}
/**
* Gets the to date.
* @return the to date
*/
public DateProxy getToDate() {
return _toDate;
}
/**
* Returns a timestamp applicable for the to part of a date range query.
* @return the timestamp (null in unspecified)
*/
public Timestamp getToTimestamp() {
return _toDate.asToTimestamp();
}
// methods =====================================================================
/**
* Checks the range.
* <br/>The from and to dates will be flipped if the from date is
* greater than the to date.
*/
public void check() {
if (getFromDate().getIsValid() && getToDate().getIsValid()) {
long nFrom = getFromDate().asFromTimestamp().getTime();
long nTo = getToDate().asFromTimestamp().getTime();
if (nFrom > nTo) {
DateProxy fromDate = _fromDate;
_fromDate = _toDate;
_toDate = fromDate;
}
}
}
/**
* Returns a string representation this object.
* @return the string
*/
@Override
public String toString() {
StringBuffer sb = new StringBuffer(getClass().getName()).append(" (\n");
sb.append("fromDate=").append(getFromDate()).append("\n");
sb.append("toDate=").append(getToDate()).append("\n");
sb.append(") ===== end ").append(getClass().getName());
return sb.toString();
}
}