Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r00f75ded110f8d6b81bebbcbdc625a5d30b195b2 -rd5d38057e102e214efbc365d07fed0837c936ada --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 00f75ded110f8d6b81bebbcbdc625a5d30b195b2) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision d5d38057e102e214efbc365d07fed0837c936ada) @@ -22,7 +22,12 @@ classpath*:org/eucm/lams/**/*.hbm.xml - + + + org.lamsfoundation.lams.learningdesign + org.lamsfoundation.lams.tool.**.model + + Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd5d38057e102e214efbc365d07fed0837c936ada --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java (.../BranchCondition.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java (.../BranchCondition.java) (revision d5d38057e102e214efbc365d07fed0837c936ada) @@ -22,6 +22,15 @@ package org.lamsfoundation.lams.learningdesign; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -39,7 +48,10 @@ * * There should be one branch condition for each ToolOutputBranchActivityEntry. */ -public class BranchCondition implements Comparable { +@Entity +@Table(name = "lams_branch_condition") +@Inheritance(strategy = InheritanceType.JOINED) +public class BranchCondition implements Comparable { public static final String OUTPUT_TYPE_STRING = "OUTPUT_STRING"; @@ -53,14 +65,33 @@ private static Logger log = Logger.getLogger(BranchCondition.class); + @Id + @Column(name = "condition_id") + @GeneratedValue(strategy = GenerationType.IDENTITY) protected Long conditionId; + + @Column(name = "condition_ui_id") protected Integer conditionUIID; + + @Column(name = "order_id") protected Integer orderId; + + @Column protected String name; + + @Column(name = "display_name") protected String displayName; + + @Column protected String type; + + @Column(name = "start_value") protected String startValue; + + @Column(name = "end_value") protected String endValue; + + @Column(name = "exact_match_value") protected String exactMatchValue; /** default constructor */ @@ -197,8 +228,7 @@ } @Override - public int compareTo(Object arg0) { - BranchCondition other = (BranchCondition) arg0; + public int compareTo(BranchCondition other) { return new CompareToBuilder().append(orderId, other.getOrderId()).append(conditionId, other.getConditionId()) .append(name, other.getName()).append(conditionUIID, other.getConditionUIID()).toComparison(); } @@ -289,7 +319,7 @@ if (posPeriod > 0) { textValue = textValue.substring(0, posPeriod); } - return new Long(textValue); + return Long.valueOf(textValue); } /** @@ -340,7 +370,7 @@ return false; } - private Comparable getTypedValue(String untypedValue) { + private Comparable getTypedValue(String untypedValue) { if (BranchCondition.OUTPUT_TYPE_LONG.equals(type)) { return convertToLong(untypedValue); } else if (BranchCondition.OUTPUT_TYPE_DOUBLE.equals(type)) { Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/TextSearchCondition.java =================================================================== diff -u -r62aaf160878735888d077bf28fac3c1989bb8fbd -rd5d38057e102e214efbc365d07fed0837c936ada --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/TextSearchCondition.java (.../TextSearchCondition.java) (revision 62aaf160878735888d077bf28fac3c1989bb8fbd) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/TextSearchCondition.java (.../TextSearchCondition.java) (revision d5d38057e102e214efbc365d07fed0837c936ada) @@ -27,8 +27,12 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Transient; + import org.apache.commons.lang.StringUtils; -import org.apache.log4j.Logger; import org.lamsfoundation.lams.learningdesign.dto.TextSearchConditionDTO; import org.lamsfoundation.lams.tool.ToolOutput; @@ -39,24 +43,30 @@ * @author Marcin Cieslak * */ +@Entity +@Table(name = "lams_text_search_condition") public class TextSearchCondition extends BranchCondition implements Cloneable { // ---- persistent fields ------- /** * All the words from this string should be found in the tool output. */ + @Column(name = "text_search_all_words") protected String allWords; /** * The whole phrase from this string should be found in the tool output. */ + @Column(name = "text_search_phrase") protected String phrase; /** * At least one of the words from this string should be found in the tool output. */ + @Column(name = "text_search_any_words") protected String anyWords; /** * None of the words from this string should be found in the tool output. */ + @Column(name = "text_search_excluded_words") protected String excludedWords; // ---- non-persistent fields ---------- @@ -78,27 +88,31 @@ protected static final int PATTERN_MATCHING_OPTIONS = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE; - private static Logger log = Logger.getLogger(TextSearchCondition.class); /** * Were the strings provided by user parsed into practical collections of words. */ + @Transient protected boolean conditionsParsed = false; /** * Property {@link #allWords} divided into words. */ + @Transient protected List allWordsCondition = new ArrayList<>(); /** * Property {@link #phrase} divided into words. Although we are looking for the whole phrase, spaces between words * should be divided into something more regex'y. */ + @Transient protected List phraseCondition; /** * Property {@link #anyWords} divided into words. */ + @Transient protected List anyWordsCondition = new ArrayList<>(); /** * Property {@link #excludedWords} divided into words. */ + @Transient protected List excludedWordsCondition = new ArrayList<>(); public TextSearchCondition() { Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java =================================================================== diff -u -r4f55bd929d94e4cfc74607e6b992bc3a35ce25c8 -rd5d38057e102e214efbc365d07fed0837c936ada --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision 4f55bd929d94e4cfc74607e6b992bc3a35ce25c8) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision d5d38057e102e214efbc365d07fed0837c936ada) @@ -34,9 +34,9 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; -import javax.persistence.Transient; import org.apache.log4j.Logger; import org.lamsfoundation.lams.learningdesign.TextSearchConditionComparator; @@ -100,9 +100,8 @@ @OneToMany(mappedBy = "chat", cascade = CascadeType.ALL) private Set chatSessions = new HashSet(); - // @OneToMany(cascade = CascadeType.ALL) - // @JoinTable(name = "tl_lachat11_conditions", joinColumns = @JoinColumn(name = "content_uid"), inverseJoinColumns = @JoinColumn(name = "condition_id")) - @Transient + @OneToMany(cascade = CascadeType.ALL) + @JoinColumn(name = "content_uid") private Set conditions = new TreeSet(new TextSearchConditionComparator()); public Chat() { Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatCondition.java =================================================================== diff -u -r4f55bd929d94e4cfc74607e6b992bc3a35ce25c8 -rd5d38057e102e214efbc365d07fed0837c936ada --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatCondition.java (.../ChatCondition.java) (revision 4f55bd929d94e4cfc74607e6b992bc3a35ce25c8) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatCondition.java (.../ChatCondition.java) (revision d5d38057e102e214efbc365d07fed0837c936ada) @@ -4,6 +4,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.persistence.Entity; +import javax.persistence.Table; + import org.lamsfoundation.lams.learningdesign.BranchCondition; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.TextSearchCondition; @@ -20,10 +23,9 @@ * * @author Marcin Cieslak * - * - * @Entity - * @Table(name = "tl_lachat11_conditions") */ +@Entity +@Table(name = "tl_lachat11_conditions") public class ChatCondition extends TextSearchCondition { public ChatCondition() {