14 package cz.vutbr.fit.knot.annotations.entity;
18 import java.io.Serializable;
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22 import javax.persistence.Basic;
23 import javax.persistence.CascadeType;
24 import javax.persistence.Column;
25 import javax.persistence.Entity;
26 import javax.persistence.GeneratedValue;
27 import javax.persistence.GenerationType;
28 import javax.persistence.Id;
29 import javax.persistence.JoinColumn;
30 import javax.persistence.NamedQueries;
31 import javax.persistence.NamedQuery;
32 import javax.persistence.OneToMany;
33 import javax.persistence.OneToOne;
34 import javax.persistence.Table;
35 import javax.persistence.Transient;
36 import javax.validation.constraints.NotNull;
37 import javax.validation.constraints.Size;
46 @Table(name =
"subscription")
48 @NamedQuery(name =
"Subscription.findAll", query =
"SELECT s FROM Subscription s"),
49 @NamedQuery(name =
"Subscription.findById", query =
"SELECT s FROM Subscription s WHERE s.id = :id"),
50 @NamedQuery(name =
"Subscription.findByName", query =
"SELECT s FROM Subscription s WHERE s.name = :name"),
51 @NamedQuery(name =
"Subscription.findByUserId", query =
"SELECT s FROM Subscription s WHERE s.userId = :userId"),
52 @NamedQuery(name =
"Subscription.findByGroupId", query =
"SELECT s FROM Subscription s WHERE s.groupId = :groupId"),
53 @NamedQuery(name =
"Subscription.findByIdAndUserId", query =
"SELECT s FROM Subscription s WHERE s.id = :id AND s.userId = :userId"),
58 @GeneratedValue(strategy = GenerationType.IDENTITY)
59 @Basic(optional =
false)
64 @Basic(optional = false)
66 @Size(min = 1, max = 255)
67 @Column(name = "name")
71 @Basic(optional = false)
73 @Column(name = "userId", insertable=false, updatable=false)
77 @Basic(optional = false)
79 @Column(name = "groupId", insertable=false, updatable=false)
83 @OneToMany(mappedBy = "refSubscription", cascade = CascadeType.ALL,
84 targetEntity =
Source.class)
88 @OneToOne(optional = false)
89 @JoinColumn(name = "userId", referencedColumnName = "
id")
93 @OneToOne(optional = false)
94 @JoinColumn(name = "groupId", referencedColumnName = "
id")
99 private Integer tmpId;
126 this.userId = userId;
180 this.userId = userId;
189 return subscriptions;
198 if(this.subscriptions == null){
199 this.subscriptions =
new ArrayList<Source>();
202 this.subscriptions.add(subscription);
211 this.subscriptions = subscriptions;
265 this.groupId = groupId;
289 hash += (
id != null ? id.hashCode() : 0);
305 Subscription other = (Subscription)
object;
306 if ((this.
id == null && other.
id != null) || (this.id != null && !this.id.equals(other.id))) {
314 return "cz.vutbr.fit.knot.annotations.entity.Subscription[ id=" +
id +
" ]";
324 StringBuilder result =
new StringBuilder(
"<subscription uri=\"");
325 result.append(AppBean.getBaseSubscriptionUri());
326 result.append(id.toString());
327 result.append(
"\" name=\"");
329 result.append(
"\" authorUri=\"");
330 result.append(user.getURI());
333 StringBuilder sources =
new StringBuilder();
335 if(subscriptions != null){
336 Iterator<Source> subscrIt = subscriptions.iterator();
337 while(subscrIt.hasNext()){
338 Source actualSubs = subscrIt.next();
339 sources.append(actualSubs.toXMLStringV2());
343 if(sources.length() > 0){
344 result.append(
"\">");
345 result.append(sources.toString());
346 result.append(
"</subscription>");
348 result.append(
"\"/>");
351 return result.toString();
363 StringBuilder result =
new StringBuilder(
"<");
364 result.append(tagName);
365 result.append(
" uri=\"");
366 result.append(AppBean.getBaseSubscriptionUri());
367 result.append(id.toString());
368 result.append(
"\" name=\"");
370 result.append(
"\" authorUri=\"");
371 result.append(user.getURI());
374 StringBuilder sources =
new StringBuilder();
376 if(subscriptions != null){
377 Iterator<Source> subscrIt = subscriptions.iterator();
378 while(subscrIt.hasNext()){
379 Source actualSubs = subscrIt.next();
380 sources.append(actualSubs.toXMLStringV2());
384 if(sources.length() > 0){
385 result.append(
"\">");
386 result.append(sources.toString());
388 result.append(tagName);
391 result.append(
"\"/>");
394 return result.toString();
403 ArrayList<SubscribedSource> returnList = null;
404 if(this.subscriptions != null){
405 returnList =
new ArrayList<SubscribedSource>(this.subscriptions.size());
406 Iterator<Source> sourceIt = this.subscriptions.iterator();
407 while(sourceIt.hasNext()){
408 returnList.add(sourceIt.next().getSourceAsSubSource());
421 ArrayList<SubscribedSource> returnList = null;
422 if(this.subscriptions != null){
423 returnList =
new ArrayList<SubscribedSource>(this.subscriptions.size());
424 Iterator<Source> sourceIt = this.subscriptions.iterator();
425 while(sourceIt.hasNext()){
426 Source currentSource = sourceIt.next();
428 returnList.add(currentSource.getSourceAsSubSource());
Class representing subscription.
void setGroup(UserGroup group)
void addSubscription(Source subscription)
boolean equals(Object object)
void setTmpId(Integer tmpId)
void setGroupId(int groupId)
Singleton for storing global variables.
void setUserId(int userId)
ArrayList< SubscribedSource > getSourcesAsSubSource(boolean polarity)
String toXMLStringV2(String tagName)
Class representing user group.
ArrayList< SubscribedSource > getNegSourcesAsSubSource()
void setSubscriptions(List< Source > subscriptions)
void setName(String name)
Subscribed source of annotations.
Class representing source of subscription.
List< Source > getSubscriptions()
Subscription(Integer id, String name, int userId)