[commits-cosmo] (bcm) [2429] throw IllegalArgumentException instead of ParseException in

Brian Moseley bcm at osafoundation.org
Mon Sep 11 12:47:04 PDT 2006


yea.. i only meant to commit one file here. i inadvertently also
committed changes to UserDaoImpl and a couple new classes that use the
most recent paging apis, and i deleted some test classes that were
dependent on jcr. whoops.

On 9/11/06, svncheckin at osafoundation.org <svncheckin at osafoundation.org> wrote:
>
>
>  Revision 2429 Author bcm Date 2006-09-11 12:42:43 -0700 (Mon, 11 Sep 2006)
> Log Message
> throw IllegalArgumentException instead of ParseException in
> TimeRangeFilter constructors if the provided start and end times are
> not in UTC.
> Modified Paths
>
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/calendar/query/TimeRangeFilter.java
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/UserDaoImpl.java
> Added Paths
>
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/QueryCriteriaBuilder.java
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/StandardQueryCriteriaBuilder.java
> Removed Paths
>
> cosmo/branches/simdesk_trunk_merge/src/test/unit/java/org/osaf/cosmo/dao/jcr/
> cosmo/branches/simdesk_trunk_merge/src/test/unit/java/org/osaf/cosmo/jackrabbit/
> cosmo/branches/simdesk_trunk_merge/src/test/unit/java/org/osaf/cosmo/repository/
>
> Diff
> Modified:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/calendar/query/TimeRangeFilter.java
> (2428 => 2429) ---
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/calendar/query/TimeRangeFilter.java
> 2006-09-11 19:41:26 UTC (rev 2428)
> +++
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/calendar/query/TimeRangeFilter.java
> 2006-09-11 19:42:43 UTC (rev 2429)
> @@ -94,31 +94,20 @@
>
>  public TimeRangeFilter(DateTime dtStart, DateTime dtEnd) {
>  if (!dtStart.isUtc()) {
> - throw new ParseException("timerange start must be UTC", -1);
> + throw new IllegalArgumentException("timerange start must
> be UTC");
>  }
>
>  if (!dtEnd.isUtc()) {
> - throw new ParseException("timerange start must be UTC", -1);
> + throw new IllegalArgumentException("timerange start must
> be UTC");
>  }
>
>  Period period = new Period(dtStart, dtEnd);
>  setPeriod(period);
>  }
>
> - public TimeRangeFilter(String start, String end) throws ParseException {
> - DateTime dtStart = new DateTime(start);
> - DateTime dtEnd = new DateTime(end);
> -
> - if (!dtStart.isUtc()) {
> - throw new ParseException("timerange start must be UTC", -1);
> - }
> -
> - if (!dtEnd.isUtc()) {
> - throw new ParseException("timerange start must be UTC", -1);
> - }
> -
> - Period period = new Period(dtStart, dtEnd);
> - setPeriod(period);
> + public TimeRangeFilter(String start, String end)
> + throws ParseException {
> + this(new DateTime(start), new DateTime(end));
>  }
>
>  public Period getPeriod() {
>
>
> Added:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/QueryCriteriaBuilder.java
> (2428 => 2429) ---
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/QueryCriteriaBuilder.java
> 2006-09-11 19:41:26 UTC (rev 2428)
> +++
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/QueryCriteriaBuilder.java
> 2006-09-11 19:42:43 UTC (rev 2429)
> @@ -0,0 +1,38 @@
> +/*
> + * Copyright 2006 Open Source Applications Foundation
> + *
> + * Licensed 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 org.osaf.cosmo.dao.hibernate;
> +
> +import org.hibernate.Criteria;
> +import org.hibernate.Session;
> +
> +import org.osaf.cosmo.util.PageCriteria;
> +
> +/**
> + * Interface for building Hibernate query criteria.
> + *
> + * @see Criteria
> + * @see PageCriteria
> + */
> +public interface QueryCriteriaBuilder {
> +
> + /**
> + * Returns a <code>Criteria</code> based on the given
> + * <code>PageCriteria</code> that can be used to query the given
> + * <code>Session</code>.
> + */
> + public Criteria buildQueryCriteria(Session session,
> + PageCriteria pageCriteria);
> +}
> Property changes on:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/QueryCriteriaBuilder.java
> ___________________________________________________________________
> Name: svn:mime-type
>  + text/plain
> Name: svn:eol-style
>  + native
>
>
> Added:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/StandardQueryCriteriaBuilder.java
> (2428 => 2429) ---
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/StandardQueryCriteriaBuilder.java
> 2006-09-11 19:41:26 UTC (rev 2428)
> +++
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/StandardQueryCriteriaBuilder.java
> 2006-09-11 19:42:43 UTC (rev 2429)
> @@ -0,0 +1,66 @@
> +/*
> + * Copyright 2006 Open Source Applications Foundation
> + *
> + * Licensed 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 org.osaf.cosmo.dao.hibernate;
> +
> +import org.hibernate.Criteria;
> +import org.hibernate.Session;
> +import org.hibernate.criterion.Order;
> +
> +import org.osaf.cosmo.util.PageCriteria;
> +
> +/**
> + * Interface for building Hibernate query criteria.
> + *
> + * @see Criteria
> + * @see PageCriteria
> + */
> +public class StandardQueryCriteriaBuilder implements QueryCriteriaBuilder {
> +
> + private Class clazz;
> +
> + /**
> + * Constructs a <code>StandardQueryCriteriaBuilder</code>
> that
> + * will query objects of the given class.
> + */
> + public StandardQueryCriteriaBuilder(Class clazz) {
> + this.clazz = clazz;
> + }
> +
> + /**
> + * Returns a <code>Criteria</code> based on the given
> + * <code>PageCriteria</code> that can be used to query the given
> + * <code>Session</code>.
> + */
> + public Criteria buildQueryCriteria(Session session,
> + PageCriteria pageCriteria) {
> + Criteria crit = session.createCriteria(clazz);
> +
> + crit.setMaxResults(pageCriteria.getPageSize());
> +
> + int firstResult = 0;
> + if (pageCriteria.getPageNumber() > 1)
> + firstResult = ((pageCriteria.getPageNumber() - 1) *
> + pageCriteria.getPageSize());
> + crit.setFirstResult(firstResult);
> +
> + if (pageCriteria.isSortAscending())
> + crit.addOrder(Order.asc(pageCriteria.getSortTypeString()));
> + else
> + crit.addOrder(Order.desc(pageCriteria.getSortTypeString()));
> +
> + return crit;
> + }
> +}
> Property changes on:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/StandardQueryCriteriaBuilder.java
> ___________________________________________________________________
> Name: svn:mime-type
>  + text/plain
> Name: svn:eol-style
>  + native
>
>
> Modified:
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/UserDaoImpl.java
> (2428 => 2429) ---
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/UserDaoImpl.java
> 2006-09-11 19:41:26 UTC (rev 2428)
> +++
> cosmo/branches/simdesk_trunk_merge/src/main/java/org/osaf/cosmo/dao/hibernate/UserDaoImpl.java
> 2006-09-11 19:42:43 UTC (rev 2429)
> @@ -27,15 +27,13 @@
>  import org.hibernate.Criteria;
>  import org.hibernate.HibernateException;
>  import org.hibernate.Session;
> -import org.hibernate.criterion.Order;
>  import org.osaf.cosmo.dao.UserDao;
>  import org.osaf.cosmo.model.DuplicateEmailException;
>  import org.osaf.cosmo.model.DuplicateUsernameException;
>  import org.osaf.cosmo.model.User;
> +import org.osaf.cosmo.util.ArrayPagedList;
>  import org.osaf.cosmo.util.PageCriteria;
>  import org.osaf.cosmo.util.PagedList;
> -import org.osaf.cosmo.util.PagedListImpl;
> -import org.osaf.cosmo.util.PageCriteria.SortAttribute;
>  import
> org.springframework.orm.hibernate3.SessionFactoryUtils;
>  import
> org.springframework.orm.hibernate3.support.HibernateDaoSupport;
>
> @@ -46,6 +44,9 @@
>
>  private static final Log log = LogFactory.getLog(UserDaoImpl.class);
>
> + private static final QueryCriteriaBuilder queryCriteriaBuilder =
> + new StandardQueryCriteriaBuilder(User.class);
> +
>  public void createUser(User user) {
>
>  try {
> @@ -96,6 +97,22 @@
>  }
>  }
>
> + public PagedList getUsers(PageCriteria pageCriteria) {
> + try {
> + Criteria crit = queryCriteriaBuilder.
> + buildQueryCriteria(getSession(), pageCriteria);
> + List results = crit.list();
> +
> + // Need the total
> + Integer size = (Integer) getSession().
> + createQuery("select count(*) from User").uniqueResult();
> +
> + return new ArrayPagedList(pageCriteria, results, size);
> + } catch (HibernateException e) {
> + throw
> SessionFactoryUtils.convertHibernateAccessException(e);
> + }
> + }
> +
>  public void removeUser(String username) {
>  try {
>  User user = findUserByUsername(username);
> @@ -144,40 +161,4 @@
>  else
>  return null;
>  }
> -
> - public PagedList getUsers(PageCriteria pageCriteria) {
> -
> - try {
> - int firstResult = 0;
> - if (pageCriteria.getPageNumber() > 1)
> - firstResult = ((pageCriteria.getPageNumber() - 1) * pageCriteria
> - .getPageSize());
> -
> - Criteria crit = getSession().createCriteria(User.class);
> -
> - // Set the page criteria
> - crit.setMaxResults(pageCriteria.getPageSize());
> - crit.setFirstResult(firstResult);
> -
> -
> - // Do ordering
> - for (SortAttribute sortAtt : pageCriteria.getSortType().getAttributes()) {
> - if (sortAtt.getOrder())
> - crit.addOrder(Order.asc(sortAtt.getAttributeName()));
> - else
> - crit.addOrder(Order.desc(sortAtt.getAttributeName()));
> - }
> -
> - List results = crit.list();
> -
> - // Need the total
> - Integer size = (Integer) getSession().createQuery("select
> count(*) from User").uniqueResult();
> -
> - PagedList pagedList = new PagedListImpl(pageCriteria, results, size);
> - return pagedList;
> - } catch (HibernateException e) {
> - throw
> SessionFactoryUtils.convertHibernateAccessException(e);
> - }
> - }
> -
>  }
>
>
>
> _______________________________________________
> Commits-Cosmo mailing list
> Commits-Cosmo at osafoundation.org
> http://lists.osafoundation.org/cgi-bin/mailman/listinfo/commits-cosmo
>
>
>


More information about the Commits-Cosmo mailing list