You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2011/09/03 10:26:42 UTC
svn commit: r1164828 - in
/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto:
AbstractAutoMapper.java CombinedCollectionMapper.java
Author: kevin
Date: Sat Sep 3 08:26:41 2011
New Revision: 1164828
URL: http://svn.apache.org/viewvc?rev=1164828&view=rev
Log:
ISIS-118: Provided checks that prevent exceptions when an empty class/interface is used.
Modified:
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AbstractAutoMapper.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/CombinedCollectionMapper.java
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AbstractAutoMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AbstractAutoMapper.java?rev=1164828&r1=1164827&r2=1164828&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AbstractAutoMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AbstractAutoMapper.java Sat Sep 3 08:26:41 2011
@@ -24,6 +24,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.log4j.Logger;
+
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -40,7 +42,6 @@ import org.apache.isis.runtimes.dflt.obj
import org.apache.isis.runtimes.dflt.objectstores.sql.mapping.FieldMapping;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
-import org.apache.log4j.Logger;
public abstract class AbstractAutoMapper extends AbstractMapper {
private static final Logger LOG = Logger.getLogger(AbstractAutoMapper.class);
@@ -56,9 +57,13 @@ public abstract class AbstractAutoMapper
final ObjectMappingLookup objectMapperLookup) {
specification = IsisContext.getSpecificationLoader().loadSpecification(className);
if (specification.getProperties() == null || specification.getProperties().size() == 0) {
- throw new SqlObjectStoreException(specification.getFullIdentifier() + " has no fields: " + specification);
+ if (specification.isAbstract() == false) {
+ throw new SqlObjectStoreException(specification.getFullIdentifier() + " has no fields: "
+ + specification);
+ }
+ } else {
+ setUpFieldMappers(lookup, objectMapperLookup, className, parameterBase);
}
- setUpFieldMappers(lookup, objectMapperLookup, className, parameterBase);
}
private void setUpFieldMappers(final FieldMappingLookup lookup, final ObjectMappingLookup objectMapperLookup,
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/CombinedCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/CombinedCollectionMapper.java?rev=1164828&r1=1164827&r2=1164828&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/CombinedCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/CombinedCollectionMapper.java Sat Sep 3 08:26:41 2011
@@ -22,6 +22,8 @@ package org.apache.isis.runtimes.dflt.ob
import java.util.ArrayList;
import java.util.List;
+import org.apache.log4j.Logger;
+
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ResolveState;
@@ -40,7 +42,6 @@ import org.apache.isis.runtimes.dflt.obj
import org.apache.isis.runtimes.dflt.objectstores.sql.mapping.FieldMapping;
import org.apache.isis.runtimes.dflt.objectstores.sql.mapping.ObjectReferenceMapping;
import org.apache.isis.runtimes.dflt.runtime.persistence.PersistorUtil;
-import org.apache.log4j.Logger;
public class CombinedCollectionMapper extends AbstractAutoMapper implements CollectionMapper {
private static final Logger LOG = Logger.getLogger(CombinedCollectionMapper.class);
@@ -107,6 +108,11 @@ public class CombinedCollectionMapper ex
@Override
public void loadInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent) {
+ if (collectionMappers == null) {
+ // for abstract classes and interfaces
+ return;
+ }
+
final ObjectAdapter collection = field.get(parent);
if (collection.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
LOG.debug("loading internal collection " + field);
@@ -157,6 +163,10 @@ public class CombinedCollectionMapper ex
@Override
public void saveInternalCollection(final DatabaseConnector connector, final ObjectAdapter parent) {
+ if (collectionMappers == null) {
+ // for abtract classes and interfaces
+ return;
+ }
final ObjectAdapter collection = field.get(parent);
LOG.debug("Saving internal collection " + collection);