📄 jdfdevicecapgenerator.java
字号:
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 + -