All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.nakeduml.obsolete.uimetamodel.UIMEntity Maven / Gradle / Ivy

package net.sf.nakeduml.obsolete.uimetamodel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import net.sf.nakeduml.annotation.UserInteractionKind;
public class UIMEntity extends UIMClassifier implements Serializable {
	private static final long serialVersionUID = 3937749529683117688L;
	private SecureUserAction securityOnAudit = new SecureUserAction();
	private SecureUserAction securityOnAdd = new SecureUserAction();
	private SecureUserAction securityOnDelete = new SecureUserAction();
	private SecureUserAction securityOnEdit = new SecureUserAction();
	private SecureUserAction securityOnView = new SecureUserAction();
	private SecureUserAction securityOnForceStateChange = new SecureUserAction();
	private boolean isRootEntity;
	private boolean representsUser;
	private List properties = new ArrayList();
	private List operations = new ArrayList();
	private UIMPackage facesPackage;
	private Map facesStates = new HashMap();
	public UIMEntity() {
	}
	public String getPath(){
		return this.facesPackage.getPath() + "/" + getJavaName();
	}
	public void consolidateSecurity() {
		// RULE If you can edit or add, you must be allowed to view too, thus
		// relaxing the security
		if (getSecurityOnView().isConstrained()) {
			Set view = new HashSet();
			view.addAll(Arrays.asList(getSecurityOnView().getRequiredRoles()));
			view.addAll(Arrays.asList(getSecurityOnEdit().getRequiredRoles()));
			view.addAll(Arrays.asList(getSecurityOnAdd().getRequiredRoles()));
			getSecurityOnView().setRequiredRoles(view.toArray(new String[view.size()]));
		}
	}
	public List getProperties() {
		return this.properties;
	}
	public boolean isRootEntity() {
		return this.isRootEntity;
	}
	public boolean representsUser() {
		return this.representsUser;
	}
	public List getOperations() {
		return this.operations;
	}
	public String getPackageName() {
		return this.facesPackage.getJavaName();
	}
	public boolean hasComposite() {
		return getEndToComposite() != null;
	}
	public UIMProperty getEndToComposite() {
		for (UIMProperty fp : this.properties) {
			if (fp.isReferenceToComposite()) {
				return fp;
			}
		}
		return null;
	}
	public UIMProperty getAttribute(String name) {
		for (UIMProperty fp : this.properties) {
			if (fp.getJavaName().equals(name)) {
				return fp;
			}
		}
		return null;
	}
	public UserInteractionKind getEditUserInteractionForState(String sw) {
		if (this.facesStates.containsKey(sw)) {
			return this.facesStates.get(sw).getUserInteractionKind();
		} else {
			return null;
		}
	}
	public SecureUserAction getSecurityOnView() {
		return this.securityOnView;
	}
	public SecureUserAction getSecurityOnEdit() {
		return this.securityOnEdit;
	}
	public SecureUserAction getSecurityOnDelete() {
		return this.securityOnDelete;
	}
	public SecureUserAction getSecurityOnAdd() {
		return this.securityOnAdd;
	}
	public SecureUserAction getSecurityOnAudit() {
		return this.securityOnAudit;
	}
	public UIMState getSecurityOnState(String n) {
		return this.facesStates.get(n);
	}
	public final UIMPackage getFacesPackage() {
		return this.facesPackage;
	}
	public final void setFacesPackage(UIMPackage facesPackage) {
		this.facesPackage = facesPackage;
	}
	public final Map getFacesStates() {
		return this.facesStates;
	}
	public final void setRootEntity(boolean isRootEntity) {
		this.isRootEntity = isRootEntity;
	}
	public final void setRepresentsUser(boolean representsUser) {
		this.representsUser = representsUser;
	}
	public boolean isProcess() {
		
		return false;
	}
	protected SecureUserAction getSecurityOnForceStateChange() {
		return this.securityOnForceStateChange;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy