|
From: <ja...@us...> - 2006-09-13 11:52:50
|
Revision: 56
http://svn.sourceforge.net/surveyforge/?rev=56&view=rev
Author: javism
Date: 2006-09-13 04:52:33 -0700 (Wed, 13 Sep 2006)
Log Message:
-----------
* Core restructuring to support AbstractValueDomains
* new concept of ConceptualDataElement and QuestionDataElement
Modified Paths:
--------------
trunk/surveyforge-core/src/main/java/org/surveyforge/core/data/RegisterData.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ConceptualDataElement.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/DataElement.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/RegisterDataElement.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/StatisticalObjectType.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ValueDomain.java
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/domain/StructuredValueDomain.java
Added Paths:
-----------
trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/QuestionDataElement.java
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/data/RegisterData.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/data/RegisterData.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/data/RegisterData.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -35,6 +35,7 @@
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
+
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.IndexColumn;
import org.surveyforge.core.metadata.Register;
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ConceptualDataElement.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ConceptualDataElement.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ConceptualDataElement.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -22,12 +22,10 @@
package org.surveyforge.core.metadata;
import javax.persistence.Entity;
-import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
-import org.surveyforge.core.survey.Question;
+import org.surveyforge.core.metadata.domain.AbstractValueDomain;
-// TODO: Measure unit?
// TODO: Elaborate on comments
/**
* Conceptual data elements define conceptual standards for data elements. Conceptual data elements have a context independent
@@ -37,14 +35,10 @@
* @author jsegura
*/
@Entity
-public class ConceptualDataElement extends DataElement
+public class ConceptualDataElement extends QuestionDataElement
{
private static final long serialVersionUID = -6880246451318487216L;
- /** */
- @ManyToOne(optional = true)
- @JoinColumn(name = "question_id")
- private Question question;
/** */
@ManyToOne
private ObjectVariable objectVariable;
@@ -59,28 +53,14 @@
* @param valueDomain
* @param identifier
*/
- public ConceptualDataElement( ValueDomain valueDomain, String identifier )
+ public ConceptualDataElement( AbstractValueDomain valueDomain, ObjectVariable objectVariable, String identifier )
{
super( valueDomain, identifier );
+ this.setObjectVariable( objectVariable );
}
- /**
- * @return Returns the question.
- */
- public Question getQuestion( )
- {
- return this.question;
- }
/**
- * @param question The question to set.
- */
- public void setQuestion( Question question )
- {
- this.question = question;
- }
-
- /**
* @return Returns the objectVariable.
*/
public ObjectVariable getObjectVariable( )
@@ -111,4 +91,4 @@
{
return this.getIdentifier( ).hashCode( );
}
- }
+ }
\ No newline at end of file
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/DataElement.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/DataElement.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/DataElement.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -40,6 +40,7 @@
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.IndexColumn;
+import org.surveyforge.core.metadata.domain.AbstractValueDomain;
// TODO Elaborate on comments
/**
@@ -75,7 +76,7 @@
/** */
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "valueDomain_id")
- private ValueDomain valueDomain;
+ private AbstractValueDomain valueDomain;
/** */
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "variableStructure_id", insertable = false, updatable = false)
@@ -99,7 +100,7 @@
* @param valueDomain
* @param identifier
*/
- public DataElement( ValueDomain valueDomain, String identifier )
+ public DataElement( AbstractValueDomain valueDomain, String identifier )
{
this.setValueDomain( valueDomain );
this.setIdentifier( identifier );
@@ -162,7 +163,7 @@
/**
* @return Returns the valueDomain.
*/
- public ValueDomain getValueDomain( )
+ public AbstractValueDomain getValueDomain( )
{
return this.valueDomain;
}
@@ -170,7 +171,7 @@
/**
* @param valueDomain The valueDomain to set.
*/
- public void setValueDomain( ValueDomain valueDomain )
+ public void setValueDomain( AbstractValueDomain valueDomain )
{
if( valueDomain != null )
this.valueDomain = valueDomain;
Added: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/QuestionDataElement.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/QuestionDataElement.java (rev 0)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/QuestionDataElement.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -0,0 +1,84 @@
+/*
+ * surveyforge-core - Copyright (C) 2006 OPEN input - http://www.openinput.com/
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to
+ * the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
+ *
+ * $Id$
+ */
+package org.surveyforge.core.metadata;
+
+import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+
+import org.surveyforge.core.metadata.domain.AbstractValueDomain;
+import org.surveyforge.core.survey.Question;
+
+/**
+ * @author jsegura
+ */
+@Entity
+public class QuestionDataElement extends DataElement
+ {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5831283455803703349L;
+
+
+ @ManyToOne(optional = true)
+ @JoinColumn(name = "question_id")
+ private Question question;
+
+
+ protected QuestionDataElement( )
+ {}
+
+ public QuestionDataElement( AbstractValueDomain valueDomain, String identifier )
+ {
+ super( valueDomain, identifier );
+ }
+
+ /**
+ * @return Returns the question.
+ */
+ public Question getQuestion( )
+ {
+ return this.question;
+ }
+
+ /**
+ * @param question The question to set.
+ */
+ public void setQuestion( Question question )
+ {
+ this.question = question;
+ }
+
+ @Override
+ public boolean equals( Object object )
+ {
+ QuestionDataElement other = (QuestionDataElement) object;
+ return this.getIdentifier( ).equals( other.getIdentifier( ) );
+ }
+
+ @Override
+ public int hashCode( )
+ {
+ return this.getIdentifier( ).hashCode( );
+ }
+ }
Property changes on: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/QuestionDataElement.java
___________________________________________________________________
Name: svn:keywords
+ Date Revision Author HeadURL Id
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/RegisterDataElement.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/RegisterDataElement.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/RegisterDataElement.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -26,7 +26,9 @@
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
+import org.surveyforge.core.metadata.domain.AbstractValueDomain;
import org.surveyforge.core.survey.Question;
+import org.surveyforge.core.survey.QuestionnaireElement;
/**
* Register data elements define data elements for a register. In contrast to an abstract data element a register data element is
@@ -49,6 +51,9 @@
@ManyToOne(optional = true)
private Question question;
+ @OneToOne
+ private QuestionnaireElement questionnaireElement;
+
protected RegisterDataElement( )
{};
@@ -61,14 +66,14 @@
*/
public RegisterDataElement( ConceptualDataElement conceptualDataElement, String identifier )
{
- super( conceptualDataElement.getValueDomain( ).clone( ), identifier );
+ super( identifier );
this.setConceptualDataElement( conceptualDataElement );
}
/**
* Creates a new instance of ConceptualDataElement linked with a {@link ConceptualDataElement}.
*/
- public RegisterDataElement( ValueDomain valueDomain, String identifier )
+ public RegisterDataElement( AbstractValueDomain valueDomain, String identifier )
{
super( valueDomain, identifier );
}
@@ -89,12 +94,8 @@
* @param conceptualDataElement The conceptualDataElements to set.
* @throws NullPointerException If the conceptualDataElement is <code>null</code>.
*/
- public void setConceptualDataElement( ConceptualDataElement conceptualDataElement )
+ private void setConceptualDataElement( ConceptualDataElement conceptualDataElement )
{
- if( conceptualDataElement == null )
- {
- this.setValueDomain( conceptualDataElement.getValueDomain( ).clone( ) );
- }
this.conceptualDataElement = conceptualDataElement;
}
@@ -129,4 +130,25 @@
{
this.question = question;
}
+
+ /**
+ * @return the questionnaireElement
+ */
+ public QuestionnaireElement getQuestionnaireElement( )
+ {
+ return questionnaireElement;
+ }
+
+ /**
+ * @param questionnaireElement the questionnaireElement to set
+ */
+ public void setQuestionnaireElement( QuestionnaireElement questionnaireElement )
+ {
+ this.questionnaireElement = questionnaireElement;
+ }
+
+ public AbstractValueDomain getValueDomain( )
+ {
+ return (super.getValueDomain( ) != null ? super.getValueDomain( ) : this.getConceptualDataElement( ).getValueDomain( ));
+ }
}
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/StatisticalObjectType.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/StatisticalObjectType.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/StatisticalObjectType.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -273,7 +273,6 @@
throw new NullPointerException( );
}
- // TODO add subtypes to hashcode & equals
@Override
public boolean equals( Object object )
{
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ValueDomain.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ValueDomain.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/ValueDomain.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -23,12 +23,11 @@
import java.io.Serializable;
+
/**
* @author jsegura
*/
public interface ValueDomain
{
public boolean isValid( Serializable object );
-
- public ValueDomain clone( );
}
Modified: trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/domain/StructuredValueDomain.java
===================================================================
--- trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/domain/StructuredValueDomain.java 2006-09-13 10:49:44 UTC (rev 55)
+++ trunk/surveyforge-core/src/main/java/org/surveyforge/core/metadata/domain/StructuredValueDomain.java 2006-09-13 11:52:33 UTC (rev 56)
@@ -23,7 +23,7 @@
@OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@IndexColumn(name = "subDomainsIndex")
@JoinColumn(name = "upperDomain_id")
- private List<ValueDomain> subDomains = new ArrayList<ValueDomain>( );
+ private List<AbstractValueDomain> subDomains = new ArrayList<AbstractValueDomain>( );
public StructuredValueDomain( )
@@ -66,12 +66,12 @@
/**
* @return the subDomains
*/
- public List<ValueDomain> getSubDomains( )
+ public List<AbstractValueDomain> getSubDomains( )
{
return Collections.unmodifiableList( this.subDomains );
}
- public void addSubDomain( ValueDomain domain )
+ public void addSubDomain( AbstractValueDomain domain )
{
if( domain != null )
{
@@ -81,7 +81,7 @@
throw new NullPointerException( );
}
- public void removeSubDomain( ValueDomain domain )
+ public void removeSubDomain( AbstractValueDomain domain )
{
if( domain != null )
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|