示例#1
0
 ///
 ///	 <summary> * get resource defined by <code>resNam</code>
 ///	 *  </summary>
 ///	 * <param name="resName"> name of the resource to get, if null get the one and only resource </param>
 ///	 * <returns> JDFResource the element, null if none exists </returns>
 ///
 public virtual JDFResource getResource(string resName)
 {
     if (resName != null)
     {
         KElement e = getElement(resName, null, 0);
         if (e is JDFResource)
         {
             return((JDFResource)e);
         }
     }
     else
     {
         string resName2 = getResourceName();
         if (resName2 != null && !resName2.Equals(""))
         {
             return(getResource(resName2));
         }
         KElement e2 = getFirstChildElement();
         while (e2 != null)
         {
             if (e2 is JDFResource)
             {
                 return((JDFResource)e2);
             }
             e2 = e2.getNextSiblingElement();
         }
     }
     return(null);
 }
示例#2
0
        ///
        ///	 <summary> * return the ResourceLink in <code>this</code>, null if none exists
        ///	 *  </summary>
        ///	 * <param name="iSkip"> the n'th resourceLink to retrieve </param>
        ///	 * <returns> JDFResourceLink - this phaseTimes ResourceLink </returns>
        ///
        public virtual VElement getLinkVector()
        {
            KElement e    = getFirstChildElement();
            VElement vRet = new VElement();

            while (e != null)
            {
                if (e is JDFResourceLink)
                {
                    vRet.Add(e);
                }
                e = e.getNextSiblingElement();
            }
            return(vRet.Count == 0 ? null : vRet);
        }
示例#3
0
        public virtual JDFRefElement getRefElement()
        {
            KElement e = getFirstChildElement();

            while (true)
            {
                if (e is JDFRefElement)
                {
                    return((JDFRefElement)e);
                }
                if (e == null)
                {
                    return(null);
                }
                e = e.getNextSiblingElement();
            }
        }
示例#4
0
        ///
        ///	 <summary> * return the ResourceLink in <code>this</code>, null if none exists
        ///	 *  </summary>
        ///	 * <param name="iSkip"> the nTh resourceLink to retrieve </param>
        ///	 * <returns> JDFResourceLink - <code>this</code> phaseTimes ResourceLink </returns>
        ///
        public virtual JDFResourceLink getLink(int iSkip)
        {
            KElement e = getFirstChildElement();
            int      n = 0;

            while (e != null)
            {
                if (e is JDFResourceLink)
                {
                    if (n++ >= iSkip)
                    {
                        return((JDFResourceLink)e);
                    }
                }
                e = e.getNextSiblingElement();
            }
            return(null);
        }
示例#5
0
文件: JDFJMF.cs 项目: cip4/JDFLibNet
        ///
        ///	 <summary> * get the ith message element of family type family
        ///	 *  </summary>
        ///	 * <param name="family"> the Message family - Query, Acknowledge, Command, Response, Registration or Signal </param>
        ///	 * <param name="typ"> the messages @Type value, null if unknown </param>
        ///	 * <param name="i"> the i'th message element to get, if i<0, get from back </param>
        ///	 * <returns> the matching message, null if none are found </returns>
        ///
        public virtual JDFMessage getMessageElement(JDFMessage.EnumFamily family, JDFMessage.EnumType typ, int i)
        {
            int iLocal = i;

            if (iLocal < 0) // search from back
            {
                JDFMessage message = null;
                VElement   v       = getMessageVector(family, typ);
                if (v != null)
                {
                    int siz = v.Count;
                    iLocal  = siz + iLocal;
                    message = (JDFMessage)(iLocal >= 0 ? v[iLocal] : null);
                }

                return(message);
            }

            string typString    = typ == null ? null : typ.getName();
            string familyString = family == null ? null : family.getName();

            KElement e = getElement(familyString, null, 0);
            int      n = 0;

            while (e != null)
            {
                if (e is JDFMessage)
                {
                    if (typString == null || typString.Equals(((JDFMessage)e).getType()))
                    {
                        if (n++ >= iLocal)
                        {
                            return((JDFMessage)e);
                        }
                    }
                }

                e = e.getNextSiblingElement(familyString, null);
            }

            return(null);
        }
示例#6
0
        ///
        ///	 <summary> * gets a vector of all terms
        ///	 *  </summary>
        ///	 * <returns> VElement - vector of JDFTerm </returns>
        ///
        public virtual VElement getTermVector(EnumTerm term)
        {
            if (term != null)
            {
                return(getChildElementVector(term.getName(), null, null, true, 0, false));
            }

            VElement v = new VElement();
            KElement e = getFirstChildElement();

            while (e != null)
            {
                if (e is JDFTerm)
                {
                    v.Add(e);
                }
                e = e.getNextSiblingElement();
            }
            return(v); // if no subelements, then no context
        }