From: <ja...@us...> - 2006-10-30 16:15:16
|
Revision: 89 http://svn.sourceforge.net/surveyforge/?rev=89&view=rev Author: javism Date: 2006-10-30 08:14:31 -0800 (Mon, 30 Oct 2006) Log Message: ----------- First version of the example Added Paths: ----------- trunk/surveyforge-examples/ trunk/surveyforge-examples/pom.xml trunk/surveyforge-examples/src/ trunk/surveyforge-examples/src/main/ trunk/surveyforge-examples/src/main/java/ trunk/surveyforge-examples/src/main/java/org/ trunk/surveyforge-examples/src/main/java/org/surveyforge/ trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/ trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/Example.java trunk/surveyforge-examples/src/main/resources/ trunk/surveyforge-examples/src/main/resources/META-INF/ trunk/surveyforge-examples/src/main/resources/META-INF/persistence.xml trunk/surveyforge-examples/src/test/ trunk/surveyforge-examples/src/test/java/ trunk/surveyforge-examples/src/test/java/org/ trunk/surveyforge-examples/src/test/java/org/surveyforge/ trunk/surveyforge-examples/src/test/java/org/surveyforge/AppTest.java Added: trunk/surveyforge-examples/pom.xml =================================================================== --- trunk/surveyforge-examples/pom.xml (rev 0) +++ trunk/surveyforge-examples/pom.xml 2006-10-30 16:14:31 UTC (rev 89) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project> + <parent> + <groupId>org.surveyforge</groupId> + <artifactId>surveyforge</artifactId> + <version>0.1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>surveyforge-examples</artifactId> + <name>SurveyForge Examples</name> + <dependencies> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <classifier>jdk15</classifier> + </dependency> + <dependency> + <groupId>org.surveyforge</groupId> + <artifactId>surveyforge-db</artifactId> + <version>0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-annotations</artifactId> + </dependency> + <dependency> + <groupId>javax.persistence</groupId> + <artifactId>persistence-api</artifactId> + </dependency> + <dependency> + <groupId>postgresql</groupId> + <artifactId>postgresql</artifactId> + </dependency> + </dependencies> +</project> Property changes on: trunk/surveyforge-examples/pom.xml ___________________________________________________________________ Name: svn:keywords + Date Revision Author HeadURL Id Added: trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/Example.java =================================================================== --- trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/Example.java (rev 0) +++ trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/Example.java 2006-10-30 16:14:31 UTC (rev 89) @@ -0,0 +1,147 @@ +/* + * 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.examples; + +import java.util.Calendar; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.EntityTransaction; +import javax.persistence.Persistence; +import javax.persistence.Query; + +import org.surveyforge.classification.Classification; +import org.surveyforge.classification.Family; +import org.surveyforge.classification.Item; +import org.surveyforge.classification.Level; +import org.surveyforge.classification.Version; +import org.surveyforge.core.metadata.domain.ClassificationValueDomain; +import org.surveyforge.core.metadata.domain.LogicalValueDomain; +import org.surveyforge.core.metadata.domain.QuantityValueDomain; +import org.surveyforge.core.metadata.domain.StringValueDomain; +import org.surveyforge.core.survey.Question; +import org.surveyforge.core.survey.Questionnaire; +import org.surveyforge.core.survey.QuestionnaireElement; +import org.surveyforge.core.survey.Study; +import org.surveyforge.util.InternationalizedString; + +/** + * @author jsegura + */ +public class Example + { + + /** + * @param args + */ + public static void main( String[] args ) + { + + EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory( "surveyforge" ); + EntityManager entityManager = entityManagerFactory.createEntityManager( ); + + + /* Creation of an example family */ + Family exampleFamily = new Family( "exampleFamily" ); + Classification sexClassification = new Classification( exampleFamily, "sex Classification" ); + Version sexVersion = new Version( sexClassification, "sex Version", Calendar.getInstance( ).getTime( ) ); + Level sexLevel = new Level( sexVersion, "sex Level" ); + new Item( sexLevel, null, "1", "Male" ); + new Item( sexLevel, null, "2", "Female" ); + + Classification hobbyClassification = new Classification( exampleFamily, "hobby Classification" ); + Version hobbyVersion = new Version( hobbyClassification, "hobby Version", Calendar.getInstance( ).getTime( ) ); + Level hobbyLevel = new Level( hobbyVersion, "hobby Level" ); + new Item( hobbyLevel, null, "1", "Sports" ); + new Item( hobbyLevel, null, "2", "Computers" ); + new Item( hobbyLevel, null, "3", "Animals" ); + + + Study study = new Study( "exampleStudy" ); + study.setTitle( "SurveyForge example study" ); + study.setDescription( "This is an example study created to show SurveyForge" ); + + Questionnaire questionnaire = new Questionnaire( "exampleQuestionnaire", study ); + questionnaire.setTitle( "SurveyForge example questionnaire" ); + questionnaire.setDescription( "This is an example questionnaire created to show SurveyForge" ); + + QuestionnaireElement qe1 = new QuestionnaireElement( "NAME", new StringValueDomain( 0, 20 ) ); + qe1.setQuestion( new Question( "NAME", "Name" ) ); + questionnaire.addComponentElement( qe1 ); + + questionnaire.getSectionFeeds( ).get( 0 ).setTitle( "First Section" ); + + + QuestionnaireElement qe2 = new QuestionnaireElement( "SEX", new ClassificationValueDomain( sexLevel ) ); + qe2.setQuestion( new Question( "SEX", "Sex" ) ); + questionnaire.addComponentElement( qe2 ); + + QuestionnaireElement qe3 = new QuestionnaireElement( "AGE", new QuantityValueDomain( 2, 0 ) ); + qe3.setQuestion( new Question( "AGE", "Age" ) ); + questionnaire.addComponentElement( qe3 ); + + QuestionnaireElement qe4 = new QuestionnaireElement( "HOBBY", new ClassificationValueDomain( hobbyLevel ) ); + qe4.setQuestion( new Question( "HOBBY", "Hobby" ) ); + questionnaire.addComponentElement( qe4 ); + + InternationalizedString sectionTitle2 = new InternationalizedString( ); + sectionTitle2.setString( "Second section" ); + questionnaire.createSectionFeed( qe4, sectionTitle2 ); + + QuestionnaireElement qe5 = new QuestionnaireElement( "NUMBER", new QuantityValueDomain( 1, 0 ) ); + qe5.setQuestion( new Question( "NUMBER", "What's your preferred number?" ) ); + questionnaire.addComponentElement( qe5 ); + + + QuestionnaireElement qe6 = new QuestionnaireElement( "HAPPY", new LogicalValueDomain( ) ); + qe6.setQuestion( new Question( "HAPPY", "Are you happy?" ) ); + questionnaire.addComponentElement( qe6 ); + + questionnaire.createPageFeed( qe6 ); + + QuestionnaireElement qe7 = new QuestionnaireElement( "SAD", new LogicalValueDomain( ) ); + qe7.setQuestion( new Question( "SAD", "Are you sad?" ) ); + questionnaire.addComponentElement( qe7 ); + InternationalizedString sectionTitle3 = new InternationalizedString( ); + sectionTitle3.setString( "Third section" ); + questionnaire.createSectionFeed( qe7, sectionTitle3 ); + + + EntityTransaction transaction = entityManager.getTransaction( ); + transaction.begin( ); + + Query deleteFamily = entityManager.createQuery( "SELECT f FROM Family f WHERE f.identifier = :identifier" ); + deleteFamily.setParameter( "identifier", "exampleFamily" ); + if( !deleteFamily.getResultList( ).isEmpty( ) ) entityManager.remove( deleteFamily.getSingleResult( ) ); + Query deleteStudy = entityManager.createQuery( "SELECT s FROM Study s WHERE s.identifier = :identifier" ); + deleteStudy.setParameter( "identifier", "exampleStudy" ); + if( !deleteStudy.getResultList( ).isEmpty( ) ) entityManager.remove( deleteStudy.getSingleResult( ) ); + + entityManager.flush( ); + entityManager.persist( exampleFamily ); + entityManager.persist( study ); + transaction.commit( ); + entityManager.close( ); + + + } + } Property changes on: trunk/surveyforge-examples/src/main/java/org/surveyforge/examples/Example.java ___________________________________________________________________ Name: svn:keywords + Date Revision Author HeadURL Id Added: trunk/surveyforge-examples/src/main/resources/META-INF/persistence.xml =================================================================== --- trunk/surveyforge-examples/src/main/resources/META-INF/persistence.xml (rev 0) +++ trunk/surveyforge-examples/src/main/resources/META-INF/persistence.xml 2006-10-30 16:14:31 UTC (rev 89) @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" + version="1.0"> + <persistence-unit name="surveyforge"> + <class>org.surveyforge.util.InternationalizedString</class> + + <class>org.surveyforge.classification.Family</class> + <class>org.surveyforge.classification.Classification</class> + <class>org.surveyforge.classification.Version</class> + <class>org.surveyforge.classification.Level</class> + <class>org.surveyforge.classification.Item</class> + + <class>org.surveyforge.core.survey.Study</class> + <class>org.surveyforge.core.survey.Questionnaire</class> + <class>org.surveyforge.core.survey.QuestionnaireElement</class> + <class>org.surveyforge.core.survey.Question</class> + <class>org.surveyforge.core.survey.Feed</class> + <class>org.surveyforge.core.survey.SectionFeed</class> + + <class>org.surveyforge.core.metadata.ValidationRule</class> + <class>org.surveyforge.core.metadata.Register</class> + <class>org.surveyforge.core.metadata.RegisterDataElement</class> + <class>org.surveyforge.core.metadata.ConceptualDataElement</class> + <class>org.surveyforge.core.metadata.DataElement</class> + <class>org.surveyforge.core.metadata.QuestionDataElement</class> + <class>org.surveyforge.core.metadata.ValueDomain</class> + <class>org.surveyforge.core.metadata.ObjectVariable</class> + <class>org.surveyforge.core.metadata.GlobalVariable</class> + <class>org.surveyforge.core.metadata.VariableFamily</class> + <class>org.surveyforge.core.metadata.StatisticalObjectType</class> + + <class>org.surveyforge.core.metadata.domain.ClassificationValueDomain</class> + <class>org.surveyforge.core.metadata.domain.LogicalValueDomain</class> + <class>org.surveyforge.core.metadata.domain.QuantityValueDomain</class> + <class>org.surveyforge.core.metadata.domain.StringValueDomain</class> + <class>org.surveyforge.core.metadata.domain.StructuredValueDomain</class> + <class>org.surveyforge.core.metadata.domain.AbstractValueDomain</class> + <class>org.surveyforge.core.metadata.domain.DateValueDomain</class> + + <class>org.surveyforge.core.data.RegisterData</class> + <class>org.surveyforge.core.data.ObjectData</class> + <class>org.surveyforge.core.data.Data</class> + + <properties> + <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> + <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> + <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/surveyforge" /> + <property name="hibernate.connection.username" value="postgres" /> + <property name="hibernate.connection.password" value="postgres" /> + </properties> + </persistence-unit> +</persistence> Property changes on: trunk/surveyforge-examples/src/main/resources/META-INF/persistence.xml ___________________________________________________________________ Name: svn:keywords + Date Revision Author HeadURL Id Added: trunk/surveyforge-examples/src/test/java/org/surveyforge/AppTest.java =================================================================== --- trunk/surveyforge-examples/src/test/java/org/surveyforge/AppTest.java (rev 0) +++ trunk/surveyforge-examples/src/test/java/org/surveyforge/AppTest.java 2006-10-30 16:14:31 UTC (rev 89) @@ -0,0 +1,38 @@ +package org.surveyforge; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} Property changes on: trunk/surveyforge-examples/src/test/java/org/surveyforge/AppTest.java ___________________________________________________________________ Name: svn:keywords + Date Revision Author HeadURL Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |