// Path: src/java/org/onesocialweb/openfire/model/acl/PersistentAclRule.java
// @Entity(name="AclRule")
// public class PersistentAclRule implements AclRule {
// 	
// 	@OneToMany(cascade=CascadeType.ALL, targetEntity=org.onesocialweb.openfire.model.acl.PersistentAclSubject.class, fetch=FetchType.EAGER)
// 	private List<AclSubject> subjects = new ArrayList<AclSubject>();
// 
// 	@OneToMany(cascade=CascadeType.ALL, targetEntity=org.onesocialweb.openfire.model.acl.PersistentAclAction.class, fetch=FetchType.EAGER)
// 	private List<AclAction> actions = new ArrayList<AclAction>();
// 
// 	@Override
// 	public List<AclAction> getActions() {
// 		return actions;
// 	}
// 
// 	@Override
// 	public void setActions(List<AclAction> actions) {
// 		this.actions = actions;
// 	}
// 
// 	@Override
// 	public List<AclSubject> getSubjects() {
// 		return subjects;
// 	}
// 
// 	@Override
// 	public void setSubjects(List<AclSubject> subjects) {
// 		this.subjects = subjects;
// 	}
// 	
// 	@Override
// 	public void addAction(AclAction action) {
// 		this.actions.add(action);
// 	}
// 
// 	@Override
// 	public void addSubject(AclSubject subject) {
// 		this.subjects.add(subject);
// 	}
// 
// 	@Override
// 	public void removeAction(AclAction action) {
// 		this.actions.remove(action);
// 	}
// 
// 	@Override
// 	public void removeSubject(AclSubject subject) {
// 		this.subjects.remove(subject);
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof AclRule) {
// 			AclRule rule = (AclRule) obj;
// 			return actions.equals(rule.getActions())
// 					&& subjects.equals(rule.getSubjects());
// 		} else {
// 			return false;
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		StringBuffer buffer = new StringBuffer();
// 		buffer.append("[AclRule ");
// 		for (AclAction action : actions) {
// 			buffer.append(action);
// 		}
// 		for (AclSubject subject : subjects) {
// 			buffer.append(subject);
// 		}
// 		buffer.append("]");
// 		return buffer.toString();
// 	}
// 
// 	@Override
// 	public boolean hasAction(AclAction action) {
// 		if (actions == null || action == null) return false;
// 		
// 		for (AclAction target : actions) {
// 			if (target.equals(action)) {
// 				return true;
// 			}
// 		}
// 		
// 		return false;
// 	}
// 
// 	@Override
// 	public boolean hasSubject(AclSubject subject) {
// 		if (subjects == null || subject == null) return false;
// 		
// 		for (AclSubject target : subjects) {
// 			if (target.equals(subject)) {
// 				return true;
// 			}
// 		}
// 		
// 		return false;
// 	}
// 
// 	@Override
// 	public boolean hasActions() {
// 		return (actions != null && !actions.isEmpty());
// 	}
// 
// 	@Override
// 	public boolean hasSubjects() {
// 		return (subjects != null && !subjects.isEmpty());
// 	}
// 
// 	@Override
// 	public List<AclAction> getActions(String name, String permission) {
// 		List<AclAction> result = new ArrayList<AclAction>();
// 		
// 		if (actions == null) return result;
// 		
// 		for (AclAction target : actions) {
// 			if (target.getName().equals(name) && target.getPermission().equals(permission)) {
// 				result.add(target);
// 			}
// 		}
// 		
// 		return result;
// 	}
// 
// 	@Override
// 	public List<AclSubject> getSubjects(String type) {
// 		List<AclSubject> result = new ArrayList<AclSubject>();
// 		
// 		if (subjects == null || type == null) return result;
// 		
// 		for (AclSubject aclSubject : result) {
// 			if (aclSubject.getType().equals(type)) {
// 				result.add(aclSubject);
// 			}
// 		}
// 		
// 		return result;
// 	}
// 	
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import org.onesocialweb.model.acl.AclRule;
import org.onesocialweb.model.vcard4.EmailField;
import org.onesocialweb.openfire.model.acl.PersistentAclRule;
package org.onesocialweb.openfire.model.vcard4;




@Entity(name="EmailField")
public class PersistentEmailField extends EmailField {
	
// Path: src/java/org/onesocialweb/openfire/model/acl/PersistentAclRule.java
// @Entity(name="AclRule")
// public class PersistentAclRule implements AclRule {
// 	
// 	@OneToMany(cascade=CascadeType.ALL, targetEntity=org.onesocialweb.openfire.model.acl.PersistentAclSubject.class, fetch=FetchType.EAGER)
// 	private List<AclSubject> subjects = new ArrayList<AclSubject>();
// 
// 	@OneToMany(cascade=CascadeType.ALL, targetEntity=org.onesocialweb.openfire.model.acl.PersistentAclAction.class, fetch=FetchType.EAGER)
// 	private List<AclAction> actions = new ArrayList<AclAction>();
// 
// 	@Override
// 	public List<AclAction> getActions() {
// 		return actions;
// 	}
// 
// 	@Override
// 	public void setActions(List<AclAction> actions) {
// 		this.actions = actions;
// 	}
// 
// 	@Override
// 	public List<AclSubject> getSubjects() {
// 		return subjects;
// 	}
// 
// 	@Override
// 	public void setSubjects(List<AclSubject> subjects) {
// 		this.subjects = subjects;
// 	}
// 	
// 	@Override
// 	public void addAction(AclAction action) {
// 		this.actions.add(action);
// 	}
// 
// 	@Override
// 	public void addSubject(AclSubject subject) {
// 		this.subjects.add(subject);
// 	}
// 
// 	@Override
// 	public void removeAction(AclAction action) {
// 		this.actions.remove(action);
// 	}
// 
// 	@Override
// 	public void removeSubject(AclSubject subject) {
// 		this.subjects.remove(subject);
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (obj instanceof AclRule) {
// 			AclRule rule = (AclRule) obj;
// 			return actions.equals(rule.getActions())
// 					&& subjects.equals(rule.getSubjects());
// 		} else {
// 			return false;
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		StringBuffer buffer = new StringBuffer();
// 		buffer.append("[AclRule ");
// 		for (AclAction action : actions) {
// 			buffer.append(action);
// 		}
// 		for (AclSubject subject : subjects) {
// 			buffer.append(subject);
// 		}
// 		buffer.append("]");
// 		return buffer.toString();
// 	}
// 
// 	@Override
// 	public boolean hasAction(AclAction action) {
// 		if (actions == null || action == null) return false;
// 		
// 		for (AclAction target : actions) {
// 			if (target.equals(action)) {
// 				return true;
// 			}
// 		}
// 		
// 		return false;
// 	}
// 
// 	@Override
// 	public boolean hasSubject(AclSubject subject) {
// 		if (subjects == null || subject == null) return false;
// 		
// 		for (AclSubject target : subjects) {
// 			if (target.equals(subject)) {
// 				return true;
// 			}
// 		}
// 		
// 		return false;
// 	}
// 
// 	@Override
// 	public boolean hasActions() {
// 		return (actions != null && !actions.isEmpty());
// 	}
// 
// 	@Override
// 	public boolean hasSubjects() {
// 		return (subjects != null && !subjects.isEmpty());
// 	}
// 
// 	@Override
// 	public List<AclAction> getActions(String name, String permission) {
// 		List<AclAction> result = new ArrayList<AclAction>();
// 		
// 		if (actions == null) return result;
// 		
// 		for (AclAction target : actions) {
// 			if (target.getName().equals(name) && target.getPermission().equals(permission)) {
// 				result.add(target);
// 			}
// 		}
// 		
// 		return result;
// 	}
// 
// 	@Override
// 	public List<AclSubject> getSubjects(String type) {
// 		List<AclSubject> result = new ArrayList<AclSubject>();
// 		
// 		if (subjects == null || type == null) return result;
// 		
// 		for (AclSubject aclSubject : result) {
// 			if (aclSubject.getType().equals(type)) {
// 				result.add(aclSubject);
// 			}
// 		}
// 		
// 		return result;
// 	}
// 	
// }


// Path: src/java/org/onesocialweb/openfire/model/vcard4/PersistentEmailField.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import org.onesocialweb.model.acl.AclRule;
import org.onesocialweb.model.vcard4.EmailField;
import org.onesocialweb.openfire.model.acl.PersistentAclRule;

package org.onesocialweb.openfire.model.vcard4;




@Entity(name="EmailField")
public class PersistentEmailField extends EmailField {
	
	@OneToMany(cascade=CascadeType.ALL, targetEntity=PersistentAclRule.class, fetch=FetchType.EAGER)