3 changed files with 102 additions and 2 deletions
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited |
||||
* |
||||
* 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 net.sf.acegisecurity.domain.dao; |
||||
|
||||
/** |
||||
* Indicates an implementation capable of initializing an object, such that |
||||
* any lazy loading is guaranteed to have been completed. |
||||
* |
||||
* <p> |
||||
* Structured as a separate interface (rather than a subclass of |
||||
* <code>Dao</code>), as it is not required for all persistence strategies. |
||||
* </p> |
||||
* |
||||
* @author Ben Alex |
||||
* @version $Id$ |
||||
*/ |
||||
public interface InitializationCapable { |
||||
//~ Methods ================================================================
|
||||
|
||||
/** |
||||
* Initializes the indicated object. |
||||
* |
||||
* <p> |
||||
* May throw an exception if the implementation so desires. |
||||
* </p> |
||||
* |
||||
* @param entity to initialize |
||||
*/ |
||||
public void initialize(Object entity); |
||||
} |
||||
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited |
||||
* |
||||
* 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 net.sf.acegisecurity.domain.dao; |
||||
|
||||
import org.springframework.util.Assert; |
||||
|
||||
|
||||
|
||||
/** |
||||
* Convenience methods that support initialization of lazily loaded collections |
||||
* and associations using DAOs and other objects that implement |
||||
* {@link net.sf.acegisecurity.domain.dao.InitializationCapable}. |
||||
* |
||||
* @author Ben Alex |
||||
* @version $Id$ |
||||
*/ |
||||
public class InitializationUtils { |
||||
//~ Methods ================================================================
|
||||
|
||||
/** |
||||
* Initializes the passed entity using the passed |
||||
* DAO or services layer <code>Object</code> (provided that the passed |
||||
* <code>Object</code> implements <code>InitializationCapable</code>). |
||||
* |
||||
* @param daoOrServices the potential source for |
||||
* <code>InitializationCapable</code> services (never <code>null</code>) |
||||
* @param entity to evict (can be <code>null</code>) |
||||
*/ |
||||
public static void initializeIfRequired(Object daoOrServices, |
||||
Object entity) { |
||||
Assert.notNull(daoOrServices); |
||||
if (daoOrServices instanceof InitializationCapable) { |
||||
((InitializationCapable) daoOrServices).initialize(entity); |
||||
} |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue