You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2010/12/11 20:37:04 UTC

svn commit: r1044697 - in /incubator/isis/trunk: alternatives/profilestore/xml/src/main/java/ core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/ core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/

Author: danhaywood
Date: Sat Dec 11 19:37:04 2010
New Revision: 1044697

URL: http://svn.apache.org/viewvc?rev=1044697&view=rev
Log:
added DomainObjectContainer#removeIfNotAlready() to mirror a similar method for #persist...()

Modified:
    incubator/isis/trunk/alternatives/profilestore/xml/src/main/java/   (props changed)
    incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
    incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/TemplateImageLoaderAwt.java

Propchange: incubator/isis/trunk/alternatives/profilestore/xml/src/main/java/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Dec 11 19:37:04 2010
@@ -0,0 +1 @@
+META-INF

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java?rev=1044697&r1=1044696&r2=1044697&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java Sat Dec 11 19:37:04 2010
@@ -55,6 +55,7 @@ public class DomainObjectContainerDefaul
 	/**
      * @see #doCreateTransientInstance(ObjectSpecification)
      */
+    @Override
     @SuppressWarnings("unchecked")
     public <T> T newTransientInstance(final Class<T> ofClass) {
         final ObjectSpecification spec = getRuntimeContext().getSpecificationLoader().loadSpecification(ofClass);
@@ -65,6 +66,7 @@ public class DomainObjectContainerDefaul
     /**
      * Returns a new instance of the specified class that will have been persisted.
      */
+    @Override
     public <T> T newPersistentInstance(final Class<T> ofClass) {
         T newInstance = newTransientInstance(ofClass);
         persist(newInstance);
@@ -74,6 +76,7 @@ public class DomainObjectContainerDefaul
     /**
      * Returns a new instance of the specified class that has the sane persisted state as the specified object.
      */
+    @Override
     public <T> T newInstance(final Class<T> ofClass, final Object object) {
         if (isPersistent(object)) {
             return newPersistentInstance(ofClass);
@@ -89,6 +92,7 @@ public class DomainObjectContainerDefaul
     	return getRuntimeContext().createTransientInstance(spec);
     }
 
+    @Override
     public void remove(final Object persistentObject) {
         if (persistentObject == null) {
             throw new IllegalArgumentException("Must specify a reference for disposing an object");
@@ -100,19 +104,31 @@ public class DomainObjectContainerDefaul
         
         getRuntimeContext().remove(adapter);
     }
+    
+    @Override
+    public void removeIfNotAlready(final Object object) {
+        if (!isPersistent(object)) {
+            return;
+        }
+        remove(object);
+    }
+
 
     ////////////////////////////////////////////////////////////////////
     // resolve, objectChanged
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public void resolve(final Object parent) {
     	runtimeContext.resolve(parent);
     }
 
+    @Override
     public void resolve(final Object parent, final Object field) {
     	runtimeContext.resolve(parent, field);
     }
 
+    @Override
     public void objectChanged(final Object object) {
     	runtimeContext.objectChanged(object);
     }
@@ -121,10 +137,12 @@ public class DomainObjectContainerDefaul
     // flush, commit
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public boolean flush() {
     	return runtimeContext.flush();
     }
 
+    @Override
     public void commit() {
     	runtimeContext.commit();
     }
@@ -134,11 +152,13 @@ public class DomainObjectContainerDefaul
     ////////////////////////////////////////////////////////////////////
 
 
-	public boolean isValid(final Object domainObject) {
+	@Override
+    public boolean isValid(final Object domainObject) {
 		return validate(domainObject) == null;
 	}
 
-	public String validate(final Object domainObject) {
+	@Override
+    public String validate(final Object domainObject) {
 		final ObjectAdapter adapter = getRuntimeContext().adapterFor(domainObject);
 		InteractionResult validityResult = adapter.getSpecification().isValidResult(adapter);
 		return validityResult.getReason();
@@ -149,11 +169,13 @@ public class DomainObjectContainerDefaul
     // persistence
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public boolean isPersistent(final Object domainObject) {
         final ObjectAdapter adapter = getRuntimeContext().adapterFor(domainObject);
         return adapter.isPersistent();
     }
 
+    @Override
     public void persist(final Object transientObject) {
         final ObjectAdapter adapter = getRuntimeContext().getAdapterFor(transientObject);
         if (isPersistent(transientObject)) {
@@ -162,16 +184,19 @@ public class DomainObjectContainerDefaul
         getRuntimeContext().makePersistent(adapter);
     }
     
+    @Override
     public void persistIfNotAlready(final Object object) {
-        if (!isPersistent(object)) {
-            persist(object);
+        if (isPersistent(object)) {
+            return;
         }
+        persist(object);
     }
 
     ////////////////////////////////////////////////////////////////////
     // security
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public UserMemento getUser() {
         final AuthenticationSession session = getRuntimeContext().getAuthenticationSession();
 
@@ -196,15 +221,18 @@ public class DomainObjectContainerDefaul
     // properties
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public String getProperty(String name) {
         return runtimeContext.getProperty(name) ;
     }
 
+    @Override
     public String getProperty(String name, String defaultValue) {
         String value = getProperty(name);
         return value == null ? defaultValue : value;
     }
     
+    @Override
     public List<String> getPropertyNames() {
         return runtimeContext.getPropertyNames() ;
     }
@@ -213,14 +241,17 @@ public class DomainObjectContainerDefaul
     // info, warn, error messages
     ////////////////////////////////////////////////////////////////////
 
+    @Override
     public void informUser(final String message) {
         getRuntimeContext().informUser(message);
     }
 
+    @Override
     public void raiseError(final String message) {
     	getRuntimeContext().raiseError(message);
     }
 
+    @Override
     public void warnUser(final String message) {
     	getRuntimeContext().warnUser(message);
     }
@@ -230,11 +261,13 @@ public class DomainObjectContainerDefaul
     // allInstances, allMatches
     ////////////////////////////////////////////////////////////////////
     
-	public <T> List<T> allInstances(final Class<T> type) {
+	@Override
+    public <T> List<T> allInstances(final Class<T> type) {
         return allMatches(new QueryFindAllInstances<T>(type));
     }
 
-	public <T> List<T> allMatches(final Class<T> cls, final Filter<T> filter) {
+	@Override
+    public <T> List<T> allMatches(final Class<T> cls, final Filter<T> filter) {
 		final List<T> allInstances = allInstances(cls);
 		final List<T> filtered = new ArrayList<T>();
 		for (T instance: allInstances) {
@@ -245,15 +278,18 @@ public class DomainObjectContainerDefaul
 		return filtered;
 	}
 
-	public <T> List<T> allMatches(final Class<T> type, final T pattern) {
+	@Override
+    public <T> List<T> allMatches(final Class<T> type, final T pattern) {
         Assert.assertTrue("pattern not compatible with type", type.isAssignableFrom(pattern.getClass()));
         return allMatches(new QueryFindByPattern<T>(type, pattern));
     }
 
+    @Override
     public <T> List<T> allMatches(final Class<T> type, final String title) {
         return allMatches(new QueryFindByTitle<T>(type, title));
     }
 
+    @Override
     public <T> List<T> allMatches(final Query<T> query) {
         List<ObjectAdapter> allMatching = getRuntimeContext().allMatchingQuery(query);
 		return IsisUtils.unwrap(allMatching);
@@ -263,7 +299,8 @@ public class DomainObjectContainerDefaul
     // firstMatch
     ////////////////////////////////////////////////////////////////////
 
-	public <T> T firstMatch(final Class<T> cls, final Filter<T> filter) {
+	@Override
+    public <T> T firstMatch(final Class<T> cls, final Filter<T> filter) {
 		final List<T> allInstances = allInstances(cls);
 		for (T instance: allInstances) {
 			if (filter.accept(instance)) {
@@ -273,16 +310,19 @@ public class DomainObjectContainerDefaul
 		return null;
 	}
     
+    @Override
     public <T> T firstMatch(final Class<T> type, final T pattern) {
         final List<T> instances = allMatches(type, pattern);
         return firstInstanceElseNull(instances);
     }
 
+    @Override
     public <T> T firstMatch(final Class<T> type, final String title) {
         final List<T> instances = allMatches(type, title);
         return firstInstanceElseNull(instances);
     }
 
+    @Override
     @SuppressWarnings("unchecked")
 	public <T> T firstMatch(final Query<T> query) {
         ObjectAdapter firstMatching = getRuntimeContext().firstMatchingQuery(query);
@@ -293,7 +333,8 @@ public class DomainObjectContainerDefaul
     // uniqueMatch
     ////////////////////////////////////////////////////////////////////
 
-	public <T> T uniqueMatch(final Class<T> type, final Filter<T> filter) {
+	@Override
+    public <T> T uniqueMatch(final Class<T> type, final Filter<T> filter) {
 		final List<T> instances = allMatches(type, filter);
 		if (instances.size() > 1) {
 			throw new RepositoryException(
@@ -302,6 +343,7 @@ public class DomainObjectContainerDefaul
 		return firstInstanceElseNull(instances);
 	}
 
+    @Override
     public <T> T uniqueMatch(final Class<T> type, final T pattern) {
         final List<T> instances = allMatches(type, pattern);
         if (instances.size() > 1) {
@@ -310,6 +352,7 @@ public class DomainObjectContainerDefaul
         return firstInstanceElseNull(instances);
     }
 
+    @Override
     public <T> T uniqueMatch(final Class<T> type, final String title) {
         final List<T> instances = allMatches(type, title);
         if (instances.size() > 1) {
@@ -318,6 +361,7 @@ public class DomainObjectContainerDefaul
         return firstInstanceElseNull(instances);
     }
 
+    @Override
     public <T> T uniqueMatch(final Query<T> query) {
         final List<T> instances = allMatches(query);
         if (instances.size() > 1) {
@@ -346,7 +390,8 @@ public class DomainObjectContainerDefaul
 		return runtimeContext;
 	}
 
-	public void setRuntimeContext(RuntimeContext runtimeContext) {
+	@Override
+    public void setRuntimeContext(RuntimeContext runtimeContext) {
 		this.runtimeContext = runtimeContext;
 		runtimeContext.setContainer(this);
 	}

Modified: incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/TemplateImageLoaderAwt.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/TemplateImageLoaderAwt.java?rev=1044697&r1=1044696&r2=1044697&view=diff
==============================================================================
--- incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/TemplateImageLoaderAwt.java (original)
+++ incubator/isis/trunk/core/runtime/src/main/java/org/apache/isis/core/runtime/imageloader/awt/TemplateImageLoaderAwt.java Sat Dec 11 19:37:04 2010
@@ -20,8 +20,8 @@
 
 package org.apache.isis.core.runtime.imageloader.awt;
 
-import static org.hamcrest.CoreMatchers.is;
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
+import static org.hamcrest.CoreMatchers.is;
 
 import java.awt.Canvas;
 import java.awt.Image;
@@ -36,12 +36,12 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Vector;
 
-import org.apache.log4j.Logger;
 import org.apache.isis.core.commons.lang.Resources;
 import org.apache.isis.core.metamodel.config.IsisConfiguration;
 import org.apache.isis.core.runtime.imageloader.TemplateImage;
 import org.apache.isis.core.runtime.imageloader.TemplateImageImpl;
 import org.apache.isis.core.runtime.imageloader.TemplateImageLoader;
+import org.apache.log4j.Logger;
 
 
 /**
@@ -50,9 +50,10 @@ import org.apache.isis.core.runtime.imag
  */
 public class TemplateImageLoaderAwt implements TemplateImageLoader {
 
+    private final static Logger LOG = Logger.getLogger(TemplateImageLoaderAwt.class);
+    
     private static final String LOAD_IMAGES_FROM_FILES_KEY = ImageConstants.PROPERTY_BASE + "load-images-from-files";
     private static final String[] EXTENSIONS = { "png", "gif", "jpg", "jpeg", "svg" };
-    private final static Logger LOG = Logger.getLogger(TemplateImageLoaderAwt.class);
     private final static String IMAGE_DIRECTORY = "images";
     private final static String IMAGE_DIRECTORY_PARAM = ImageConstants.PROPERTY_BASE + "image-directory";
     private static final String SEPARATOR = "/";
@@ -83,6 +84,7 @@ public class TemplateImageLoaderAwt impl
     // init, shutdown
     //////////////////////////////////////////////////////////////
 
+    @Override
     public void init() {
         ensureNotInitialized();
         LOG.info("images to be loaded from " + directory());
@@ -91,6 +93,7 @@ public class TemplateImageLoaderAwt impl
     }
 
 
+    @Override
     public void shutdown() {}
 
     
@@ -121,6 +124,7 @@ public class TemplateImageLoaderAwt impl
      * 
      * @return returns a {@link TemplateImage} for the specified image file, or null if none found.
      */
+    @Override
     public TemplateImage getTemplateImage(final String name) {
         ensureInitialized();