Example #1
0
        ///
        ///	 <summary> * get the minimum availability
        ///	 *  </summary>
        ///	 * <param name="vModuleRefs">
        ///	 *            the list of module ids that are evaluated </param>
        ///	 * <returns> the minimum availability, null in case of an error, for instance
        ///	 *         if no modulerefs are specified </returns>
        ///
        public virtual EnumAvailability getMinAvailability(VString vModuleRefs)
        {
            IDictionary m = getModuleMap();

            if (vModuleRefs == null || m == null || vModuleRefs.Count == 0)
            {
                return(null); // error exit
            }
            JDFDeviceCap.EnumAvailability minAvail = JDFDeviceCap.EnumAvailability.Installed;
            for (int i = 0; i < vModuleRefs.Count; i++)
            {
                JDFModuleCap mc = (JDFModuleCap)m[vModuleRefs.stringAt(i)];
                if (mc == null)
                {
                    return(null);
                }
                EnumAvailability a = mc.getAvailability();
                if (a == null || EnumAvailability.Module.Equals(a)) // module is not
                // valid
                // recursively
                {
                    return(null);
                }
                if (minAvail.CompareTo(a) > 0)
                {
                    minAvail = a;
                }
            }
            return(minAvail);
        }
Example #2
0
        ///
        ///	 <summary> * Gets typesafe enumerated attribute Availability
        ///	 *  </summary>
        ///	 * <returns> EnumAvailability: the enumeration value of the attribute </returns>
        ///
        public virtual EnumAvailability getAvailability()
        {
            EnumAvailability avail = EnumAvailability.getEnum(getAttribute(AttributeName.AVAILABILITY, null, null));

            if (avail == null)
            {
                JDFDevCap par = getParentDevCap();
                if (par != null)
                {
                    avail = par.getAvailability();
                }
            }
            return(avail == null ? EnumAvailability.Installed : avail);
        }
Example #3
0
        ///
        ///	 <summary> * get the module availability based on modulerefs and availability
        ///	 *  </summary>
        ///	 * <param name="caps">
        ///	 *            either A State, devcap or devcaps
        ///	 * @return </param>
        ///
        public static EnumAvailability getModuleAvailability(ICapabilityElement caps)
        {
            EnumAvailability a = caps.getAvailability();

            if (!EnumAvailability.Module.Equals(a))
            {
                return(a);
            }
            JDFModulePool mp = caps.getModulePool();

            if (mp == null)
            {
                return(null);
            }
            return(mp.getMinAvailability(caps.getModuleRefs()));
        }
Example #4
0
        public virtual void testGetMinAvailability()
        {
            JDFDoc        d  = new JDFDoc(ElementName.MODULEPOOL);
            JDFModulePool mp = (JDFModulePool)d.getRoot();

            for (int i = 0; i < 4; i++)
            {
                JDFModuleCap mc = mp.appendModuleCap();
                mc.setID("I" + i);
                mc.setAvailability(EnumAvailability.getEnum(i));
            }
            VString s = new VString();

            for (int i = 3; i >= 0; i--)
            {
                s.Add("I" + i);
                Assert.AreEqual(EnumAvailability.getEnum(i), mp.getMinAvailability(s));
            }
        }
Example #5
0
 //
 //	 * // Attribute Getter / Setter
 //
 ///
 ///	 <summary> * Sets attribute Availability
 ///	 *  </summary>
 ///	 * <param name="value">
 ///	 *            the value to set the attribute to </param>
 ///
 public virtual void setAvailability(EnumAvailability @value)
 {
     setAttribute(AttributeName.AVAILABILITY, @value.getName(), null);
 }
Example #6
0
 static JDFAbstractState()
 {
     atrInfoTable[0]  = new AtrInfoTable(AttributeName.AVAILABILITY, 0x33333311, AttributeInfo.EnumAttributeType.enumeration, EnumAvailability.getEnum(0), null);
     atrInfoTable[1]  = new AtrInfoTable(AttributeName.ACTIONREFS, 0x33333311, AttributeInfo.EnumAttributeType.IDREFS, null, null);
     atrInfoTable[2]  = new AtrInfoTable(AttributeName.DEPENDENTMACROREF, 0x33333311, AttributeInfo.EnumAttributeType.IDREF, null, null);
     atrInfoTable[3]  = new AtrInfoTable(AttributeName.DEVNS, 0x33333331, AttributeInfo.EnumAttributeType.URI, null, JDFConstants.JDFNAMESPACE);
     atrInfoTable[4]  = new AtrInfoTable(AttributeName.EDITABLE, 0x33333311, AttributeInfo.EnumAttributeType.boolean_, null, JDFConstants.TRUE);
     atrInfoTable[5]  = new AtrInfoTable(AttributeName.HASDEFAULT, 0x33333331, AttributeInfo.EnumAttributeType.boolean_, null, JDFConstants.TRUE);
     atrInfoTable[6]  = new AtrInfoTable(AttributeName.ID, 0x33333311, AttributeInfo.EnumAttributeType.ID, null, null);
     atrInfoTable[7]  = new AtrInfoTable(AttributeName.LISTTYPE, 0x33333311, AttributeInfo.EnumAttributeType.enumeration, EnumListType.getEnum(0), EnumListType.SingleValue.getName());
     atrInfoTable[8]  = new AtrInfoTable(AttributeName.MACROREFS, 0x33333311, AttributeInfo.EnumAttributeType.IDREFS, null, null);
     atrInfoTable[9]  = new AtrInfoTable(AttributeName.MAXOCCURS, 0x33333311, AttributeInfo.EnumAttributeType.unbounded, null, "1");
     atrInfoTable[10] = new AtrInfoTable(AttributeName.MINOCCURS, 0x33333311, AttributeInfo.EnumAttributeType.integer, null, "1");
     atrInfoTable[11] = new AtrInfoTable(AttributeName.MODULEREFS, 0x33333111, AttributeInfo.EnumAttributeType.IDREFS, null, null);
     atrInfoTable[12] = new AtrInfoTable(AttributeName.NAME, 0x33333331, AttributeInfo.EnumAttributeType.NMTOKEN, null, null);
     atrInfoTable[13] = new AtrInfoTable(AttributeName.REQUIRED, 0x33333311, AttributeInfo.EnumAttributeType.boolean_, null, null);
     atrInfoTable[14] = new AtrInfoTable(AttributeName.SPAN, 0x44444431, AttributeInfo.EnumAttributeType.boolean_, null, null);
     atrInfoTable[15] = new AtrInfoTable(AttributeName.USERDISPLAY, 0x33333311, AttributeInfo.EnumAttributeType.enumeration, EnumUserDisplay.getEnum(0), EnumUserDisplay.Display.getName());
     elemInfoTable[0] = new ElemInfoTable(ElementName.LOC, 0x33333311);
 }
