⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdfdevicecapgenerator.java

📁 java xml 应用开发
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                final KElement stEl = dc.getChildWithAttribute(null, AttributeName.NAME,null,key, 0, true); 
               
                if (stEl != null && stEl instanceof JDFStateBase)
                {
                    state = (JDFStateBase) stEl;
                    if (eAttrType.equals(EnumAttributeType.string) ||
                        eAttrType.equals(EnumAttributeType.PDFPath) ||
                        eAttrType.equals(EnumAttributeType.matrix))
                    {
                        JDFValue stateValue = (JDFValue) state.
                                                         getChildWithAttribute(ElementName.VALUE, 
                                                                    AttributeName.ALLOWEDVALUE, 
                                                               null,value, 0, true);
                        if (stateValue==null)
                        {
                            stateValue = (JDFValue) state.appendElement(ElementName.VALUE);
                            stateValue.setAllowedValue(value);
                            stateValue.setValueUsage(JDFValue.EnumValueUsage.Allowed);
                        }
                    }
                    else 
                    {
                        String aVL = state.getAttribute("AllowedValueList");
                        if (aVL.indexOf(value)==-1)
                        {
                            aVL += JDFConstants.BLANK + value;
                        }
                        state.setAttribute("AllowedValueList", aVL);
                    }
                }
                else 
                {    
                    
                    if (eAttrType.equals(EnumAttributeType.boolean_))            // Boolean
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.BOOLEANSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.dateTime) ||     // DateTime
                             eAttrType.equals(EnumAttributeType.DateTimeRange) || 
                             eAttrType.equals(EnumAttributeType.DateTimeRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.DATETIMESTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.duration) ||     // Duration
                             eAttrType.equals(EnumAttributeType.DurationRange)||
                             eAttrType.equals(EnumAttributeType.DurationRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.DURATIONSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.double_) ||      // Number
                             eAttrType.equals(EnumAttributeType.NumberList) ||
                             eAttrType.equals(EnumAttributeType.NumberRange) ||
                             eAttrType.equals(EnumAttributeType.NumberRangeList))
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.NUMBERSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.integer) ||      // Integer
                             eAttrType.equals(EnumAttributeType.IntegerList) ||
                             eAttrType.equals(EnumAttributeType.IntegerRange) ||
                             eAttrType.equals(EnumAttributeType.IntegerRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.INTEGERSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.XYPair) ||       // XYPair
                             eAttrType.equals(EnumAttributeType.XYPairRange) ||
                             eAttrType.equals(EnumAttributeType.XYPairRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.XYPAIRSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.shape) ||        // Shape
                             eAttrType.equals(EnumAttributeType.ShapeRange) ||
                             eAttrType.equals(EnumAttributeType.ShapeRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.SHAPESTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.rectangle) ||     // Rectangle
                            eAttrType.equals(EnumAttributeType.RectangleRange) ||
                            eAttrType.equals(EnumAttributeType.RectangleRangeList)) 
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.RECTANGLESTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.enumeration) || // Enumeration
                             eAttrType.equals(EnumAttributeType.enumerations))
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.ENUMERATIONSTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.NameRange) ||     
                            eAttrType.equals(EnumAttributeType.NameRangeList)||
                            eAttrType.equals(EnumAttributeType.NMTOKEN) || 
                            eAttrType.equals(EnumAttributeType.NMTOKENS)||
                            eAttrType.equals(EnumAttributeType.IDREF) || 
                            eAttrType.equals(EnumAttributeType.IDREFS)|| 
                            eAttrType.equals(EnumAttributeType.language)|| 
                            eAttrType.equals(EnumAttributeType.languages))  // Name
                   {
                       state = (JDFStateBase) dc.appendElement(ElementName.NAMESTATE);
                       state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                   }
                    else if (eAttrType.equals(EnumAttributeType.hexBinary))  // hexbin
                    {
                         // TODO: regexp for hexbinary
                        state = (JDFStateBase) dc.appendElement(ElementName.NAMESTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    else if (eAttrType.equals(EnumAttributeType.URI)||
                            eAttrType.equals(EnumAttributeType.URL))  // uri
                    {
                         // TODO: regexp for uri
                        state = (JDFStateBase) dc.appendElement(ElementName.NAMESTATE);
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                   else if (eAttrType.equals(EnumAttributeType.string)|| 
                            eAttrType.equals(EnumAttributeType.Any))         // String
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.STRINGSTATE);
                        final JDFValue stringStateValue = (JDFValue) state.appendElement(ElementName.VALUE);
                        stringStateValue.setAllowedValue(value);
                        stringStateValue.setValueUsage(JDFValue.EnumValueUsage.Allowed);
                    }
                    else if (eAttrType.equals(EnumAttributeType.matrix))         // Matrix
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.MATRIXSTATE);
                        final JDFValue stringStateValue = (JDFValue) state.appendElement(ElementName.VALUE);
                        stringStateValue.setAllowedValue(value);
                        stringStateValue.setValueUsage(JDFValue.EnumValueUsage.Allowed);
                    }
                    else if (eAttrType.equals(EnumAttributeType.PDFPath))        // PDFPath
                    {
                        state = (JDFStateBase) dc.appendElement(ElementName.PDFPATHSTATE);
                        final JDFValue stringStateValue = (JDFValue) state.appendElement(ElementName.VALUE);
                        stringStateValue.setAllowedValue(value);
                        stringStateValue.setValueUsage(JDFValue.EnumValueUsage.Allowed);
                    }
                    else if (eAttrType.equals(EnumAttributeType.CMYKColor))        // PDFPath
                    {
                        state = (JDFNumberState) dc.appendElement(ElementName.NUMBERSTATE);
                        JDFNumberState ns=(JDFNumberState)state;
                        try
                        {
                            ns.setAllowedValueList(new JDFNumberRangeList("0 ~ 1"));
                        }
                        catch (DataFormatException e)
                        {
                            // nothing to do
                        }
                        
                        state.setMinOccurs(4);
                        state.setMaxOccurs(4);
                        state.setListType(EnumListType.List);
                    }
                    else if (eAttrType.equals(EnumAttributeType.LabColor) ||
                            eAttrType.equals(EnumAttributeType.RGBColor))
                    {
                        state = (JDFNumberState) dc.appendElement(ElementName.NUMBERSTATE);
                        JDFNumberState ns=(JDFNumberState)state;
                        try
                        {
                            if (eAttrType.equals(EnumAttributeType.LabColor))
                            {
                                    ns.setAllowedValueList(new JDFNumberRangeList("0 ~ 100"));
                            }
                            else // RGB
                            {
                                ns.setAllowedValueList(new JDFNumberRangeList("0 ~ 1"));
                            }
                        }
                        catch (DataFormatException e)
                        {
                            // nothing to do
                        }
                        
                        state.setMinOccurs(3);
                        state.setMaxOccurs(3);
                        state.setListType(EnumListType.List);
                    }
                    else 
                    {
                        state = (JDFStateBase) dc.appendElement("StateBase");
                        state.setAttribute(AttributeName.ALLOWEDVALUELIST,value);
                    }
                    
                    
                    state.setName(key);
                    final String sID = "S_" + Integer.toString(stID);
                    state.setID(sID);
                    stID++;
                }

                
                if ((new VString(parElem.requiredAttributes(),JDFConstants.COMMA)).contains(key))
                {
                    state.setRequired(true);
                }
                
                
                EnumListType listType = EnumListType.SingleValue;

                if (value.indexOf("~")>0)
                {
                    listType = EnumListType.RangeList;
                }
                else if ((new VString(value)).size()>1)
                {
                    listType = EnumListType.List;
                }
                
                state.setListType(listType);
                state.setAttribute("DefaultValue",value); // TBD correct later to set a single value and typeSafe!
                
                // TBD add allowedValues structure
                
                // add to dc maxOccurs - count leaves.
                // partition
                // Span ... more detailed ValueLists
            }

        }
    }
    
    
    public JDFDoc getDevCapDoc()
    {
        return this.docDevCap;
    }
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -