You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/08/04 20:04:15 UTC
svn commit: r1510286 [1/3] - in /cayenne/main/trunk:
framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/
framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/
framework/cayenne-core-unpublished/src/main/java/org/a...
Author: aadamchik
Date: Sun Aug 4 18:04:14 2013
New Revision: 1510286
URL: http://svn.apache.org/r1510286
Log:
correct attribute/rel return type in Obj/DbEntity
as a result can remove lots of unneeded casts
also some generics cleanup
Modified:
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/CayenneDataObject.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/ManyToManyCandidateEntity.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ClientObjRelationship.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DataMap.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbJoin.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbRelationship.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResult.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjEntity.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjRelationship.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/AttributePropertyDecorator.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/BaseArcProperty.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorResultMetadata.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/util/NamedObjectFactory.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/util/RelationshipFault.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/DataContextPrefetchTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/DeleteObjectTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/DeleteRulesTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/FlattenedArcKeyTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/access/JointPrefetchTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/map/ObjAttributeTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/map/ObjEntityTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/map/ObjRelationshipTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
cayenne/main/trunk/framework/cayenne-core-unpublished/src/test/java/org/apache/cayenne/util/EntityMergeSupportTest.java
cayenne/main/trunk/framework/cayenne-tools/src/main/java/org/apache/cayenne/gen/EntityUtils.java
cayenne/main/trunk/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java
cayenne/main/trunk/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
cayenne/main/trunk/framework/cayenne-wocompat-unpublished/src/main/java/org/apache/cayenne/wocompat/EOQuery.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/DuplicatedAttributesDialog.java
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/CayenneDataObject.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/CayenneDataObject.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/CayenneDataObject.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/CayenneDataObject.java Sun Aug 4 18:04:14 2013
@@ -43,8 +43,8 @@ import org.apache.cayenne.validation.Val
import org.apache.cayenne.validation.ValidationResult;
/**
- * A default implementation of DataObject interface. It is normally used as a superclass
- * of Cayenne persistent objects.
+ * A default implementation of DataObject interface. It is normally used as a
+ * superclass of Cayenne persistent objects.
*/
public class CayenneDataObject extends PersistentObject implements DataObject, Validating {
@@ -64,16 +64,16 @@ public class CayenneDataObject extends P
}
/**
- * Returns a value of the property identified by a property path. Supports reading
- * both mapped and unmapped properties. Unmapped properties are accessed in a manner
- * consistent with JavaBeans specification.
+ * Returns a value of the property identified by a property path. Supports
+ * reading both mapped and unmapped properties. Unmapped properties are
+ * accessed in a manner consistent with JavaBeans specification.
* <p>
- * Property path (or nested property) is a dot-separated path used to traverse object
- * relationships until the final object is found. If a null object found while
- * traversing path, null is returned. If a list is encountered in the middle of the
- * path, CayenneRuntimeException is thrown. Unlike
- * {@link #readPropertyDirectly(String)}, this method will resolve an object if it is
- * HOLLOW.
+ * Property path (or nested property) is a dot-separated path used to
+ * traverse object relationships until the final object is found. If a null
+ * object found while traversing path, null is returned. If a list is
+ * encountered in the middle of the path, CayenneRuntimeException is thrown.
+ * Unlike {@link #readPropertyDirectly(String)}, this method will resolve an
+ * object if it is HOLLOW.
* <p>
* Examples:
* </p>
@@ -109,20 +109,17 @@ public class CayenneDataObject extends P
public Object readNestedProperty(String path) {
if ((null == path) || (0 == path.length())) {
- throw new IllegalArgumentException(
- "the path must be supplied in order to lookup a nested property");
+ throw new IllegalArgumentException("the path must be supplied in order to lookup a nested property");
}
int dotIndex = path.indexOf('.');
if (0 == dotIndex) {
- throw new IllegalArgumentException(
- "the path is invalid because it starts with a period character");
+ throw new IllegalArgumentException("the path is invalid because it starts with a period character");
}
if (dotIndex == path.length() - 1) {
- throw new IllegalArgumentException(
- "the path is invalid because it ends with a period character");
+ throw new IllegalArgumentException("the path is invalid because it ends with a period character");
}
if (-1 == dotIndex) {
@@ -145,11 +142,9 @@ public class CayenneDataObject extends P
if (property == null) {
return null;
- }
- else if (property instanceof DataObject) {
+ } else if (property instanceof DataObject) {
return ((DataObject) property).readNestedProperty(pathRemainder);
- }
- else {
+ } else {
return Cayenne.readNestedProperty(property, pathRemainder);
}
}
@@ -170,8 +165,10 @@ public class CayenneDataObject extends P
public Object readProperty(String propertyName) {
if (objectContext != null) {
- // will resolve faults ourselves below as checking class descriptors for the
- // "lazyFaulting" flag is inefficient. Passing "false" here to suppress fault
+ // will resolve faults ourselves below as checking class descriptors
+ // for the
+ // "lazyFaulting" flag is inefficient. Passing "false" here to
+ // suppress fault
// processing
objectContext.prepareForAccess(this, propertyName, false);
}
@@ -195,7 +192,8 @@ public class CayenneDataObject extends P
// pass "false" to avoid unneeded fault processing
objectContext.prepareForAccess(this, propName, false);
- // note how we notify ObjectContext of change BEFORE the object is actually
+ // note how we notify ObjectContext of change BEFORE the object is
+ // actually
// changed... this is needed to take a valid current snapshot
Object oldValue = readPropertyDirectly(propName);
objectContext.propertyChanged(this, propName, oldValue, val);
@@ -214,15 +212,16 @@ public class CayenneDataObject extends P
// flattened or not)
Object holder = readProperty(relName);
- // call 'propertyChanged' AFTER readProperty as readProperty ensures that this
+ // call 'propertyChanged' AFTER readProperty as readProperty ensures
+ // that this
// object fault is resolved
getObjectContext().propertyChanged(this, relName, value, null);
- // TODO: andrus 8/20/2007 - can we optimize this somehow, avoiding type checking??
+ // TODO: andrus 8/20/2007 - can we optimize this somehow, avoiding type
+ // checking??
if (holder instanceof Collection) {
((Collection<Object>) holder).remove(value);
- }
- else if (holder instanceof Map) {
+ } else if (holder instanceof Map) {
((Map<Object, Object>) holder).remove(getMapKey(relName, value));
}
@@ -242,15 +241,16 @@ public class CayenneDataObject extends P
// flattened or not)
Object holder = readProperty(relName);
- // call 'propertyChanged' AFTER readProperty as readProperty ensures that this
+ // call 'propertyChanged' AFTER readProperty as readProperty ensures
+ // that this
// object fault is resolved
getObjectContext().propertyChanged(this, relName, null, value);
- // TODO: andrus 8/20/2007 - can we optimize this somehow, avoiding type checking??
+ // TODO: andrus 8/20/2007 - can we optimize this somehow, avoiding type
+ // checking??
if (holder instanceof Collection) {
((Collection<Object>) holder).add(value);
- }
- else if (holder instanceof Map) {
+ } else if (holder instanceof Map) {
((Map<Object, Object>) holder).put(getMapKey(relName, value), value);
}
@@ -259,10 +259,7 @@ public class CayenneDataObject extends P
}
}
- public void setToOneTarget(
- String relationshipName,
- DataObject value,
- boolean setReverse) {
+ public void setToOneTarget(String relationshipName, DataObject value, boolean setReverse) {
willConnect(relationshipName, value);
@@ -290,10 +287,11 @@ public class CayenneDataObject extends P
}
/**
- * Called before establishing a relationship with another object. Applies "persistence
- * by reachability" logic, pulling one of the two objects to a DataConext of another
- * object in case one of the objects is transient. If both objects are persistent, and
- * they don't have the same DataContext, CayenneRuntimeException is thrown.
+ * Called before establishing a relationship with another object. Applies
+ * "persistence by reachability" logic, pulling one of the two objects to a
+ * DataConext of another object in case one of the objects is transient. If
+ * both objects are persistent, and they don't have the same DataContext,
+ * CayenneRuntimeException is thrown.
*
* @since 1.2
*/
@@ -302,30 +300,25 @@ public class CayenneDataObject extends P
// ObjectContext or target is null
if (object == null || this.getObjectContext() == object.getObjectContext()) {
return;
- }
- else if (this.getObjectContext() == null && object.getObjectContext() != null) {
+ } else if (this.getObjectContext() == null && object.getObjectContext() != null) {
object.getObjectContext().registerNewObject(this);
- }
- else if (this.getObjectContext() != null && object.getObjectContext() == null) {
+ } else if (this.getObjectContext() != null && object.getObjectContext() == null) {
this.getObjectContext().registerNewObject(object);
- }
- else {
- throw new CayenneRuntimeException(
- "Cannot set object as destination of relationship "
- + relationshipName
- + " because it is in a different ObjectContext");
+ } else {
+ throw new CayenneRuntimeException("Cannot set object as destination of relationship " + relationshipName
+ + " because it is in a different ObjectContext");
}
}
/**
- * Initializes reverse relationship from object <code>val</code> to this object.
+ * Initializes reverse relationship from object <code>val</code> to this
+ * object.
*
- * @param relName name of relationship from this object to <code>val</code>.
+ * @param relName
+ * name of relationship from this object to <code>val</code>.
*/
protected void setReverseRelationship(String relName, DataObject val) {
- ObjRelationship rel = (ObjRelationship) objectContext
- .getEntityResolver()
- .getObjEntity(objectId.getEntityName())
+ ObjRelationship rel = objectContext.getEntityResolver().getObjEntity(objectId.getEntityName())
.getRelationship(relName);
ObjRelationship revRel = rel.getReverseRelationship();
if (revRel != null) {
@@ -337,8 +330,8 @@ public class CayenneDataObject extends P
}
/**
- * Removes current object from reverse relationship of object <code>val</code> to this
- * object.
+ * Removes current object from reverse relationship of object
+ * <code>val</code> to this object.
*/
protected void unsetReverseRelationship(String relName, DataObject val) {
@@ -346,11 +339,10 @@ public class CayenneDataObject extends P
ObjEntity entity = resolver.getObjEntity(objectId.getEntityName());
if (entity == null) {
- throw new IllegalStateException("DataObject's entity is unmapped, objectId: "
- + objectId);
+ throw new IllegalStateException("DataObject's entity is unmapped, objectId: " + objectId);
}
- ObjRelationship rel = (ObjRelationship) entity.getRelationship(relName);
+ ObjRelationship rel = entity.getRelationship(relName);
ObjRelationship revRel = rel.getReverseRelationship();
if (revRel != null) {
if (revRel.isToMany())
@@ -361,8 +353,8 @@ public class CayenneDataObject extends P
}
/**
- * A variation of "toString" method, that may be more efficient in some cases. For
- * example when printing a list of objects into the same String.
+ * A variation of "toString" method, that may be more efficient in some
+ * cases. For example when printing a list of objects into the same String.
*/
public StringBuffer toStringBuffer(StringBuffer buffer, boolean fullDesc) {
String id = (objectId != null) ? objectId.toString() : "<no id>";
@@ -390,14 +382,11 @@ public class CayenneDataObject extends P
if (value instanceof Persistent) {
buffer.append('{').append(((Persistent) value).getObjectId()).append('}');
- }
- else if (value instanceof Collection) {
+ } else if (value instanceof Collection) {
buffer.append("(..)");
- }
- else if (value instanceof Fault) {
+ } else if (value instanceof Fault) {
buffer.append('?');
- }
- else {
+ } else {
buffer.append(value);
}
@@ -418,36 +407,35 @@ public class CayenneDataObject extends P
out.writeInt(persistenceState);
switch (persistenceState) {
- // New, modified or transient or deleted - write the whole shebang
- // The other states (committed, hollow) all need just ObjectId
- case PersistenceState.TRANSIENT:
- case PersistenceState.NEW:
- case PersistenceState.MODIFIED:
- case PersistenceState.DELETED:
- out.writeObject(values);
- break;
+ // New, modified or transient or deleted - write the whole shebang
+ // The other states (committed, hollow) all need just ObjectId
+ case PersistenceState.TRANSIENT:
+ case PersistenceState.NEW:
+ case PersistenceState.MODIFIED:
+ case PersistenceState.DELETED:
+ out.writeObject(values);
+ break;
}
out.writeObject(objectId);
}
- private void readObject(ObjectInputStream in) throws IOException,
- ClassNotFoundException {
+ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
this.persistenceState = in.readInt();
switch (persistenceState) {
- case PersistenceState.TRANSIENT:
- case PersistenceState.NEW:
- case PersistenceState.MODIFIED:
- case PersistenceState.DELETED:
- values = (Map<String, Object>) in.readObject();
- break;
- case PersistenceState.COMMITTED:
- case PersistenceState.HOLLOW:
- this.persistenceState = PersistenceState.HOLLOW;
- // props will be populated when required (readProperty called)
- values = new HashMap<String, Object>();
- break;
+ case PersistenceState.TRANSIENT:
+ case PersistenceState.NEW:
+ case PersistenceState.MODIFIED:
+ case PersistenceState.DELETED:
+ values = (Map<String, Object>) in.readObject();
+ break;
+ case PersistenceState.COMMITTED:
+ case PersistenceState.HOLLOW:
+ this.persistenceState = PersistenceState.HOLLOW;
+ // props will be populated when required (readProperty called)
+ values = new HashMap<String, Object>();
+ break;
}
this.objectId = (ObjectId) in.readObject();
@@ -458,7 +446,8 @@ public class CayenneDataObject extends P
}
/**
- * Returns a version of a DataRow snapshot that was used to create this object.
+ * Returns a version of a DataRow snapshot that was used to create this
+ * object.
*
* @since 1.1
*/
@@ -474,60 +463,60 @@ public class CayenneDataObject extends P
}
/**
- * Convenience method to invoke {@link Cayenne#makePath(String...)} from within a
- * DataObject subclass to create a dotted path using the generated string constants
- * for attributes and relationships.
+ * Convenience method to invoke {@link Cayenne#makePath(String...)} from
+ * within a DataObject subclass to create a dotted path using the generated
+ * string constants for attributes and relationships.
*
* @see Cayenne#makePath(String...)
* @since 3.1
*/
- // TODO: should we deprecate this one? After all the purpose of "Cayenne" class is to
- // get rid of utility methods elsewhere..
+ // TODO: should we deprecate this one? After all the purpose of "Cayenne"
+ // class is to
+ // get rid of utility methods elsewhere..
public static String makePath(String... pathParts) {
return Cayenne.makePath(pathParts);
}
/**
- * Performs property validation of the object, appending any validation failures to
- * the provided validationResult object. This method is invoked from "validateFor.."
- * before committing a NEW or MODIFIED object to the database. Validation includes
- * checking for null values and value sizes. CayenneDataObject subclasses may override
- * this method, calling super.
+ * Performs property validation of the object, appending any validation
+ * failures to the provided validationResult object. This method is invoked
+ * from "validateFor.." before committing a NEW or MODIFIED object to the
+ * database. Validation includes checking for null values and value sizes.
+ * CayenneDataObject subclasses may override this method, calling super.
*
* @since 1.1
*/
protected void validateForSave(ValidationResult validationResult) {
- ObjEntity objEntity = getObjectContext()
- .getEntityResolver()
- .lookupObjEntity(this);
+ ObjEntity objEntity = getObjectContext().getEntityResolver().lookupObjEntity(this);
if (objEntity == null) {
- throw new CayenneRuntimeException(
- "No ObjEntity mapping found for DataObject " + getClass().getName());
+ throw new CayenneRuntimeException("No ObjEntity mapping found for DataObject " + getClass().getName());
}
// validate mandatory attributes
- // handling a special case - meaningful mandatory FK... defer failures until
- // relationship validation is done... This is just a temporary solution, as
- // handling meaningful keys within the object lifecycle requires something more,
- // namely read/write methods for relationships and direct values should be
+ // handling a special case - meaningful mandatory FK... defer failures
+ // until
+ // relationship validation is done... This is just a temporary solution,
+ // as
+ // handling meaningful keys within the object lifecycle requires
+ // something more,
+ // namely read/write methods for relationships and direct values should
+ // be
// synchronous with each other..
Map<String, ValidationFailure> failedDbAttributes = null;
- for (Object next : objEntity.getAttributes()) {
+ for (ObjAttribute next : objEntity.getAttributes()) {
// TODO: andrus, 2/20/2007 - handle embedded attribute
if (next instanceof EmbeddedAttribute) {
continue;
}
- ObjAttribute objAttribute = (ObjAttribute) next;
- DbAttribute dbAttribute = objAttribute.getDbAttribute();
+ DbAttribute dbAttribute = next.getDbAttribute();
if (dbAttribute == null) {
- throw new CayenneRuntimeException("ObjAttribute '"
- + objAttribute.getName()
+ throw new CayenneRuntimeException("ObjAttribute '" + next.getName()
+ "' does not have a corresponding DbAttribute");
}
@@ -536,12 +525,9 @@ public class CayenneDataObject extends P
continue;
}
- Object value = this.readPropertyDirectly(objAttribute.getName());
+ Object value = this.readPropertyDirectly(next.getName());
if (dbAttribute.isMandatory()) {
- ValidationFailure failure = BeanValidationFailure.validateNotNull(
- this,
- objAttribute.getName(),
- value);
+ ValidationFailure failure = BeanValidationFailure.validateNotNull(this, next.getName(), value);
if (failure != null) {
@@ -560,31 +546,16 @@ public class CayenneDataObject extends P
if (value.getClass().isArray()) {
int len = Array.getLength(value);
if (len > dbAttribute.getMaxLength()) {
- String message = "\""
- + objAttribute.getName()
- + "\" exceeds maximum allowed length ("
- + dbAttribute.getMaxLength()
- + " bytes): "
- + len;
- validationResult.addFailure(new BeanValidationFailure(
- this,
- objAttribute.getName(),
- message));
+ String message = "\"" + next.getName() + "\" exceeds maximum allowed length ("
+ + dbAttribute.getMaxLength() + " bytes): " + len;
+ validationResult.addFailure(new BeanValidationFailure(this, next.getName(), message));
}
- }
- else if (value instanceof CharSequence) {
+ } else if (value instanceof CharSequence) {
int len = ((CharSequence) value).length();
if (len > dbAttribute.getMaxLength()) {
- String message = "\""
- + objAttribute.getName()
- + "\" exceeds maximum allowed length ("
- + dbAttribute.getMaxLength()
- + " chars): "
- + len;
- validationResult.addFailure(new BeanValidationFailure(
- this,
- objAttribute.getName(),
- message));
+ String message = "\"" + next.getName() + "\" exceeds maximum allowed length ("
+ + dbAttribute.getMaxLength() + " chars): " + len;
+ validationResult.addFailure(new BeanValidationFailure(this, next.getName(), message));
}
}
}
@@ -614,15 +585,15 @@ public class CayenneDataObject extends P
if (failedDbAttributes != null && !failedDbAttributes.isEmpty()) {
failedDbAttributes.remove(source.getName());
- // loop through all joins if there were previous mandatory
+ // loop through all joins if there were previous
+ // mandatory
// attribute failures....
if (!failedDbAttributes.isEmpty()) {
continue;
}
}
- }
- else {
+ } else {
// do not validate if the relation is based on
// multiple keys with some that can be nullable.
validate = false;
@@ -631,10 +602,7 @@ public class CayenneDataObject extends P
if (validate) {
Object value = this.readPropertyDirectly(relationship.getName());
- ValidationFailure failure = BeanValidationFailure.validateNotNull(
- this,
- relationship.getName(),
- value);
+ ValidationFailure failure = BeanValidationFailure.validateNotNull(this, relationship.getName(), value);
if (failure != null) {
validationResult.addFailure(failure);
@@ -652,9 +620,9 @@ public class CayenneDataObject extends P
}
/**
- * Calls {@link #validateForSave(ValidationResult)}. CayenneDataObject subclasses may
- * override it providing validation logic that should be executed for the newly
- * created objects before saving them.
+ * Calls {@link #validateForSave(ValidationResult)}. CayenneDataObject
+ * subclasses may override it providing validation logic that should be
+ * executed for the newly created objects before saving them.
*
* @since 1.1
*/
@@ -663,9 +631,9 @@ public class CayenneDataObject extends P
}
/**
- * Calls {@link #validateForSave(ValidationResult)}. CayenneDataObject subclasses may
- * override it providing validation logic that should be executed for the modified
- * objects before saving them.
+ * Calls {@link #validateForSave(ValidationResult)}. CayenneDataObject
+ * subclasses may override it providing validation logic that should be
+ * executed for the modified objects before saving them.
*
* @since 1.1
*/
@@ -674,9 +642,9 @@ public class CayenneDataObject extends P
}
/**
- * This implementation does nothing. CayenneDataObject subclasses may override it
- * providing validation logic that should be executed for the deleted objects before
- * committing them.
+ * This implementation does nothing. CayenneDataObject subclasses may
+ * override it providing validation logic that should be executed for the
+ * deleted objects before committing them.
*
* @since 1.1
*/
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java Sun Aug 4 18:04:14 2013
@@ -35,7 +35,8 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
/**
- * Processes object diffs, generating DB diffs. Can be used for both UPDATE and INSERT.
+ * Processes object diffs, generating DB diffs. Can be used for both UPDATE and
+ * INSERT.
*
* @since 1.2
*/
@@ -58,8 +59,8 @@ class DataDomainDBDiffBuilder implements
}
/**
- * Resets the builder to process a new object for the previously set combination of
- * objEntity/dbEntity.
+ * Resets the builder to process a new object for the previously set
+ * combination of objEntity/dbEntity.
*/
private void reset() {
currentPropertyDiff = null;
@@ -92,11 +93,10 @@ class DataDomainDBDiffBuilder implements
// populate changed columns
if (currentPropertyDiff != null) {
for (final Map.Entry<Object, Object> entry : currentPropertyDiff.entrySet()) {
- ObjAttribute attribute = (ObjAttribute) objEntity.getAttribute(entry
- .getKey()
- .toString());
+ ObjAttribute attribute = objEntity.getAttribute(entry.getKey().toString());
- // in case of a flattened attribute, ensure that it belongs to this
+ // in case of a flattened attribute, ensure that it belongs to
+ // this
// bucket...
DbAttribute dbAttribute = attribute.getDbAttribute();
if (dbAttribute.getEntity() == dbEntity) {
@@ -110,16 +110,14 @@ class DataDomainDBDiffBuilder implements
// populate changed FKs
if (currentArcDiff != null) {
for (final Map.Entry<Object, Object> entry : currentArcDiff.entrySet()) {
- ObjRelationship relation = (ObjRelationship) objEntity
- .getRelationship(entry.getKey().toString());
+ ObjRelationship relation = objEntity.getRelationship(entry.getKey().toString());
DbRelationship dbRelation = relation.getDbRelationships().get(0);
ObjectId targetId = (ObjectId) entry.getValue();
for (DbJoin join : dbRelation.getJoins()) {
- Object value = (targetId != null) ? new PropagatedValueFactory(
- targetId,
- join.getTargetName()) : null;
+ Object value = (targetId != null) ? new PropagatedValueFactory(targetId, join.getTargetName())
+ : null;
dbDiff.put(join.getSourceName(), value);
}
@@ -129,7 +127,8 @@ class DataDomainDBDiffBuilder implements
private void appendPrimaryKeys(Map<Object, Object> dbDiff) {
- // populate changed PKs; note that we might end up overriding some values taken
+ // populate changed PKs; note that we might end up overriding some
+ // values taken
// from the object (e.g. zero PK's).
if (currentId != null) {
dbDiff.putAll(((ObjectId) currentId).getIdSnapshot());
@@ -140,12 +139,9 @@ class DataDomainDBDiffBuilder implements
// GraphChangeHandler methods.
// ==================================================
- public void nodePropertyChanged(
- Object nodeId,
- String property,
- Object oldValue,
- Object newValue) {
- // note - no checking for phantom mod... assuming there is no phantom diffs
+ public void nodePropertyChanged(Object nodeId, String property, Object oldValue, Object newValue) {
+ // note - no checking for phantom mod... assuming there is no phantom
+ // diffs
if (currentPropertyDiff == null) {
currentPropertyDiff = new HashMap<Object, Object>();
@@ -156,8 +152,7 @@ class DataDomainDBDiffBuilder implements
public void arcCreated(Object nodeId, Object targetNodeId, Object arcId) {
- ObjRelationship relationship = (ObjRelationship) objEntity.getRelationship(arcId
- .toString());
+ ObjRelationship relationship = objEntity.getRelationship(arcId.toString());
if (!relationship.isSourceIndependentFromTargetChange()) {
if (currentArcDiff == null) {
currentArcDiff = new HashMap<Object, Object>();
@@ -168,16 +163,15 @@ class DataDomainDBDiffBuilder implements
public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
- ObjRelationship relationship = (ObjRelationship) objEntity.getRelationship(arcId
- .toString());
+ ObjRelationship relationship = objEntity.getRelationship(arcId.toString());
if (!relationship.isSourceIndependentFromTargetChange()) {
if (currentArcDiff == null) {
currentArcDiff = new HashMap<Object, Object>();
currentArcDiff.put(arcId, null);
- }
- else {
- // skip deletion record if a substitute arc was created prior to deleting
+ } else {
+ // skip deletion record if a substitute arc was created prior to
+ // deleting
// the old arc...
Object existingTargetId = currentArcDiff.get(arcId);
if (existingTargetId == null || targetNodeId.equals(existingTargetId)) {
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java Sun Aug 4 18:04:14 2013
@@ -32,8 +32,8 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
/**
- * A processor of ObjectStore indirect changes, such as flattened relationships and
- * to-many relationships.
+ * A processor of ObjectStore indirect changes, such as flattened relationships
+ * and to-many relationships.
*
* @since 1.2
*/
@@ -54,7 +54,8 @@ final class DataDomainIndirectDiffBuilde
}
void processIndirectChanges(GraphDiff allChanges) {
- // extract flattened and indirect changes and remove duplicate changes...
+ // extract flattened and indirect changes and remove duplicate
+ // changes...
allChanges.apply(this);
if (!flattenedInserts.isEmpty()) {
@@ -75,11 +76,10 @@ final class DataDomainIndirectDiffBuilde
@Override
public void arcCreated(Object nodeId, Object targetNodeId, Object arcId) {
ObjEntity entity = resolver.getObjEntity(((ObjectId) nodeId).getEntityName());
- ObjRelationship relationship = (ObjRelationship) entity.getRelationship(arcId
- .toString());
+ ObjRelationship relationship = entity.getRelationship(arcId.toString());
if (relationship.isSourceIndependentFromTargetChange()) {
-
+
ObjectId nodeObjectId = (ObjectId) nodeId;
if (!nodeObjectId.isTemporary()) {
indirectModifications.add(nodeObjectId);
@@ -87,32 +87,30 @@ final class DataDomainIndirectDiffBuilde
if (relationship.isFlattened()) {
if (relationship.isReadOnly()) {
- throw new CayenneRuntimeException(
- "Cannot set the read-only flattened relationship '"
- + relationship.getName() + "' in ObjEntity '" + relationship.getSourceEntity().getName() + "'.");
+ throw new CayenneRuntimeException("Cannot set the read-only flattened relationship '"
+ + relationship.getName() + "' in ObjEntity '" + relationship.getSourceEntity().getName()
+ + "'.");
}
- // Register this combination (so we can remove it later if an insert
+ // Register this combination (so we can remove it later if an
+ // insert
// occurs before commit)
- FlattenedArcKey key = new FlattenedArcKey(
- (ObjectId) nodeId,
- (ObjectId) targetNodeId,
- relationship);
+ FlattenedArcKey key = new FlattenedArcKey((ObjectId) nodeId, (ObjectId) targetNodeId, relationship);
- // If this combination has already been deleted, simply undelete it.
+ // If this combination has already been deleted, simply undelete
+ // it.
if (!flattenedDeletes.remove(key)) {
flattenedInserts.add(key);
}
}
}
}
-
+
@Override
public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
ObjEntity entity = resolver.getObjEntity(((ObjectId) nodeId).getEntityName());
- ObjRelationship relationship = (ObjRelationship) entity.getRelationship(arcId
- .toString());
+ ObjRelationship relationship = entity.getRelationship(arcId.toString());
if (relationship.isSourceIndependentFromTargetChange()) {
// do not record temporary id mods...
@@ -123,19 +121,17 @@ final class DataDomainIndirectDiffBuilde
if (relationship.isFlattened()) {
if (relationship.isReadOnly()) {
- throw new CayenneRuntimeException(
- "Cannot unset the read-only flattened relationship "
- + relationship.getName());
+ throw new CayenneRuntimeException("Cannot unset the read-only flattened relationship "
+ + relationship.getName());
}
- // Register this combination (so we can remove it later if an insert
+ // Register this combination (so we can remove it later if an
+ // insert
// occurs before commit)
- FlattenedArcKey key = new FlattenedArcKey(
- (ObjectId) nodeId,
- (ObjectId) targetNodeId,
- relationship);
+ FlattenedArcKey key = new FlattenedArcKey((ObjectId) nodeId, (ObjectId) targetNodeId, relationship);
- // If this combination has already been inserted, simply "uninsert" it
+ // If this combination has already been inserted, simply
+ // "uninsert" it
// also do not delete it twice
if (!flattenedInserts.remove(key)) {
flattenedDeletes.add(key);
@@ -160,11 +156,7 @@ final class DataDomainIndirectDiffBuilde
}
@Override
- public void nodePropertyChanged(
- Object nodeId,
- String property,
- Object oldValue,
- Object newValue) {
+ public void nodePropertyChanged(Object nodeId, String property, Object oldValue, Object newValue) {
// noop
}
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/ManyToManyCandidateEntity.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/ManyToManyCandidateEntity.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/ManyToManyCandidateEntity.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/ManyToManyCandidateEntity.java Sun Aug 4 18:04:14 2013
@@ -18,15 +18,14 @@
****************************************************************/
package org.apache.cayenne.access;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.util.NamedObjectFactory;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Class represent ObjEntity that may be optimized using flattened relationships
* as many to many table
@@ -54,13 +53,13 @@ class ManyToManyCandidateEntity {
}
private ObjRelationship getRelationship1() {
- List<Relationship> relationships = new ArrayList<Relationship>(entity.getRelationships());
- return (ObjRelationship) relationships.get(0);
+ List<ObjRelationship> relationships = new ArrayList<ObjRelationship>(entity.getRelationships());
+ return relationships.get(0);
}
private ObjRelationship getRelationship2() {
- List<Relationship> relationships = new ArrayList<Relationship>(entity.getRelationships());
- return (ObjRelationship) relationships.get(1);
+ List<ObjRelationship> relationships = new ArrayList<ObjRelationship>(entity.getRelationships());
+ return relationships.get(1);
}
private ObjEntity getTargetEntity1() {
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/DataRowPostProcessor.java Sun Aug 4 18:04:14 2013
@@ -23,8 +23,8 @@ import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
+import java.util.Map.Entry;
import org.apache.cayenne.DataRow;
import org.apache.cayenne.access.trans.SelectTranslator;
@@ -49,21 +49,18 @@ class DataRowPostProcessor {
// factory method
static DataRowPostProcessor createPostProcessor(SelectTranslator translator) {
- Map attributeOverrides = translator.getAttributeOverrides();
+ Map<ObjAttribute, ColumnDescriptor> attributeOverrides = translator.getAttributeOverrides();
if (attributeOverrides.isEmpty()) {
return null;
}
ColumnDescriptor[] columns = translator.getResultColumns();
- Map<String, Collection<ColumnOverride>> columnOverrides = new HashMap<String, Collection<ColumnOverride>>(
- 2);
+ Map<String, Collection<ColumnOverride>> columnOverrides = new HashMap<String, Collection<ColumnOverride>>(2);
- Iterator it = attributeOverrides.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
+ for (Entry<ObjAttribute, ColumnDescriptor> entry : attributeOverrides.entrySet()) {
- ObjAttribute attribute = (ObjAttribute) entry.getKey();
+ ObjAttribute attribute = entry.getKey();
Entity entity = attribute.getEntity();
String key = null;
@@ -72,7 +69,8 @@ class DataRowPostProcessor {
for (int i = 0; i < columns.length; i++) {
if (columns[i] == entry.getValue()) {
- // if attribute type is the same as column, there is no conflict
+ // if attribute type is the same as column, there is no
+ // conflict
if (!attribute.getType().equals(columns[i].getJavaClass())) {
// note that JDBC index is "1" based
index = i + 1;
@@ -88,10 +86,7 @@ class DataRowPostProcessor {
continue;
}
- ExtendedType converter = translator
- .getAdapter()
- .getExtendedTypes()
- .getRegisteredType(attribute.getType());
+ ExtendedType converter = translator.getAdapter().getExtendedTypes().getRegisteredType(attribute.getType());
Collection<ColumnOverride> overrides = columnOverrides.get(entity.getName());
@@ -108,9 +103,7 @@ class DataRowPostProcessor {
return null;
}
- ClassDescriptor rootDescriptor = translator
- .getQueryMetadata()
- .getClassDescriptor();
+ ClassDescriptor rootDescriptor = translator.getQueryMetadata().getClassDescriptor();
return new DataRowPostProcessor(rootDescriptor, columnOverrides);
}
@@ -121,11 +114,9 @@ class DataRowPostProcessor {
if (classDescriptor != null && classDescriptor.hasSubclasses()) {
this.inheritanceTree = classDescriptor.getEntityInheritanceTree();
this.columnOverrides = columnOverrides;
- }
- else {
+ } else {
if (columnOverrides.size() != 1) {
- throw new IllegalArgumentException(
- "No inheritance - there must be only one override set");
+ throw new IllegalArgumentException("No inheritance - there must be only one override set");
}
defaultOverrides = columnOverrides.values().iterator().next();
@@ -139,10 +130,7 @@ class DataRowPostProcessor {
if (overrides != null) {
for (final ColumnOverride override : overrides) {
- Object newValue = override.converter.materializeObject(
- resultSet,
- override.index,
- override.jdbcType);
+ Object newValue = override.converter.materializeObject(resultSet, override.index, override.jdbcType);
row.put(override.key, newValue);
}
}
@@ -151,8 +139,7 @@ class DataRowPostProcessor {
private final Collection<ColumnOverride> getOverrides(DataRow row) {
if (defaultOverrides != null) {
return defaultOverrides;
- }
- else {
+ } else {
ObjEntity entity = inheritanceTree.entityMatchingRow(row);
return entity != null ? columnOverrides.get(entity.getName()) : null;
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java Sun Aug 4 18:04:14 2013
@@ -174,8 +174,7 @@ public class EJBQLConditionTranslator ex
String subqueryTableName = quoter.quotedFullyQualifiedName(targetDescriptor.getEntity().getDbEntity());
String subqueryRootAlias = context.getTableAlias(subqueryId, subqueryTableName);
- ObjRelationship relationship = (ObjRelationship) correlatedEntityDescriptor.getEntity().getRelationship(
- path.getRelativePath());
+ ObjRelationship relationship = correlatedEntityDescriptor.getEntity().getRelationship(path.getRelativePath());
if (relationship.getDbRelationshipPath().contains(".")) {
// if the DbRelationshipPath contains '.', the relationship is
@@ -256,8 +255,7 @@ public class EJBQLConditionTranslator ex
String subqueryTableName = quoter.quotedFullyQualifiedName(targetDescriptor.getEntity().getDbEntity());
String subqueryRootAlias = context.getTableAlias(subqueryId, subqueryTableName);
- ObjRelationship relationship = (ObjRelationship) correlatedEntityDescriptor.getEntity().getRelationship(
- path.getRelativePath());
+ ObjRelationship relationship = correlatedEntityDescriptor.getEntity().getRelationship(path.getRelativePath());
if (relationship.getDbRelationshipPath().contains(".")) {
// if the DbRelationshipPath contains '.', the relationship is
@@ -618,8 +616,8 @@ public class EJBQLConditionTranslator ex
}
DbEntity table = descriptor.getEntity().getDbEntity();
- String alias = context
- .getTableAlias(expression.getText(), context.getQuotingStrategy().quotedFullyQualifiedName(table));
+ String alias = context.getTableAlias(expression.getText(), context.getQuotingStrategy()
+ .quotedFullyQualifiedName(table));
Collection<DbAttribute> pks = table.getPrimaryKeys();
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java Sun Aug 4 18:04:14 2013
@@ -152,7 +152,7 @@ public abstract class EJBQLPathTranslato
}
protected void processIntermediatePathComponent() {
- ObjRelationship relationship = (ObjRelationship) currentEntity.getRelationship(lastPathComponent);
+ ObjRelationship relationship = currentEntity.getRelationship(lastPathComponent);
if (relationship == null) {
throw new EJBQLException("Unknown relationship '" + lastPathComponent + "' for entity '"
+ currentEntity.getName() + "'");
@@ -163,14 +163,14 @@ public abstract class EJBQLPathTranslato
protected void processLastPathComponent() {
- ObjAttribute attribute = (ObjAttribute) currentEntity.getAttribute(lastPathComponent);
+ ObjAttribute attribute = currentEntity.getAttribute(lastPathComponent);
if (attribute != null) {
processTerminatingAttribute(attribute);
return;
}
- ObjRelationship relationship = (ObjRelationship) currentEntity.getRelationship(lastPathComponent);
+ ObjRelationship relationship = currentEntity.getRelationship(lastPathComponent);
if (relationship != null) {
processTerminatingRelationship(relationship);
return;
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java Sun Aug 4 18:04:14 2013
@@ -50,8 +50,9 @@ import org.apache.cayenne.reflect.ClassD
import org.apache.commons.collections.comparators.ReverseComparator;
/**
- * Implements dependency sorting algorithms for ObjEntities, DbEntities and DataObjects.
- * Presently it works for acyclic database schemas with possible multi-reflexive tables.
+ * Implements dependency sorting algorithms for ObjEntities, DbEntities and
+ * DataObjects. Presently it works for acyclic database schemas with possible
+ * multi-reflexive tables.
*
* @since 3.1
*/
@@ -79,7 +80,8 @@ public class AshwoodEntitySorter impleme
// correct double check locking per Joshua Bloch
// http://java.sun.com/developer/technicalArticles/Interviews/bloch_effective_08_qa.html
- // (maybe we should use something like CountDownLatch or a Cyclic barrier
+ // (maybe we should use something like CountDownLatch or a Cyclic
+ // barrier
// instead?)
boolean localDirty = dirty;
@@ -99,8 +101,7 @@ public class AshwoodEntitySorter impleme
*/
protected void doIndexSorter() {
- Map<DbEntity, List<DbRelationship>> reflexiveDbEntities = new HashMap<DbEntity, List<DbRelationship>>(
- 32);
+ Map<DbEntity, List<DbRelationship>> reflexiveDbEntities = new HashMap<DbEntity, List<DbRelationship>>(32);
Digraph<DbEntity, List<DbAttribute>> referentialDigraph = new MapDigraph<DbEntity, List<DbAttribute>>();
@@ -115,8 +116,7 @@ public class AshwoodEntitySorter impleme
for (DbEntity destination : tableMap.values()) {
for (DbRelationship candidate : destination.getRelationships()) {
- if ((!candidate.isToMany() && !candidate.isToDependentPK())
- || candidate.isToMasterPK()) {
+ if ((!candidate.isToMany() && !candidate.isToDependentPK()) || candidate.isToMasterPK()) {
DbEntity origin = (DbEntity) candidate.getTargetEntity();
boolean newReflexive = destination.equals(origin);
@@ -125,8 +125,7 @@ public class AshwoodEntitySorter impleme
if (targetAttribute.isPrimaryKey()) {
if (newReflexive) {
- List<DbRelationship> reflexiveRels = reflexiveDbEntities
- .get(destination);
+ List<DbRelationship> reflexiveRels = reflexiveDbEntities.get(destination);
if (reflexiveRels == null) {
reflexiveRels = new ArrayList<DbRelationship>(1);
reflexiveDbEntities.put(destination, reflexiveRels);
@@ -135,9 +134,7 @@ public class AshwoodEntitySorter impleme
newReflexive = false;
}
- List<DbAttribute> fks = referentialDigraph.getArc(
- origin,
- destination);
+ List<DbAttribute> fks = referentialDigraph.getArc(origin, destination);
if (fks == null) {
fks = new ArrayList<DbAttribute>();
referentialDigraph.putArc(origin, destination, fks);
@@ -194,10 +191,7 @@ public class AshwoodEntitySorter impleme
Collections.sort(objEntities, getObjEntityComparator(deleteOrder));
}
- public void sortObjectsForEntity(
- ObjEntity objEntity,
- List<?> objects,
- boolean deleteOrder) {
+ public void sortObjectsForEntity(ObjEntity objEntity, List<?> objects, boolean deleteOrder) {
indexSorter();
@@ -215,18 +209,14 @@ public class AshwoodEntitySorter impleme
return;
}
- EntityResolver resolver = persistent
- .get(0)
- .getObjectContext()
- .getEntityResolver();
+ EntityResolver resolver = persistent.get(0).getObjectContext().getEntityResolver();
ClassDescriptor descriptor = resolver.getClassDescriptor(objEntity.getName());
List<DbRelationship> reflexiveRels = reflexiveDbEntities.get(dbEntity);
String[] reflexiveRelNames = new String[reflexiveRels.size()];
for (int i = 0; i < reflexiveRelNames.length; i++) {
DbRelationship dbRel = reflexiveRels.get(i);
- ObjRelationship objRel = (dbRel != null ? objEntity
- .getRelationshipForDbRelationship(dbRel) : null);
+ ObjRelationship objRel = (dbRel != null ? objEntity.getRelationshipForDbRelationship(dbRel) : null);
reflexiveRelNames[i] = (objRel != null ? objRel.getName() : null);
}
@@ -245,14 +235,11 @@ public class AshwoodEntitySorter impleme
continue;
}
- masters[k] = descriptor.getProperty(reflexiveRelName).readProperty(
- current);
+ masters[k] = descriptor.getProperty(reflexiveRelName).readProperty(current);
if (masters[k] == null) {
- masters[k] = findReflexiveMaster(
- current,
- (ObjRelationship) objEntity.getRelationship(reflexiveRelName),
- current.getObjectId().getEntityName());
+ masters[k] = findReflexiveMaster(current, objEntity.getRelationship(reflexiveRelName), current
+ .getObjectId().getEntityName());
}
if (masters[k] != null) {
@@ -271,24 +258,19 @@ public class AshwoodEntitySorter impleme
for (Object master : masters) {
// if (masterCandidate.equals(master)) {
if (masterCandidate == master) {
- objectDependencyGraph.putArc(
- masterCandidate,
- current,
- Boolean.TRUE);
+ objectDependencyGraph.putArc(masterCandidate, current, Boolean.TRUE);
mastersFound++;
}
}
}
}
- IndegreeTopologicalSort<Persistent> sorter = new IndegreeTopologicalSort<Persistent>(
- objectDependencyGraph);
+ IndegreeTopologicalSort<Persistent> sorter = new IndegreeTopologicalSort<Persistent>(objectDependencyGraph);
while (sorter.hasNext()) {
Persistent o = sorter.next();
if (o == null)
- throw new CayenneRuntimeException("Sorting objects for "
- + objEntity.getClassName()
+ throw new CayenneRuntimeException("Sorting objects for " + objEntity.getClassName()
+ " failed. Cycles found.");
sorted.add(o);
}
@@ -304,26 +286,22 @@ public class AshwoodEntitySorter impleme
}
}
- protected Object findReflexiveMaster(
- Persistent object,
- ObjRelationship toOneRel,
- String targetEntityName) {
+ protected Object findReflexiveMaster(Persistent object, ObjRelationship toOneRel, String targetEntityName) {
DbRelationship finalRel = toOneRel.getDbRelationships().get(0);
ObjectContext context = object.getObjectContext();
- // find committed snapshot - so we can't fetch from the context as it will return
+ // find committed snapshot - so we can't fetch from the context as it
+ // will return
// dirty snapshot; must go down the stack instead
- // how do we handle this for NEW objects correctly? For now bail from the method
+ // how do we handle this for NEW objects correctly? For now bail from
+ // the method
if (object.getObjectId().isTemporary()) {
return null;
}
- ObjectIdQuery query = new ObjectIdQuery(
- object.getObjectId(),
- true,
- ObjectIdQuery.CACHE);
+ ObjectIdQuery query = new ObjectIdQuery(object.getObjectId(), true, ObjectIdQuery.CACHE);
QueryResponse response = context.getChannel().onQuery(null, query);
List<?> result = response.firstList();
if (result == null || result.size() == 0) {
@@ -334,8 +312,10 @@ public class AshwoodEntitySorter impleme
ObjectId id = snapshot.createTargetObjectId(targetEntityName, finalRel);
- // not using 'localObject', looking up in context instead, as within the sorter
- // we only care about objects participating in transaction, so no need to create
+ // not using 'localObject', looking up in context instead, as within the
+ // sorter
+ // we only care about objects participating in transaction, so no need
+ // to create
// hollow objects
return (id != null) ? context.getGraphManager().getNode(id) : null;
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ClientObjRelationship.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ClientObjRelationship.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ClientObjRelationship.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ClientObjRelationship.java Sun Aug 4 18:04:14 2013
@@ -64,11 +64,11 @@ class ClientObjRelationship extends ObjR
return null;
}
- Entity target = getTargetEntity();
+ ObjEntity target = getTargetEntity();
if (target == null) {
return null;
}
- return (ObjRelationship) target.getRelationship(reverseRelationshipName);
+ return target.getRelationship(reverseRelationshipName);
}
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DataMap.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DataMap.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DataMap.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DataMap.java Sun Aug 4 18:04:14 2013
@@ -967,10 +967,10 @@ public class DataMap implements Serializ
if (dbEntityToDelete.getName().equals(objEnt.getDbEntityName())) {
objEnt.clearDbMapping();
} else {
- for (Relationship rel : objEnt.getRelationships()) {
- for (DbRelationship dbRel : ((ObjRelationship) rel).getDbRelationships()) {
+ for (ObjRelationship rel : objEnt.getRelationships()) {
+ for (DbRelationship dbRel : rel.getDbRelationships()) {
if (dbRel.getTargetEntity() == dbEntityToDelete) {
- ((ObjRelationship) rel).clearDbRelationships();
+ rel.clearDbRelationships();
break;
}
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java Sun Aug 4 18:04:14 2013
@@ -88,10 +88,21 @@ public class DbEntity extends Entity imp
this();
this.setName(name);
}
+
+ @Override
+ public DbRelationship getRelationship(String relName) {
+ return (DbRelationship) super.getRelationship(relName);
+ }
+
+ @Override
+ public DbAttribute getAttribute(String attributeName) {
+ return (DbAttribute) super.getAttribute(attributeName);
+ }
/**
* @since 3.1
*/
+ @Override
public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor) {
return visitor.visitDbEntity(this);
}
@@ -101,6 +112,7 @@ public class DbEntity extends Entity imp
*
* @since 1.1
*/
+ @Override
public void encodeAsXML(XMLEncoder encoder) {
encoder.print("<db-entity name=\"");
encoder.print(Util.encodeXmlAttribute(getName()));
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbJoin.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbJoin.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbJoin.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbJoin.java Sun Aug 4 18:04:14 2013
@@ -69,13 +69,13 @@ public class DbJoin implements XMLSerial
return null;
}
- Relationship r = getNonNullRelationship();
- Entity entity = r.getSourceEntity();
+ DbRelationship r = getNonNullRelationship();
+ DbEntity entity = r.getSourceEntity();
if (entity == null) {
return null;
}
- return (DbAttribute) entity.getAttribute(sourceName);
+ return entity.getAttribute(sourceName);
}
public DbAttribute getTarget() {
@@ -83,13 +83,13 @@ public class DbJoin implements XMLSerial
return null;
}
- Relationship r = getNonNullRelationship();
- Entity entity = r.getTargetEntity();
+ DbRelationship r = getNonNullRelationship();
+ DbEntity entity = r.getTargetEntity();
if (entity == null) {
return null;
}
- return (DbAttribute) entity.getAttribute(targetName);
+ return entity.getAttribute(targetName);
}
/**
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbRelationship.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbRelationship.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbRelationship.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/DbRelationship.java Sun Aug 4 18:04:14 2013
@@ -56,6 +56,11 @@ public class DbRelationship extends Rela
super(name);
}
+ @Override
+ public DbEntity getSourceEntity() {
+ return (DbEntity) super.getSourceEntity();
+ }
+
/**
* @since 3.1
*/
@@ -99,7 +104,7 @@ public class DbRelationship extends Rela
* DbEntity, and DbEntity doesn't have a namespace, and exception is thrown.
*/
@Override
- public Entity getTargetEntity() {
+ public DbEntity getTargetEntity() {
String targetName = getTargetEntityName();
if (targetName == null) {
return null;
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java Sun Aug 4 18:04:14 2013
@@ -137,11 +137,11 @@ public class EntityResolver implements M
// iterate by copy to avoid concurrency modification errors on
// reflexive
// relationships
- Object[] relationships = entity.getRelationships().toArray();
+ ObjRelationship[] relationships = entity.getRelationships().toArray(
+ new ObjRelationship[entity.getRelationships().size()]);
for (int i = 0; i < relationships.length; i++) {
- ObjRelationship relationship = (ObjRelationship) relationships[i];
- if (relationship.getReverseRelationship() == null) {
- ObjRelationship reverse = relationship.createReverseRelationship();
+ if (relationships[i].getReverseRelationship() == null) {
+ ObjRelationship reverse = relationships[i].createReverseRelationship();
Entity targetEntity = reverse.getSourceEntity();
reverse.setName(makeUniqueRelationshipName(targetEntity));
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResult.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResult.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResult.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/EntityResult.java Sun Aug 4 18:04:14 2013
@@ -27,10 +27,10 @@ import java.util.Map;
import org.apache.cayenne.util.ToStringBuilder;
/**
- * A metadata object that provides mapping of a set of result columns to an ObjEntity.
- * Used by {@link SQLResult}. Note that fields in the EntityResult are not required to
- * follow the order of columns in the actual query, and can be added in the arbitrary
- * order.
+ * A metadata object that provides mapping of a set of result columns to an
+ * ObjEntity. Used by {@link SQLResult}. Note that fields in the EntityResult
+ * are not required to follow the order of columns in the actual query, and can
+ * be added in the arbitrary order.
*
* @since 3.0
*/
@@ -49,7 +49,8 @@ public class EntityResult {
}
/**
- * Returns a map of result column names to attribute db paths from the root entity.
+ * Returns a map of result column names to attribute db paths from the root
+ * entity.
*/
public Map<String, String> getDbFields(EntityResolver resolver) {
@@ -62,13 +63,11 @@ public class EntityResult {
for (FieldResult field : fields) {
if (field.isDbAttribute() || field.getAttributeName().startsWith("fetch.")) {
dbFields.put(field.getAttributeName(), field.getColumn());
- }
- else {
- ObjEntity entity = field.getEntityName() != null ? resolver
- .getObjEntity(field.getEntityName()) : getRootEntity(resolver);
+ } else {
+ ObjEntity entity = field.getEntityName() != null ? resolver.getObjEntity(field.getEntityName())
+ : getRootEntity(resolver);
- ObjAttribute attribute = (ObjAttribute) entity.getAttribute(field
- .getAttributeName());
+ ObjAttribute attribute = entity.getAttribute(field.getAttributeName());
dbFields.put(attribute.getDbAttributePath(), field.getColumn());
}
}
@@ -79,25 +78,25 @@ public class EntityResult {
private ObjEntity getRootEntity(EntityResolver resolver) {
if (entityName != null) {
return resolver.getObjEntity(entityName);
- }
- else if (entityClass != null) {
+ } else if (entityClass != null) {
return resolver.getObjEntity(entityClass);
- }
- else {
+ } else {
throw new IllegalStateException("Both entity name and class are null");
}
}
/**
- * Adds a result set column mapping for a single object property of the root entity.
+ * Adds a result set column mapping for a single object property of the root
+ * entity.
*/
public void addObjectField(String attributeName, String column) {
addField(new FieldResult(null, attributeName, column, false));
}
/**
- * Adds a result set column mapping for a single object property of a specified entity
- * that may differ from the root entity if inheritance is involved.
+ * Adds a result set column mapping for a single object property of a
+ * specified entity that may differ from the root entity if inheritance is
+ * involved.
*/
public void addObjectField(String entityName, String attributeName, String column) {
addField(new FieldResult(entityName, attributeName, column, false));
@@ -133,8 +132,7 @@ public class EntityResult {
protected String column;
protected boolean dbAttribute;
- FieldResult(String entityName, String attributeName, String column,
- boolean dbAttribute) {
+ FieldResult(String entityName, String attributeName, String column, boolean dbAttribute) {
this.entityName = entityName;
this.attributeName = attributeName;
@@ -160,11 +158,8 @@ public class EntityResult {
@Override
public String toString() {
- return new ToStringBuilder(this)
- .append("attributeName", attributeName)
- .append("column", column)
- .append("db", dbAttribute)
- .toString();
+ return new ToStringBuilder(this).append("attributeName", attributeName).append("column", column)
+ .append("db", dbAttribute).toString();
}
}
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjEntity.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjEntity.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjEntity.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjEntity.java Sun Aug 4 18:04:14 2013
@@ -106,6 +106,7 @@ public class ObjEntity extends Entity im
/**
* @since 3.1
*/
+ @Override
public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor) {
return visitor.visitObjEntity(this);
}
@@ -115,6 +116,7 @@ public class ObjEntity extends Entity im
*
* @since 1.1
*/
+ @Override
public void encodeAsXML(XMLEncoder encoder) {
encoder.print("<obj-entity name=\"");
encoder.print(getName());
@@ -683,8 +685,8 @@ public class ObjEntity extends Entity im
* this entity. Returns null if no matching attribute is found.
*/
@Override
- public Attribute getAttribute(String name) {
- Attribute attribute = super.getAttribute(name);
+ public ObjAttribute getAttribute(String name) {
+ ObjAttribute attribute = (ObjAttribute) super.getAttribute(name);
if (attribute != null) {
return attribute;
}
@@ -692,7 +694,7 @@ public class ObjEntity extends Entity im
// check embedded attribute
int dot = name.indexOf('.');
if (dot > 0 && dot < name.length() - 1) {
- Attribute embedded = getAttribute(name.substring(0, dot));
+ ObjAttribute embedded = getAttribute(name.substring(0, dot));
if (embedded instanceof EmbeddedAttribute) {
return ((EmbeddedAttribute) embedded).getAttribute(name.substring(dot + 1));
}
@@ -702,7 +704,7 @@ public class ObjEntity extends Entity im
ObjEntity superEntity = getSuperEntity();
if (superEntity != null) {
- ObjAttribute superAttribute = (ObjAttribute) superEntity.getAttribute(name);
+ ObjAttribute superAttribute = superEntity.getAttribute(name);
if (superAttribute == null) {
return null;
}
@@ -806,7 +808,7 @@ public class ObjEntity extends Entity im
* inherited. Returns null if no matching attribute is found.
*/
@Override
- public Relationship getRelationship(String name) {
+ public ObjRelationship getRelationship(String name) {
ObjRelationship relationship = (ObjRelationship) super.getRelationship(name);
if (relationship != null) {
return relationship;
@@ -869,7 +871,7 @@ public class ObjEntity extends Entity im
*/
public ObjAttribute getAttributeForDbAttribute(DbAttribute dbAttribute) {
- for (Attribute next : getAttributeMap().values()) {
+ for (ObjAttribute next : getAttributeMap().values()) {
if (next instanceof EmbeddedAttribute) {
ObjAttribute embeddedAttribute = ((EmbeddedAttribute) next)
@@ -878,9 +880,8 @@ public class ObjEntity extends Entity im
return embeddedAttribute;
}
} else {
- ObjAttribute objAttr = (ObjAttribute) next;
- if (objAttr.getDbAttribute() == dbAttribute) {
- return objAttr;
+ if (next.getDbAttribute() == dbAttribute) {
+ return next;
}
}
}
@@ -940,16 +941,15 @@ public class ObjEntity extends Entity im
if (dbEntityName == null)
return;
- for (Attribute attribute : getAttributeMap().values()) {
- ObjAttribute objAttr = (ObjAttribute) attribute;
- DbAttribute dbAttr = objAttr.getDbAttribute();
+ for (ObjAttribute attribute : getAttributeMap().values()) {
+ DbAttribute dbAttr = attribute.getDbAttribute();
if (null != dbAttr) {
- objAttr.setDbAttributePath(null);
+ attribute.setDbAttributePath(null);
}
}
- for (Relationship relationship : this.getRelationships()) {
- ((ObjRelationship) relationship).clearDbRelationships();
+ for (ObjRelationship relationship : getRelationships()) {
+ relationship.clearDbRelationships();
}
dbEntityName = null;
@@ -1206,8 +1206,8 @@ public class ObjEntity extends Entity im
DataMap map = getDataMap();
if (map != null) {
ObjEntity oe = (ObjEntity) e.getEntity();
- for (Relationship relationship : oe.getRelationships()) {
- relationship = ((ObjRelationship) relationship).getReverseRelationship();
+ for (ObjRelationship relationship : oe.getRelationships()) {
+ relationship = relationship.getReverseRelationship();
if (null != relationship && relationship.targetEntityName.equals(oldName)) {
relationship.targetEntityName = newName;
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjRelationship.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjRelationship.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjRelationship.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/map/ObjRelationship.java Sun Aug 4 18:04:14 2013
@@ -87,6 +87,11 @@ public class ObjRelationship extends Rel
super(name);
}
+ @Override
+ public ObjEntity getSourceEntity() {
+ return (ObjEntity) super.getSourceEntity();
+ }
+
/**
* @since 3.1
*/
@@ -151,7 +156,7 @@ public class ObjRelationship extends Rel
* the parent DataMap using "targetEntityName".
*/
@Override
- public Entity getTargetEntity() {
+ public ObjEntity getTargetEntity() {
String targetName = getTargetEntityName();
if (targetName == null) {
return null;
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/AttributePropertyDecorator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/AttributePropertyDecorator.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/AttributePropertyDecorator.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/AttributePropertyDecorator.java Sun Aug 4 18:04:14 2013
@@ -21,8 +21,8 @@ package org.apache.cayenne.reflect;
import org.apache.cayenne.map.ObjAttribute;
/**
- * A class that presents an AttributeProperty view for an inherited attribute at a given
- * subclass. It applies all needed attribute overrides.
+ * A class that presents an AttributeProperty view for an inherited attribute at
+ * a given subclass. It applies all needed attribute overrides.
*
* @since 3.0
*/
@@ -31,12 +31,10 @@ class AttributePropertyDecorator impleme
private AttributeProperty delegate;
private ObjAttribute attribute;
- AttributePropertyDecorator(ClassDescriptor owningClassDescriptor,
- AttributeProperty delegate) {
+ AttributePropertyDecorator(ClassDescriptor owningClassDescriptor, AttributeProperty delegate) {
this.delegate = delegate;
- this.attribute = (ObjAttribute) owningClassDescriptor.getEntity().getAttribute(
- delegate.getName());
+ this.attribute = owningClassDescriptor.getEntity().getAttribute(delegate.getName());
}
public ObjAttribute getAttribute() {
@@ -63,13 +61,11 @@ class AttributePropertyDecorator impleme
return delegate.readPropertyDirectly(object);
}
- public void writeProperty(Object object, Object oldValue, Object newValue)
- throws PropertyException {
+ public void writeProperty(Object object, Object oldValue, Object newValue) throws PropertyException {
delegate.writeProperty(object, oldValue, newValue);
}
- public void writePropertyDirectly(Object object, Object oldValue, Object newValue)
- throws PropertyException {
+ public void writePropertyDirectly(Object object, Object oldValue, Object newValue) throws PropertyException {
delegate.writePropertyDirectly(object, oldValue, newValue);
}
}
Modified: cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/BaseArcProperty.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/BaseArcProperty.java?rev=1510286&r1=1510285&r2=1510286&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/BaseArcProperty.java (original)
+++ cayenne/main/trunk/framework/cayenne-core-unpublished/src/main/java/org/apache/cayenne/reflect/BaseArcProperty.java Sun Aug 4 18:04:14 2013
@@ -31,16 +31,14 @@ public abstract class BaseArcProperty ex
protected ClassDescriptor targetDescriptor;
protected ObjRelationship relationship;
- public BaseArcProperty(ClassDescriptor owner, ClassDescriptor targetDescriptor,
- Accessor accessor, String reverseName) {
+ public BaseArcProperty(ClassDescriptor owner, ClassDescriptor targetDescriptor, Accessor accessor,
+ String reverseName) {
super(owner, accessor);
this.targetDescriptor = targetDescriptor;
this.complimentaryReverseArcName = reverseName;
- this.relationship = (ObjRelationship) owner
- .getEntity()
- .getRelationship(getName());
+ this.relationship = owner.getEntity().getRelationship(getName());
}
@Override
@@ -63,10 +61,7 @@ public abstract class BaseArcProperty ex
/**
* A convenience method to set the reverse arc used by subclasses.
*/
- protected void setReverse(
- final Object source,
- final Object oldTarget,
- final Object newTarget) {
+ protected void setReverse(final Object source, final Object oldTarget, final Object newTarget) {
ArcProperty reverseArc = getComplimentaryReverseArc();