RelationAttribute

* Ab jetzt abgeleitet vom DomainObject, dadurch hatt man keine Abhängigkeiten mehr zu der ACSObject- und anderen Tabellen. Man kann die Tabelle nun einfach per pgAdmin3 füllen.
 * NullPointer -Exception gefunden und entfernt. getRelationAttribute prüft nun, ob die Collection noch vor dem ersten Element steht.

git-svn-id: https://svn.libreccm.org/ccm/trunk@580 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2010-10-18 04:26:59 +00:00
parent 6d1f718384
commit 6dd53b0920
4 changed files with 16 additions and 8 deletions

View File

@ -21,8 +21,9 @@ model com.arsdigita.cms;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.kernel.ACSObject;
object type RelationAttribute extends ACSObject { object type RelationAttribute {
BigDecimal[1..1] id = cms_relation_attribute.object_id INTEGER;
String[1..1] attribute = cms_relation_attribute.attribute VARCHAR(100); String[1..1] attribute = cms_relation_attribute.attribute VARCHAR(100);
String[1..1] key = cms_relation_attribute.key VARCHAR(100); String[1..1] key = cms_relation_attribute.key VARCHAR(100);
String[1..1] lang = cms_relation_attribute.lang VARCHAR(2); String[1..1] lang = cms_relation_attribute.lang VARCHAR(2);
@ -30,6 +31,6 @@ object type RelationAttribute extends ACSObject {
String[0..1] description = cms_relation_attribute.description VARCHAR(500); String[0..1] description = cms_relation_attribute.description VARCHAR(500);
unique (attribute, key, lang); unique (attribute, key, lang);
reference key(cms_relation_attribute.relationattribute_id); object key (id);
} }

View File

@ -37,7 +37,7 @@ import java.math.BigDecimal;
* *
* <p>It is possible to instantiate this model with a {@link * <p>It is possible to instantiate this model with a {@link
* com.arsdigita.cms.ContentType} as a constructor parameter. In this * com.arsdigita.cms.ContentType} as a constructor parameter. In this
* case, the model will only instantiate items that have are of the * case, the model will only instantiate items that are of the
* specified content type, or one of it subclasses.</p> * specified content type, or one of it subclasses.</p>
* *
* @author Stanislav Freidin (stas@arsdigita.com) * @author Stanislav Freidin (stas@arsdigita.com)

View File

@ -6,7 +6,7 @@
package com.arsdigita.cms; package com.arsdigita.cms;
import com.arsdigita.domain.DataObjectNotFoundException; import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.kernel.ACSObject; import com.arsdigita.domain.DomainObject;
import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -15,8 +15,9 @@ import java.math.BigDecimal;
* *
* @author quasi * @author quasi
*/ */
public class RelationAttribute extends ACSObject { public class RelationAttribute extends DomainObject {
public static final String ID = "id";
public static final String ATTRIBUTE = "attribute"; public static final String ATTRIBUTE = "attribute";
public static final String KEY = "key"; public static final String KEY = "key";
public static final String LANGUAGE = "lang"; public static final String LANGUAGE = "lang";
@ -67,6 +68,14 @@ public class RelationAttribute extends ACSObject {
} }
/* accessors *****************************************************/ /* accessors *****************************************************/
public BigDecimal getID() {
return (BigDecimal) get(ID);
}
public BigDecimal setID(BigDecimal id) {
return getID();
}
public final String getAttribute() { public final String getAttribute() {
return (String) get(ATTRIBUTE); return (String) get(ATTRIBUTE);
} }

View File

@ -106,12 +106,10 @@ public class RelationAttributeCollection extends DomainCollection {
// Accessors // Accessors
public final String getKey() { public final String getKey() {
return (String) get(KEY); return (String) get(KEY);
// return (String) getRelationAttribute().getKey();
} }
public final String getLanguage() { public final String getLanguage() {
return (String) get(LANGUAGE); return (String) get(LANGUAGE);
// return (String) getRelationAttribute().getLanguage();
} }
// Get RelationAttribute in desired language // Get RelationAttribute in desired language
@ -121,7 +119,7 @@ public class RelationAttributeCollection extends DomainCollection {
logger.debug(String.format("this.language() = %s", this.getLanguage())); logger.debug(String.format("this.language() = %s", this.getLanguage()));
// First, test the current element // First, test the current element
if (this.getKey().equals(key) && this.getLanguage().equals(language)) { if(!this.isBeforeFirst() && key.equals(this.getKey()) && language.equals(this.getLanguage())) {
return this.getRelationAttribute(); return this.getRelationAttribute();