	
	
	private void setAssociationEnds() {
	  if (___aeFirst == null || ___aeSecond == null) {
		javax.jmi.model.Association assocMeta = (javax.jmi.model.Association) refMetaObject();
		Iterator iter = assocMeta.getContents().iterator();
		while (iter.hasNext() && (___aeFirst == null || ___aeSecond == null)) {
			java.lang.Object o = iter.next();
			if (o instanceof javax.jmi.model.AssociationEnd) {
				if (___aeFirst == null) {
					___aeFirst = (javax.jmi.model.AssociationEnd)o;
				} else if (___aeSecond == null) {
					___aeSecond = (javax.jmi.model.AssociationEnd)o;
				}
			}
		}
      }
    }

	public java.lang.String getAssociationId() {
		return ___associationId;
	}
	public void setAssociationId(java.lang.String associationId) {
		___associationId = associationId;
	}

	protected int getMofLayer() {
		return IRepositoryConst.LAYER_1;
	}

	/**
	 * @see javax.jmi.reflect.RefAssociation#refAllLinks()
	 */
	public Collection refAllLinks() {
		setAssociationEnds();
		return ___associationImpl.refAllLinks(getAssociationId());
	}

	/**
	 * @see javax.jmi.reflect.RefAssociation#refQuery(String, RefObject)
	 */
	public Collection refQuery(String endName, RefObject queryObject) {
	    setAssociationEnds();
		java.util.Collection c = null;
		if (___aeFirst.getName().compareTo(endName) == 0) {
			c = queryFirstEnd(queryObject);
		} else if (___aeSecond.getName().compareTo(endName) == 0) {
			c = querySecondEnd(queryObject);
		} else {
			throw new javax.jmi.reflect.InvalidNameException(endName);
		}
		return c;
	}
	public List queryFirstEnd(String mofId) {
	    setAssociationEnds();
		return ___associationImpl.queryFirstEnd(getAssociationId(), mofId);
	}
	public List querySecondEnd(String mofId) {
	    setAssociationEnds();
		return ___associationImpl.querySecondEnd(getAssociationId(), mofId);
	}

	public com.sap.ip.mmr.foundation.AssociationsContainer get___AssociationsContainer() {
	   return ___associationImpl;
    }	