Example #7
0
        ///
        ///	 * <param name="testRoot"> </param>
        ///	 * <param name="testlists"> </param>
        ///	 * <param name="level"> </param>
        ///	 * <param name="mrp"> </param>
        ///	 * <param name="irp"> </param>
        ///	 * <param name="resLinkPool"> </param>
        ///	 * <param name="goodElems"> </param>
        ///	 * <param name="badElems"> </param>
        ///	 * <param name="devCaps">
        ///	 * @return </param>
        ///
        public virtual void analyzeDevCaps(KElement testRoot, EnumFitsValue testlists, EnumValidationLevel level, KElement mrp, KElement irp, SupportClass.HashSetSupport goodElems, Hashtable badElems, bool ignoreExtensions)
        {
            EnumAvailability av             = getModuleAvailability();
            KElement         xpathRoot      = testRoot;
            VElement         vElemResources = null;

            if (testRoot is JDFNode)
            {
                JDFNode jdfNode = (JDFNode)testRoot;
                vElemResources = getMatchingElementsFromNode(jdfNode);
                xpathRoot      = jdfNode.getResourceLinkPool();
                if (xpathRoot == null)
                {
                    xpathRoot = testRoot;
                }
            }
            else
            {
                vElemResources = getMatchingElementsFromJMF((JDFMessage)testRoot);
            }

            int svElemResources = vElemResources == null ? 0 : vElemResources.Count;

            EnumContext context = getContext();
            KElement    r       = null;

            if (EnumValidationLevel.isRequired(level) && svElemResources < getMinOccurs() && EnumAvailability.Installed.Equals(av))
            {
                if (EnumContext.Element.Equals(context) || EnumContext.JMF.Equals(context))
                {
                    r = mrp.appendElement("MissingElement");
                    r.setAttribute("XPath", xpathRoot.buildXPath(null, 1) + "/" + getName());
                }
                else
                {
                    EnumUsage linkUsage = getLinkUsage();
                    string    procUsage = getProcessUsage();
                    r = mrp.appendElement("MissingResourceLink");
                    if (linkUsage != null)
                    {
                        r.setAttribute("Usage", linkUsage.getName());
                    }
                    if (procUsage != null && procUsage.Length > 0)
                    {
                        r.setAttribute("ProcessUsage", procUsage);
                    }
                    r.setAttribute("XPath", xpathRoot.buildXPath(null, 1) + "/" + getName());
                }
                r.setAttribute("Name", getName());
                r.setAttribute("CapXPath", getName());
                r.setAttribute("Occurrences", svElemResources, null);
                r.setAttribute("MinOccurs", getMinOccurs(), null);
            }
            else if (svElemResources > getMaxOccurs() || !EnumAvailability.Installed.Equals(av))
            {
                if (context.Equals(EnumContext.Element) || context.Equals(EnumContext.JMF))
                {
                    r = irp.appendElement("ManyElement");
                    r.setAttribute("XPath", testRoot.buildXPath(null, 1) + "/" + getName());
                }
                else
                {
                    EnumUsage linkUsage = getLinkUsage();
                    string    procUsage = getProcessUsage();
                    r = irp.appendElement("ManyResourceLink");
                    if (linkUsage != null)
                    {
                        r.setAttribute("Usage", linkUsage.getName());
                    }

                    if (procUsage != null && procUsage.Length > 0)
                    {
                        r.setAttribute("ProcessUsage", procUsage);
                    }

                    r.setAttribute("XPath", xpathRoot.buildXPath(null, 1) + "/" + getName());
                }

                r.setAttribute("Name", getName());
                r.setAttribute("CapXPath", getName());
                r.setAttribute("Occurrences", svElemResources, null);
                r.setAttribute("MaxOccurs", getMaxOccurs(), null);
                r.setAttribute("Availability", av == null ? "None" : av.getName());
            }

            if (vElemResources != null)
            {
                for (int j = 0; j < svElemResources; j++)
                {
                    KElement elem = vElemResources.item(j);
                    if (!goodElems.Contains(elem))
                    {
                        KElement report = devCapReport(elem, testlists, level, ignoreExtensions, irp); // InvalidResources
                        if (report == null)
                        {
                            goodElems.Add(elem);
                            KElement badReport = (KElement)badElems[elem];
                            if (badReport != null)
                            {
                                badReport.deleteNode();
                            }
                        }
                        else
                        {
                            badElems.Add(elem, report);
                        }
                    }
                }
            }
        }