X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fspring%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fpersistence%2Fhibernate%2FHibernateSupport.java;h=52dbc352b742a8ea2c0552b4b454dccc2b164bfd;hb=96c8961955a306314dfe0cf9ca192252de39fc1c;hp=ef0ac40af32811ef8d7b8bf6c2e640a6a1a2f86b;hpb=539c6d91b7a34e32c6669445d00e9275c337530a;p=utils diff --git a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java index ef0ac40a..52dbc352 100644 --- a/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java +++ b/support/spring/src/main/java/org/wamblee/persistence/hibernate/HibernateSupport.java @@ -1,12 +1,12 @@ /* - * Copyright 2005 the original author or authors. - * + * Copyright 2005-2010 the original author or authors. + * * 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. @@ -15,21 +15,19 @@ */ package org.wamblee.persistence.hibernate; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.orm.hibernate3.HibernateTemplate; -import org.springframework.orm.hibernate3.support.HibernateDaoSupport; - -import org.wamblee.persistence.Persistent; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Map.Entry; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.orm.hibernate3.HibernateTemplate; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.wamblee.persistence.Persistent; /** * Extension of @@ -243,21 +241,22 @@ public class HibernateSupport extends HibernateDaoSupport { * List of processed persistent objects. * */ - public static void processMap(Map aPersistent, Map aMerged, + public static void processMap(Map aPersistent, Map aMerged, List aProcessed) { if (aMerged.size() != aPersistent.size()) { throw new RuntimeException("Sizes differ " + aMerged.size() + " " + aPersistent.size()); } - Set keys = aMerged.keySet(); + Set> entries = aMerged.entrySet(); - for (Object key : keys) { + for (Entry entry : entries) { + Key key = entry.getKey(); if (!aPersistent.containsKey(key)) { throw new RuntimeException("Key '" + key + "' not found"); } - Object mergedValue = aMerged.get(key); + Value mergedValue = entry.getValue(); Object persistentValue = aPersistent.get(key); if (mergedValue instanceof Persistent) { @@ -287,6 +286,12 @@ public class HibernateSupport extends HibernateDaoSupport { } public boolean equals(Object aObj) { + if (aObj == null) { + return false; + } + if (!(aObj instanceof ObjectElem)) { + return false; + } return ((ObjectElem) aObj).object == object; }