<% for (AssociationVariable assocVar: mergeList) { %>
	private <%=assocVar.getType()%> a<%=assocVar.getUpperCaseName()%>;

	public <%=assocVar.getType()%> get<%=assocVar.getUpperCaseName()%>() {
		if (isFrom<%=assocVar.getUpperCaseName()%>()) {
			return linked<%=assocVar.getUpperCaseName()%>();
		}

		return getSelected<%=assocVar.getUpperCaseName()%>();

	}

	public void set<%=assocVar.getUpperCaseName()%>(<%=assocVar.getType()%> arg) {
		this.a<%=assocVar.getUpperCaseName()%> = arg;
	}
	
	public String to<%=assocVar.getUpperCaseName()%>s() {
		BeanLinker bLinker = new BeanLinker();
		bLinker.setRoleName("<%=assocVar.getRelatedAssociation().getUpperCaseName()%>");
		bLinker.setLinker(getSelected<%=assocVar.getUpperCaseName()%>());
		PageFlowUtils.pushBeanLinker(bLinker);
		return "";
	}
	
	public String to<%=assocVar.getUpperCaseName()%>sDone() {
		<%=assocVar.getType()%> newValue =(<%=assocVar.getType()%>)PageFlowUtils.peekBeanLinker().getLinker();
		PageFlowUtils.popBeanLinker();
		setSelected<%=assocVar.getUpperCaseName()%>(newValue);
		return "";
	}
	
	public String to<%=assocVar.getUpperCaseName()%>sCancel() {
		PageFlowUtils.popBeanLinker();
		return "";
	}

	public boolean isFrom<%=assocVar.getUpperCaseName()%>() {

		return linked<%=assocVar.getUpperCaseName()%>() != null;
	}

	public <%=assocVar.getType()%> linked<%=assocVar.getUpperCaseName()%>() {
		BeanLinker er = PageFlowUtils.peekBeanLinker(); //.getInitBean();
		if  ("<%=assocVar.getUpperCaseName()%>".equals(er.getRoleName())){
			if(er.getInitBean()!=null && er.getInitBean()  instanceof  <%=className%>)
				return ((<%=className%>) er.getInitBean()).a<%=assocVar.getUpperCaseName()%>;
		}
		
		return null;

	}

	@SuppressWarnings("unchecked")
	public void setSelected<%=assocVar.getUpperCaseName()%>(<%=assocVar.getType()%> selected<%=assocVar.getUpperCaseName()%>) {
		PageFlowUtils.getPageFlow().put("selected<%=assocVar.getUpperCaseName()%>", selected<%=assocVar.getUpperCaseName()%>);
	}

	public <%=assocVar.getType()%> getSelected<%=assocVar.getUpperCaseName()%>() {

		return (<%=assocVar.getType()%>) PageFlowUtils.getPageFlow().get("selected<%=assocVar.getUpperCaseName()%>");
	}

	public void removeSelected<%=assocVar.getUpperCaseName()%>() {

		PageFlowUtils.getPageFlow().remove("selected<%=assocVar.getUpperCaseName()%>");

	}

 <% } %>
